我的服务器操作系统:Centos 6.3 x64。
服务器iptables
是:
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
COMMIT
但我没有得到任何回应
ping www.google.com
或者
curl -I http://www.google.com
从服务器。双方都没有收到任何回应!
如何修改我的iptables
规则?
答案1
您没有提供有关网络设置的更多详细信息,但假设配置iptables
位于主机“A”上并且您尝试ping
从主机“B”进行配置,那么这就是答案。
您配置iptables
为允许 TCP 端口 22 和 80。所有其他流量都被阻止,因为iptables
从顶部解释配置并且您有
:INPUT DROP [0:0]
放。
ICMP 是一个不同的协议,您必须明确允许它才能连接到ping
计算机:
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -d YOUR_IP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
编辑:您在原始问题中的编辑表明您正在尝试访问主机从您配置的主机iptables
。因此,您必须告知iptables
接受属于现有连接一部分的数据包:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
答案2
您应该允许 udp 端口 53 进行名称解析,并允许 icmp echo 进行 ping 测试