小编典典

apache不接受来自本地主机的传入连接

linux

我已经在机架空间上启动了CentOS服务器并执行了yum install httpd‘d。然后services httpd start。因此,只是准系统。

我可以通过ssh(22)远程访问其IP地址,所以DNS或其他任何问题(我认为…)都没有问题,但是当我尝试通过浏览器等通过端口80进行连接时,拒绝连接。

但是,从本地主机,我可以使用telnet(80),甚至可以使用lynx并毫无问题地得到服务。telnet从外部(我的房子,我的学校,当地的咖啡店等)在22点而不是80点连接。

我用netstat -tulpn(<-我不会撒谎,我不理解那-tulpn部分,但是那是互联网告诉我要做的…)然后看

tcp    0    0 :::80     :::*    LISTEN    -

如我所愿。该httpd.confListen 80

我已经有services httpd restart很多次了。

老实说,我不知道该怎么办。机架空间无法在传入端口80请求上设置防火墙。我觉得自己好像错过了一些愚蠢的事情,但是我现在已经两次启动了准系统服务器,并做了最小限度的工作以使此功能正常运行,以为我已经修补了一切,但均无济于事。

任何帮助是极大的赞赏!(并对冗长的帖子感到抱歉…)

编辑 我被要求发布的输出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

阅读 244

收藏
2020-06-03

共1个答案

小编典典

万一还没有解决。您的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
2020-06-03