使用 nmap 扫描家庭网络的端口,但无法理解 nmap 如何能够找到开放端口,当连接了 1 个以上的设备时

问题描述

我看到一个视频,其中有人使用 nmap 扫描公共 IP(这是他的 SOHO 网络)。它显示了所有打开的端口和其他信息,但我不明白 nmap 如何扫描端口并在该网络上有多个设备时判断哪些是打开的。是 nmap 使用该公共 IP 扫描该网络上的所有设备,然后显示集体结果还是其他什么? Link for that video

7:43

解决方法

当 NMAP 扫描 IP 时,理论上它只会扫描在该 IP 上运行的设备。

但是有一个问题,如果 NMAP 扫描的 IP 是带有端口转发的设备,它会将对该端口的扫描转发到端口转发所针对的设备。

举个例子,我会定义一些东西

  • 您有 3 台设备、1 台具有公共 IP 的路由器、2 台服务器 在路由器后面。
  • 我们将扫描 4 个端口,分别是 10、20、30、40
Port 10 is open on the router itself,its used for public communication

Port 20 is not opened on the router and its not being port forwarded

Port 30 is being port forwarded to Server 1,who has that port open

Port 40 is being port forwarded to Server 2,but that server doesn't have that port open

在 NMAP 上的结果中,您将得到以下结果。

端口 10 和 30 将显示为打开状态,而端口 20、40 将显示为关闭或可能被过滤

因此,虽然我们只扫描了一个公共 IP 和该 IP 上的一台设备,但我们可以看到路由器后面的设备。 但这只是可能的,因为当我们尝试连接到路由器上的端口时,路由器会说:

“好的,这个连接正在尝试转到端口 30,我在这里有一个配置说端口 30 应该转到该端口上的服务器 1,我会将流量重定向到该服务器,然后当我收到响应时从服务器,我将重定向到发出请求的设备"