Networking
如何同時 ping 多個 IP 地址?
我知道您可以執行 Bash
for
循環和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 以及您要使用的協議。在這裡,由於我們想模仿傳統ping
CLI 的功能,我們將使用 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.