为什么 Nmap 在主机发现中不使用 ICMP 请求?

为什么 Nmap 在主机发现中不使用 ICMP 请求?

我正在使用 Nmap 发现网络中的主机。假设网络为 192.168.0.0/24。当发现本地主机(使用nmap -sn 192.168.0.0/24)时,程序使用 arp 来发现主机(我使用 Wireshark 来发现网络事件);当发现外部主机(使用nmap -sn 192.168.1.0/24)时,Nmap 似乎使用一些 tcp 请求来发现。

--disable-arp-ping似乎不适用于本地网络。

Nmap 这样做是为了更高效还是更准确(如文档中所述,它写着“Ping 扫描”,但它不执行“Ping”)?是否可以强制 Nmap 使用 ping 来发现主机?

答案1

Nmap 的主机发现旨在发现主机。它执行此操作的方式因用户的权限级别和与目标的网络连接类型而异。如果您看到的是 TCP 连接而不是 ICMP 回显请求,那么您可能没有 root/管理员权限发送和接收 ICMP 数据报所需的。如果您使用的是 Linux 或 macOS,请重试sudo;如果您使用的是 Windows,请启动 Npcap 服务。

-sn选项之所以被称为“Ping 扫描”,是因为它在历史上一直被这样称呼;由于这种混淆,我们已逐渐删除对“ping”的引用。事实是,RFC 792“Internet 控制消息协议”中没有提到“ping”。该词指的是声纳,因此任何类型的探测和响应都可以称为“ping”。

答案2

禁用 ARP 命令是正确的,但你必须按如下方式运行它

详细信息和相同问题在此处:如何强制 NMAP 使用 PE 选项

相关内容