1949啦网--小小 痛苦,是因为能力和欲望不匹配造成的

启用iptables后无法解析域名和ping

常规情形下,服务器是不会开启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/post/4875.html

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

微信扫码关注

更新实时通知

作者:xialibing 分类:网络教程 浏览: