我尝试在我的 Tomato 路由器 (Linux 2.6) 上使用 nmap 快速勘测我的 LAN 上的某个子网。即使我将其设置为扫描单个客户端,也需要近四分钟才能完成。根据调试输出,我可以看到扫描本身非常快,但总时间却……不快。
这是我正在使用的命令(仅用于测试):
nmap -d -n -sn -vv 1.1.2.7
输出如下:
Starting Nmap 5.35DC1 ( http://nmap.org ) at 2014-09-17 21:37 CEST
--------------- Timing report ---------------
hostgroups: min 1, max 100000
rtt-timeouts: init 1000, min 100, max 10000
max-scan-delay: TCP 1000, UDP 1000, SCTP 1000
parallelism: min 0, max 0
max-retries: 10, host-timeout: 0
min-rate: 0, max-rate: 0
---------------------------------------------
Initiating ARP Ping Scan at 21:37
Scanning 1.1.2.7 [1 port]
Packet capture filter (device br1): arp and arp[18:4] = 0x08606EBA and arp[22:2] = 0x3D18
Completed ARP Ping Scan at 21:37, 0.15s elapsed (1 total hosts)
Overall sending rates: 6.73 packets / s, 282.53 bytes / s.
Nmap scan report for 1.1.2.7
Host is up, received arp-response (0.087s latency).
MAC Address: XX:XX:XX:E8:53:2D (Unknown)
Final times for host: srtt: 86931 rttvar: 86931 to: 434655
Read from /opt/share/nmap: nmap-mac-prefixes nmap-payloads.
Nmap done: 1 IP address (1 host up) scanned in 235.73 seconds
Raw packets sent: 1 (28B) | Rcvd: 1 (28B)
如您所见,ping 扫描很快就完成了,但总耗时为 235 秒。我相信它尝试使用 nmap-mac-prefixes 匹配 MAC 地址的 OUI,但我无法想象这会花这么长时间。
我尝试了各种方法,但都无济于事。你知道延迟是从哪里来的吗?
答案1
我不确定速度变慢的原因是什么,但标准的 Nmap 调试建议肯定适用:
- 更新您的 Nmap。版本 5.35DC1 于 2010 年发布,距今已有 4 年。对于像 Nmap 这样积极开发的项目来说,这已经是历史了。尝试最新版本(撰写本文时为 6.47),网址为http://nmap.org/download.html
- 增加调试级别。添加
-d
参数后,您将获得更详细的输出。对于大多数目的而言,-d3
这是您所需要的。 - 如果问题仍然存在,请提交错误报告至[电子邮件保护]输出为:
nmap --version
nmap --iflist
- 导致问题的命令(包括在哪里在输出中发生挂起(如果可能)
最后说明一下:由于您在嵌入式系统上运行 Nmap,因此处理和文件访问时间很可能比通用计算机慢得多。