为什么 Nmap 没有检测到活动并响应 Ping 的主机?
查看nmap 文档,您会发现以下语句(添加了重点):
如果没有选择这些主机发现技术,Nmap 使用默认值,相当于 Windows 或特权 (root) Unix 用户的 -PE -PS443 -PA80 -PP 参数。细心的读者都知道,这意味着向每台机器发送一个 ICMP 回显请求、一个 TCP SYN 包、一个 TCP ACK 包和一个 ICMP 时间戳请求。一个例外是 ARP 扫描用于本地以太网网络上的任何目标。对于非特权 Unix shell 用户,默认值相当于 -PS80,443(针对目标主机的端口 80 和 443 的 TCP 连接调用)。
但是,您的屏幕截图表明您是在 Windows 上的 PowerShell 中运行的。虽然上面确实说 Windows 将使用 ICMP 和 TCP 进行主机发现,但我怀疑这里发生了其他事情。
Windows PowerShell 是旧版 Windows 命令提示符的替代品。多年来,与 *nix 对应的 Windows 环境相比,其中一个缺点是命令提示符的功能或实用性不如 *nix CLI。Microsoft 开发了 PowerShell 来帮助抵消 *nix 竞争对手所拥有的这一优势。
因此,Windows PowerShell 的行为更像它的 *nix 对应物。我怀疑(但无法确认,因为我没有安装 nmap 来测试的 Windows 机器)没有升级权限的 Windows PowerShell 的行为很像非特权 *nix shell。
我已经通过数据包捕获确认使用带有非特权 *nix shell 的 nmap 的行为如文档中所示。此外,我确认在这种情况下,您将获得您描述的确切体验,其中 ICMP ping 有效,并且如果 TCP/80 和/或 TCP/443 在相关主机上未打开,则 nmap(未指定选项)认为主机关闭.
此 IP 地址称为链接本地 IP 地址。这是不可路由的。该地址仅对主机所连接的网段或广播域内的通信有效。
此 IP 地址称为链接本地 IP 地址。这是不可路由的。该地址仅对主机所连接的网段或广播域内的通信有效。
这是一个链接本地地址,如 infra 所说。当您的计算机无法联系 DHCP 时,会分配以 169.XXX 开头的地址。它仅在您的本地网络上可用,因此不可路由。
我在 Windows 11 上遇到了 nmap 7.92 这个问题,安装 npcap 为我解决了这个问题。