解决iptables开放端口不生效的问题

今天在vps上部署了ngrok服务,可是防火墙开启的时候死活连不上。

于是开放了相关端口,使用以下命令(centos6.5系统)

开启某个端口号(如8000端口号,命令方式)
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 8000 -j ACCEPT
保存开启的端口号
service iptables save
重新启动防火墙
service iptables restart

或者可以直接编辑iptables配置文件,效果也是一样的

通过修改配置文件开启端口号(如8000端口号)
vi /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8000 -j ACCEPT
启动防火墙
service iptables restart

可是当我把防火墙端口开放以后,发现仍然连接不上,于是查看了一下我的iptables配置 文件。
service iptables status
或者你也可以直接cat一下配置 文件
cat /etc/sysconfig/iptables
发现有一条规则很可疑,不知道是啥意思,于是百度了一下。

reject-with icmp-host-prohibited
这句话的意思是什么不重要,重要的是,如果规则里有这么一条,那么加在它下面的规则不会生效(指开放端口的规则不会生效)
知道这个原因后,把这条规则挪到规则的最下面,确保自己刚才新加的开放端口的规则在它前面,然后保存配置文件,重启iptables,问题解决,端口可以访问了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注