Ping
掃描所有線上主機的最快方法
我正在尋找在一組網路中線上的所有主機。
想找出170.10全網所有線上的主機。. (有 ~64K 可能的主機)。我要掃描的網路是內部本地網路。
我使用了 nmap 工具。但這需要大約50分鐘,這太長了。在 64K 主機中,可能只有大約 20-40 台主機線上。但問題是它們可能位於可能的 256 個網路中的任何一個(或一個或多個)網路中。
我正在尋找一種方法來快速解決這個問題。我認為使用 ping 命令也無濟於事,因為 ping 64K 主機不會更快。
我正在尋找任何替代解決方案,可能將 ICMP 數據包直接廣播到所有 256 個網路或類似的東西。
有什麼想法/建議嗎?謝謝。
簡短的回答:
nmap -sn -T5 --min-parallelism 100 subnet/mask -oG output.file.txt; grep -v Down output.file.txt
解釋:單獨的 nmap 應該能夠更快地掃描。我們將首先限制 nmap 進行 ping 掃描
-sP
(較新的版本將 -sP 替換為 -sn)來自
man nmap
:TIMING AND PERFORMANCE: Options which take <time> are in seconds, or append 'ms' (milliseconds), 's' (seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m). -T<0-5>: Set timing template (higher is faster) --min-hostgroup/max-hostgroup <size>: Parallel host scan group sizes --min-parallelism/max-parallelism <numprobes>: Probe parallelization --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: Specifies probe round trip time. --max-retries <tries>: Caps number of port scan probe retransmissions. --host-timeout <time>: Give up on target after this long --scan-delay/--max-scan-delay <time>: Adjust delay between probes --min-rate <number>: Send packets no slower than <number> per second --max-rate <number>: Send packets no faster than <number> per second
是時候做一個小實驗了,並行執行更多的 ping 掃描
--max-parallelism
,並警告在風中被檢測到-T5
:nmap 沒有任何選項:
% time nmap -sP 192.168.1.0/24 [...] nmap -sP 192.168.1.0/24 0.04s user 0.02s system 2% cpu 2.917 total % time nmap -T5 --max-parallelism=100 -sP 192.168.1.0/23 [...] nmap -sP 192.168.1.0/23 0.08s user 0.04s system 0% cpu 37.469 total
帶有計時選項的 nmap:
% time nmap -T5 --max-parallelism=100 -sP 192.168.1.0/24 [...] nmap -T5 --max-parallelism=100 -sP 192.168.1.0/24 0.03s user 0.03s system 3% cpu 2.016 total % time nmap -T5 --max-parallelism=100 -sP 192.168.1.0/23 [...] nmap -T5 --max-parallelism=100 -sP 192.168.1.0/23 0.11s user 0.02s system 2% cpu 4.869 total
相當的改善。
對於 /16 子網掃描,就像 OP 詢問的那樣:
Nmap done: 65536 IP addresses (30 hosts up) scanned in 169.43 seconds nmap -sP -T5 --min-parallelism 100 --max-parallelism 256 192.168.0.0/16 44.67s user 8.45s system 31% cpu 2:49.44 total
為了將@Dan 的建議也加入其中,我在 fping 仍在執行 5 分鐘後感到無聊:-)