我想使用 NMAP 进行 IP 扫描,但由于某些原因操作时间有所不同。该命令可以在 2 秒内执行,如果我随后再次启动它,可能需要 30 秒。
这是我使用的命令:
nmap -n -sn -T5 --max-rtt-超时 1s
-n:无 DNS 解析
-sn : 禁用端口扫描
-T5快速模式
--max-rtt-timeout 探针往返超时 1s
不知道我的优化好不好?以及如何让它变得更好?
谢谢你
就我而言,在原始命令中添加最小并行度将扫描时间从 26.54 秒缩短到 3.26 秒:
nmap -n -sn -T5 --max-rtt-timeout 1s --min-parallelism 100 172.27.192.0-255
一些调试输出(
-d --packet-trace
将是一个好的开始)对于诊断这个问题非常有帮助。我的第一个想法是您告诉 Nmap 使用太短的超时,导致在不需要时发生重传。但这可能不会导致 30 秒的运行时间;即使首先重新传输探测,响应一进来就会被看到并接受。
更有用的信息是 Nmap 的版本和平台(
nmap --version
)、您的命令是否以 root 权限或管理员权限运行,以及您正在扫描的网络类型。该问题被标记为 wifi,但您没有说明目标是否与您位于同一链接上,或者距离几个网络跃点。
-T5
真正意味着什么,以便您可以在调整性能变量时做出理性决策。不仅 -T5
不是正确的“快速模式”,而且您将往返超时设置为 -T5
默认值的 3 倍,这可能是一个很好的信号,表明其余变量不在它们的位置需要。尝试 -T4
甚至默认的 -T3
,看看计时是否稳定。如果事实证明它几乎与您最好的-T5
倍一样快,我不会感到惊讶。
对于端口扫描,这些设置可能有点严格,但有助于提高速度:
--min-hostgroup 256 --max-rtt-timeout 100ms --max-retries 1
--min-hostgroup
= 将 IP 分成组以进行并行扫描。在本例中,我正在扫描整个子网。
--max-retries 1
= 端口扫描失败则重新发送。
如需进一步帮助,请参阅 nmap 时序和性能文档。