启用iptables后无法解析域名和ping
时间:6年前 阅读:6419
常规情形下,服务器是不会开启iptables的,原因比较简单:一是外部请求需要经过代理或者中转服务器,后端服务器不会直接暴露;二是外层网络安全组已经配置访问规则,安全组正常工作的情况下,iptables的角色重复。
面向终端用户的服务器基本上要求开启iptables。配置过程中就不说被自己踢下去这样的坑了,最近几次遇到的坑是:开启iptables后,无法访问外网,也无法ping通外网,关闭后一切正常。主意到这个现象是半年前在一台服务器上开启iptables,过了几天发现解析域名异常。解析域名问题第一反应当然是排查DNS。经过配置DNS,提工单找技术支持等方案折腾后,某天灵感闪现,上网一查果然是iptables的问题。
本人最常用的iptables配置是这样:
iptables -F iptables -P INPUT ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT 配置其他规则 iptables -P INPUT DROP
上述配置在不会主动访问外网(需解析域名的)url服务器上没有问题。此时如果在服务器上执行curl www.baidu.com
或者ping www.baidu.com
,会发现命令卡住无返回。原因在于iptables默认的策略是DROP,解析域名和ping用到的udp和icmp包在iptables中均被丢弃掉了。
解决dns解析的问题,需要加上如下规则:
iptables -A INPUT -p udp --dport 53 -j ACCEPT iptables -A INPUT -p udp --sport 53 -j ACCEPT
ping通外网,或者让外网ping通,需要加上如下规则:
iptables -A INPUT -p imcp -j ACCEPT
本站声明:网站内容来源于网络,如有侵权,请联系我们https://www.qiquanji.com,我们将及时处理。
微信扫码关注
更新实时通知
网友评论