我已经在机架空间上启动了CentOS服务器并执行了yum install httpd‘d。然后services httpd start。因此,只是准系统。
yum install httpd
services httpd start
我可以通过ssh(22)远程访问其IP地址,所以DNS或其他任何问题(我认为…)都没有问题,但是当我尝试通过浏览器等通过端口80进行连接时,拒绝连接。
但是,从本地主机,我可以使用telnet(80),甚至可以使用lynx并毫无问题地得到服务。telnet从外部(我的房子,我的学校,当地的咖啡店等)在22点而不是80点连接。
我用netstat -tulpn(<-我不会撒谎,我不理解那-tulpn部分,但是那是互联网告诉我要做的…)然后看
netstat -tulpn
-tulpn
tcp 0 0 :::80 :::* LISTEN -
如我所愿。该httpd.conf说Listen 80。
httpd.conf
Listen 80
我已经有services httpd restart很多次了。
services httpd restart
老实说,我不知道该怎么办。机架空间无法在传入端口80请求上设置防火墙。我觉得自己好像错过了一些愚蠢的事情,但是我现在已经两次启动了准系统服务器,并做了最小限度的工作以使此功能正常运行,以为我已经修补了一切,但均无济于事。
任何帮助是极大的赞赏!(并对冗长的帖子感到抱歉…)
编辑 我被要求发布的输出iptables -L。所以这里是:
iptables -L
Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT icmp -- anywhere anywhere ACCEPT all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) target prot opt source destination
万一还没有解决。您的iptables说:
状态相关,已确定
这意味着它只允许通过已经建立的连接,而不是由远程计算机建立的连接。然后,您可以在以下规则中看到此例外:
state NEW tcp dpt:ssh
仅对ssh有效,因此您应该为http添加类似的规则/行,您可以这样操作:
state NEW tcp dpt:80
您可以这样做:
sudo iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
(在这种情况下,我选择在第四行中添加新规则)
请记住,编辑文件后,应按以下方式保存文件:
sudo /etc/init.d/iptables save