在 CentOS 系统中,使用 iptables 允许(开放)某个端口,常见做法如下(以 CentOS 7 为例,并假设还在使用 iptables,而不是 firewalld)。
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
-I INPUT:插入到 INPUT 链(默认最前面)-p tcp:TCP 协议(UDP 用 -p udp)--dport 8080:目标端口-j ACCEPT:允许UDP 示例:
iptables -I INPUT -p udp --dport 53 -j ACCEPT
只允许 192.168.1.100 访问 3306:
iptables -I INPUT -p tcp -s 192.168.1.100 --dport 3306 -j ACCEPT
允许 8000–9000:
iptables -I INPUT -p tcp --dport 8000:9000 -j ACCEPT
CentOS 7 默认不会自动保存,重启后会丢失规则。
yum install -y iptables-services
service iptables save
或
iptables-save > /etc/sysconfig/iptables
systemctl enable iptables
systemctl start iptables
iptables -L -n
或只看 INPUT:
iptables -L INPUT -n
iptables -L INPUT --line-numbers
iptables -D INPUT 3
CentOS 7 默认使用 firewalld,如果你在用 firewalld,不建议混合使用 iptables。
systemctl status firewalld
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
| 服务 | 端口 |
|---|---|
| SSH | 22 |
| HTTP | 80 |
| HTTPS | 443 |
| MySQL | 3306 |
| Redis | 6379 |
示例:
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
如果你愿意,可以告诉我:
我可以给你最合适的一套完整命令。