Ping

掃描所有線上主機的最快方法

  • September 27, 2018

我正在尋找在一組網路中線上的所有主機。

想找出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 分鐘後感到無聊:-)

引用自:https://serverfault.com/questions/665311