Ubuntu Server 16.10 不允许通过开放端口 80 进行连接

Ubuntu Server 16.10 不允许通过开放端口 80 进行连接

我正在尝试在端口 80 上运行 gulp (node.js) 服务器。我之前有一个 Nginx 服务器在这个端口上运行良好,并且能够从外部访问。从命令中可以看到curl,服务器进程正在运行并正确地为 localhost 提供服务(我在 gulp 文件中将主机名设置为“0.0.0.0”,也尝试将其设置为“127.0.0.1”):

内部服务

但是,当我从远程机器将公网 IP 输入浏览器时,什么也没有发生。同样,当我curl从另一台机器在公网 IP 上运行 时(因此这不是格式错误的 html/php 问题或类似问题),也没有任何反应。尽管curl从机器本身运行公网 IP 时一切正常。

以下是服务器进程初始输出的图片:

gulp 服务器进程

还有什么可以阻止此连接?我自己没有在系统中添加任何额外的防火墙。

iptables -L输出以下内容:

Chain ufw-user-input (1 references)
target     prot opt source               destination         
DROP       tcp  --  anywhere             anywhere             tcp dpt:http /* 'dapp_Nginx%20HTTP' */
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
DROP       tcp  --  anywhere             anywhere             tcp dpt:8000
DROP       udp  --  anywhere             anywhere             udp dpt:8000
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     udp  --  anywhere             anywhere             udp dpt:http

所以我想知道

DROP tcp -- anywhere anywhere tcp dpt:http /* 'dapp_Nginx%20HTTP' */

可能是问题所在,也许它拒绝的不仅仅是 Nginx(虽然肯定应该如此?)?如果是这样,我该如何使用 iptables 删除此特定拒绝规则?如果不是,我有点不知道是什么导致了这个问题。

iptables -L(如果有人觉得需要的话我可以提供完整的输出。)

答案1

没关系,最后是 Nginx 规则,我原以为它是特定于 Nginx 的,但是显然阻止了整个端口,即使在使用 ufw 专门打开了 80 端口之后。

像这样修复:

iptables -D ufw-user-input 1

相关内容