Networking

如何同時 ping 多個 IP 地址?

  • March 22, 2021

我知道您可以執行 Bashfor循環和ping多個伺服器的方法,是否有一個我可以使用的 Linux CLI 工具,它允許我執行此操作,而無需求助於將 Bash 腳本寫入ping伺服器列表一次一個?

像這樣的東西:

$ ping host1 host2 host3

**注意:**我正在專門尋找 CentOS/Fedora,但如果它適用於其他發行版也很好。

如果您查看NMAP 項目,您會發現它在僅nmap. 這些工具之一是nping,它包括以下功能:

Nping 有一個非常靈活和強大的命令行界面,可以讓使用者完全控制生成的數據包。Nping 的功能包括:

  • 自定義 TCP、UDP、ICMP 和 ARP 數據包生成。
  • 支持多目標主機規範。
  • 支持多目標埠規範。

nping在標準 EPEL 儲存庫中進行引導。

$ repoquery -qlf nmap.x86_64 | grep nping
/usr/bin/nping
/usr/share/man/man1/nping.1.gz

用法

要 ping 多台伺服器,您只需告知nping名稱/IP 以及您要使用的協議。在這裡,由於我們想模仿傳統pingCLI 的功能,我們將使用 ICMP。

$ sudo nping -c 2 --icmp scanme.nmap.org google.com

Starting Nping 0.7.70 ( https://nmap.org/nping ) at 2019-06-14 13:43 EDT
SENT (0.0088s) ICMP [10.3.144.95 > 45.33.32.156 Echo request (type=8/code=0) id=42074 seq=1] IP [ttl=64 id=57921 iplen=28 ]
RCVD (0.0950s) ICMP [45.33.32.156 > 10.3.144.95 Echo reply (type=0/code=0) id=42074 seq=1] IP [ttl=46 id=24195 iplen=28 ]
SENT (1.0091s) ICMP [10.3.144.95 > 45.33.32.156 Echo request (type=8/code=0) id=42074 seq=2] IP [ttl=64 id=57921 iplen=28 ]
SENT (2.0105s) ICMP [10.3.144.95 > 45.33.32.156 Echo request (type=8/code=0) id=42074 seq=2] IP [ttl=64 id=57921 iplen=28 ]
RCVD (2.0107s) ICMP [45.33.32.156 > 10.3.144.95 Echo reply (type=0/code=0) id=42074 seq=2] IP [ttl=46 id=24465 iplen=28 ]
SENT (3.0138s) ICMP [10.3.144.95 > 64.233.177.100 Echo request (type=8/code=0) id=49169 seq=2] IP [ttl=64 id=57921 iplen=28 ]

Statistics for host scanme.nmap.org (45.33.32.156):
|  Probes Sent: 2 | Rcvd: 2 | Lost: 0  (0.00%)
|_ Max rtt: 86.053ms | Min rtt: 0.188ms | Avg rtt: 43.120ms
Statistics for host google.com (64.233.177.100):
|  Probes Sent: 2 | Rcvd: 0 | Lost: 2  (100.00%)
|_ Max rtt: N/A | Min rtt: N/A | Avg rtt: N/A
Raw packets sent: 4 (112B) | Rcvd: 2 (108B) | Lost: 2 (50.00%)
Nping done: 2 IP addresses pinged in 3.01 seconds

我發現這個工具的唯一缺點是使用需要 root 權限的 ICMP 模式。

$ nping -c 2 --icmp scanme.nmap.org google.com
Mode ICMP requires root privileges.

引用自:https://unix.stackexchange.com/questions/524963