Centos 为什么这些iptables规则会阻止http

Centos 为什么这些iptables规则会阻止http,centos,firewall,iptables,Centos,Firewall,Iptables,我刚刚在新的CentOS 6.5安装中安装了apache。我在浏览器地址栏中输入了ip地址,但它无法连接。然后我关闭iptables,并重新设置网格,这一次我可以连接 显然,iptables正在阻塞http(端口80)通信 因此,我查看了iptables规则(在新的Centos安装后未触及),记住: 现在,我不是一个iptables专家,但我认为我对它的理解足以解决像这样的简单问题。但我很困惑,因为输入链中的第三行是: ACCEPT all -- anywhere

我刚刚在新的CentOS 6.5安装中安装了apache。我在浏览器地址栏中输入了ip地址,但它无法连接。然后我关闭iptables,并重新设置网格,这一次我可以连接

显然,iptables正在阻塞http(端口80)通信

因此,我查看了iptables规则(在新的Centos安装后未触及),记住:

现在,我不是一个iptables专家,但我认为我对它的理解足以解决像这样的简单问题。但我很困惑,因为输入链中的第三行是:

ACCEPT     all  --  anywhere             anywhere            
它似乎在说“对于任何协议,从任何来源到任何目的地,接受”

因此,我希望我可以连接到该网站(tcp,端口80)。但我不能。所以我一定是误解了iptables是如何工作的,或者列表的含义


有人能解释一下为什么上面的规则不允许传入http连接吗?

我自己就知道了。难怪我会感到困惑——清单并没有显示全部情况。我再次尝试使用-v(verbose)选项

特别是,它现在也显示了接口。第三条规则,我认为是非常允许的,实际上根本不是允许的,因为它只适用于系统的内部环回地址

因此,来自外部的HTTP请求将通过以太网接口接收,而不是环回,第三条规则不适用,因此唯一匹配的是最终拒绝规则


希望这能帮助别人不要像我一样困惑。

我自己想出来的。难怪我会感到困惑——清单并没有显示全部情况。我再次尝试使用-v(verbose)选项

特别是,它现在也显示了接口。第三条规则,我认为是非常允许的,实际上根本不是允许的,因为它只适用于系统的内部环回地址

因此,来自外部的HTTP请求将通过以太网接口接收,而不是环回,第三条规则不适用,因此唯一匹配的是最终拒绝规则

希望这能帮助别人不要像我一样困惑

ACCEPT     all  --  anywhere             anywhere            
[root@centos ~]# iptables -L -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
81194  118M ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere            
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere            
    7   364 ACCEPT     tcp  --  any    any     anywhere             anywhere            state NEW tcp dpt:ssh 
   21  2394 REJECT     all  --  any    any     anywhere             anywhere            reject-with icmp-host-prohibited