nmap 报告关闭端口 Centos 7 而此端口上的 pid 为 运行

nmap reports closed port Centos 7 while a pid is running on this port

在 CentOS Linux 7 机器上,我在端口 1314 上提供了一个 Web 应用程序

$ netstat -anp | grep 1314
tcp        0      0 127.0.0.1:1314          0.0.0.0:*               LISTEN      1464/hugo
tcp        0      0 127.0.0.1:60770         127.0.0.1:1314          TIME_WAIT   -

我可以在本地卷曲它。 我打开了 1314 端口:

iptables-save | grep 1314
-A IN_public_allow -p tcp -m tcp --dport 1314 -m conntrack --ctstate NEW,UNTRACKED -j ACCEPT

我在本地使用 nmap 进行了检查:

PORT     STATE SERVICE
1314/tcp open  pdps

一切似乎都很好。

现在,如果我尝试从另一台机器 curl 网络应用程序,我会遇到连接被拒绝的情况。 当我从远程机器尝试 nmap 时:

PORT     STATE  SERVICE
1314/tcp closed pdps

所以防火墙没有屏蔽端口,但是看起来没有人在端口 1314 上侦听... 但是我们知道 Web 应用程序在此端点上是 运行 那么发生了什么??

让进程侦听端口(并且该端口已打开且配置正确)不足以启用远程通信。本地地址也需要与远程地址在同一网络上!

在这里,在 netstat 打印输出中,我们可以看到本地地址是 localhost(127.0.0.1::1)。 Localhost 显然与我用来卷曲我的网络应用程序的远程机器不在同一个网络上。这也解释了为什么 nmap 报告一个关闭的端口(意味着本地端没有任何监听)。

注意:要监听所有网络接口,本地地址应该是0.0.0.0:::