iptables配置防火墙后本机无法访问外网

开源世界 Winter 2年前 (2018-05-22) 1644次浏览 已收录 0个评论

配置一台centos6.9主机的iptables后,发现本机访问不了外网了,连ping其它主机都不可以,在防火墙中只对INPUT做了限制,OUTPUT是policy ACCEPT状态,有点想不通,放狗看看,其实也有人遇到这种问题,解决方法就是添加以下规则:

iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

添加后就可以正常与外网通信了。

为何在没有添加上述规则就不能通信?因为建立一个通信连接需要服务器端和客户端交互才能完成。举例来说,从本机使用ssh客户端去登陆外部的ssh服务器,假设使用端口为12345,那么本就使用tcp端口号12345向服务器22端口发送一个请求,这个属于OUTPUT,由于OUTPUT规则没有任何限制,所以可以顺利到达服务器,服务器收到请求后,服务器会回应本机的tcp 12345端口,此时回应属于INPUT,如果INPUT中配置放行此规则,那么连接就无法完成,也即是本机无法和外部通信。外部的网络那么多,总不能逐条去配置INPUT规则,所以为了能访问外部网络,必须要配置上述规则。

 

关于更多的state信息可以参考:iptables中state模块的连接状态


癹冬阁 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:iptables配置防火墙后本机无法访问外网
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址