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
或:::
。
在 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
或:::
。