You need to enable JavaScript to run this app. nmap的-P0选项作用、两类扫描命令的区别及使用建议
优惠活动
大模型
产品
解决方案
定价
更多

nmap的-P0选项作用、两类扫描命令的区别及使用建议

Nmap扫描疑问:-P0选项的作用与两条命令的差异

提问背景

在学习Nmap基础功能与使用方法、搭配Wireshark观测扫描产生的网络流量过程中,针对以下两条扫描命令的差异产生疑问,同时查阅多份Nmap选项速查表时,始终没有检索到-P0选项的相关说明,希望明确该选项的具体作用与适用场景:

nmap -p113 scanme.nmap.org
nmap -p113 -P0 scanme.nmap.org

核心差异解析

  • 不带-P0的默认扫描流程:Nmap在执行端口扫描前,会先通过内置的默认主机发现探针(ICMP echo请求、TCP 443端口SYN包、TCP 80端口ACK包、ICMP时间戳请求)判断目标主机是否在线。只有判定目标在线时,Nmap才会继续执行针对113端口的扫描动作;如果主机发现阶段判定目标离线,Nmap会直接终止后续扫描,不会发起端口探测流量。
  • 带-P0的扫描流程:Nmap会跳过所有主机发现步骤,默认目标主机处于在线状态,直接跳转到后续的113端口扫描流程,不会提前发送任何存活探测的探针流量。这个流程产生的Wireshark流量中,不会看到主机发现阶段的那几类探测包,只会看到和113端口扫描直接相关的流量。

为什么多数速查表没有收录-P0选项

-P0是Nmap早期版本的遗留写法,其中的0代表数字0,语义为"Ping offline",也就是跳过ping探测。
在当前主流的Nmap版本中,这个功能对应的官方规范写法已经更新为-Pn,更换写法的原因是数字0和大写字母O在终端环境下极易产生视觉混淆,影响用户记忆和输入准确性。为了兼容历史脚本和用户的使用习惯,旧的-P0写法现在依然可以正常生效,但因为不属于新的官方推荐写法,很多新整理的速查表不会收录这个旧选项的说明,这也是找不到对应文档的核心原因。

是否推荐常规扫描时使用-P0选项

  • 不建议在无特殊需求的常规扫描中默认使用该选项:跳过主机发现会产生大量无意义的流量——哪怕目标实际处于离线状态,Nmap也会照常向指定端口发送探测包,不仅会拉长整体扫描耗时,还会产生不必要的网络访问记录,提升被目标侧安全设备识别为恶意扫描的概率。
  • 该选项仅适用于特定排查场景:当目标主机明确屏蔽了所有类型的主机发现探针(比如拦截全部ICMP请求、过滤80/443端口的探测包),导致Nmap默认主机发现流程误判目标离线时,才适合使用该选项强制跳过存活检查,直接执行端口扫描动作。

内容的提问来源于stack exchange,提问作者Mavil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.08 08:06:03