我正在尝试使用以下命令绘制网络拓扑图
nmap -sP -PE -PS22,25,80 -PA21,23,80,3389 -PU -PO -oX topology.xml --traceroute 10.0.0.0/8
(10.0.0.0/8 因为现在没人知道那里有什么,这也是我运行这个项目的原因之一)
显然这需要很长时间。所以我想知道我是否可以得到一些关于如何加快速度的建议?那里的主机应该不超过 300 个,但没有人知道 10.0.0.0/8 范围内的子网是如何划分的,所以我不知道是否有比扫描整个网络更好的选择。
提前致谢!
答案1
我有一些加快 Nmap 扫描速度的想法,但首先我想解决真正的问题:您有一个私有 LAN,在 10.0.0.0/8 上有 300 个主机,您需要找到所有正常运行的主机。Ping 扫描应该是您的最后手段,因为网络内有更可靠(且更快)的信息源。
路由器和交换机配置。这些不会显示有关单个主机的太多信息,但会显示有关子网的信息。
DHCP 服务器日志。这不会得到所有信息,因为主机可以配置静态 IP 地址,但它会给你一个良好的开端。至少,DHCP 服务器配置会告诉你哪些子网是动态分配的。
从网络设备捕获数据包。使用交换机上的 span 端口或端口镜像捕获一两天的流量。这应该会显示所有正在使用的地址。
物理追踪。如果您对网络范围有一个不错的物理边界,您可以找到您的网络设备并开始跟踪电缆。如果网络稳定性不是很重要,请开始拔掉插头,看看谁会抱怨。:)
ARP 扫描。您的 Nmap 命令中有很多不同的第 3 层探测,但如果您位于同一个第 2 层广播域中,Nmap 的第 2 层 ARP 主机检测是无与伦比的。这是因为主机无法在没有首先响应第 2 层 ARP 请求(泄露其 MAC 地址)的情况下接收第 3 层探测。这将需要多次扫描(可能每个交换机一次),但这是最彻底的扫描选项。
现在,至于为什么你的 Nmap 扫描花费这么长时间,有有很多事情需要考虑。首先,要明白 Nmap 是彻底的。它不会放弃某个地址,直到您选择的所有主机发现探测都超时。选择更多探测(-P*
选项)将提供更准确的结果,但也会使您的扫描速度变慢。Nmap 的默认探针集(-PE -PS443 -PA80 -PP
或-PR
在本地时)达到了良好的平衡,我不会对其进行太多调整。
其他优化包括将计时模板从默认增加到-T3
。-T4
这对于任何 LAN 来说都应该没问题,但我可能不会一直使用-T5
。您还可以通过使用 跳过反向 DNS 名称解析来节省一些时间-n
。最后,我强烈建议升级到Nmap 的最新版本,目前为 6.40(2013 年 7 月)。