温馨提示×

ubuntu iptables怎样开启端口

小樊
35
2026-10-27 10:51:24
栏目: 智能运维

在 Ubuntu 上通过 iptables 开放端口,通常分两种情况:IPv4(iptables) 和 IPv6(ip6tables)。下面以常见示例说明。


一、基本用法(以开放 TCP 80 端口为例)

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

说明:

  • -A INPUT:添加到 INPUT 链
  • -p tcp:协议为 TCP
  • --dport 80:目标端口 80
  • -j ACCEPT:允许通过

二、开放 UDP 端口(如 53)

sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT

三、指定来源 IP(可选)

只允许 192.168.1.100 访问 22 端口:

sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT

四、查看当前规则

sudo iptables -L -n -v

五、保存 iptables 规则(非常重要)

Ubuntu 默认 重启后规则会丢失,需要保存。

Ubuntu 20.04 / 22.04(使用 netfilter-persistent)

sudo apt install iptables-persistent
sudo netfilter-persistent save

或:

sudo systemctl enable netfilter-persistent

六、完整示例(开放 80 / 443)

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo netfilter-persistent save

七、注意事项

  1. 如果默认策略是 DROP,必须先允许:
    sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    
  2. SSH 端口一定要先允许,否则可能断连:
    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    
  3. Ubuntu 新版本也常用 ufw,更简单:
    sudo ufw allow 80/tcp
    

如果你有:

  • 特定端口(如 3306 / 8080)
  • 公网 / 内网限制
  • Docker / K8s 环境

可以告诉我,我给你更精确的命令。

0 踩