Apache不在CentOS上使用外部IP

我有一个新安装的CentOS 5.6机器,可以通过elinks在本地访问httpd。 但是这不适用于其他IP。 我可以ping IP,但是如果我连接到端口80,我没有路由到主机。我假设一些防火墙规则阻止访问端口80,并检查iptables,它似乎很好。

Chain INPUT (policy ACCEPT) target prot opt source destination RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT) target prot opt source destination RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain RH-Firewall-1-INPUT (2 references) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0 ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:631 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited 

你似乎没有一个规则,允许端口80上的stream量尝试这一点

 /sbin/iptables -I RH-Firewall-1-INPUT -p tcp -m tcp --dport 80 -j ACCEPT 

如果这个工程,然后保存你的防火墙configuration

 /sbin/service iptables save 

另一件要检查的事情是,Apache实际上被configuration为侦听你的外部IP地址。 检查/etc/httpd/conf/httpd.conf文件中的Listen指令。 应该是这样的

 Listen 80 

听所有可用的地址。

如果SELinux启用 – 首先检查所有与Apache相关的SELinux布尔值:

 [root@localhost ~]# getsebool -a | grep httpd . . . . . . httpd_builtin_scripting --> on httpd_can_network_connect --> off httpd_can_network_connect_db --> off httpd_can_network_relay --> off httpd_disable_trans --> off httpd_enable_cgi --> on httpd_enable_ftp_server --> off httpd_enable_homedirs --> on . . . . . . . . 

如果httpd_can_network_connect --> off禁用了httpd上的SELinux限制:

 [root@localhost ~]# setsebool -P httpd_can_network_connect on 

或者使用system-config-selinux (也称为SELinuxpipe理graphics工具)来控制特定守护程序的布尔值。