每天一個 Linux 命令:ping 命令

Linux 系統的 ping 命令是常用的網絡命令,它通常用來測試與目標主機的連通性,我們經常會說 “ping 一下某機器,看是不是開着”、不能打開網頁時會說 “你先 ping 網關地址 192.168.1.1 試試”。

它通過發送 ICMP ECHO_REQUEST 數據包到網絡主機(send ICMP ECHO_REQUEST to network hosts),並顯示響應情況,這樣我們就可以根據它輸出的信息來確定目標主機是否可訪問(但這不是絕對的)。

有些服務器爲了防止通過 ping 探測到,通過防火牆設置了禁止 ping 或者在內核參數中禁止 ping,這樣就不能通過 ping 確定該主機是否還處於開啓狀態。

linux 下的 ping 和 windows 下的 ping 稍有區別,linux 下 ping 不會自動終止,需要按 ctrl+c 終止或者用參數-c 指定要求完成的迴應次數。

1. 命令格式:

ping [參數] [主機名或 IP 地址]

2. 命令功能:

ping 命令用於:確定網絡和各外部主機的狀態;跟蹤和隔離硬件和軟件問題;測試、評估和管理網絡。如果主機正在運行並連在網上,它就對回送信號進行響應。每個回送信號請求包含一個網際協議(IP)和 ICMP 頭,後面緊跟一個 tim 結構,以及來填寫這個信息包的足夠的字節。缺省情況是連續發送回送信號請求直到接收到中斷信號(Ctrl-C)。

ping 命令每秒發送一個數據報並且爲每個接收到的響應打印一行輸出。ping 命令計算信號往返時間和(信息)包丟失情況的統計信息,並且在完成之後顯示一個簡要總結。ping 命令在程序超時或當接收到 SIGINT 信號時結束。Host 參數或者是一個有效的主機名或者是因特網地址。

3. 命令參數:

-d 使用 Socket 的 SO_DEBUG 功能。

-f 極限檢測。大量且快速地送網絡封包給一臺機器,看它的迴應。

-n 只輸出數值。

-q 不顯示任何傳送封包的信息,只顯示最後的結果。

-r 忽略普通的 Routing Table,直接將數據包送到遠端主機上。通常是查看本機的網絡接口是否有問題。

-R 記錄路由過程。

-v 詳細顯示指令的執行過程。

-c 數目:在發送指定數目的包後停止。

-i 秒數:設定間隔幾秒送一個網絡封包給一臺機器,預設值是一秒送一次。

-I 網絡界面:使用指定的網絡界面送出數據包。

-l 前置載入:設置在送出要求信息之前,先行發出的數據包。

-p 範本樣式:設置填滿數據包的範本樣式。

-s 字節數:指定發送的數據字節數,預設值是 56,加上 8 字節的 ICMP 頭,一共是 64ICMP 數據字節。

-t 存活數值:設置存活數值 TTL 的大小。

4. 使用實例:

實例 1:ping 的通的情況

命令:

ping 192.168.120.205

輸出:

[root@localhost ~]# ping 192.168.120.205
PING 192.168.120.205 (192.168.120.205) 56(84) bytes of data.
64 bytes from 192.168.120.205: icmp_seq=ttl=64 time=0.720 ms
64 bytes from 192.168.120.205: icmp_seq=ttl=64 time=0.181 ms
64 bytes from 192.168.120.205: icmp_seq=ttl=64 time=0.191 ms
64 bytes from 192.168.120.205: icmp_seq=ttl=64 time=0.188 ms
64 bytes from 192.168.120.205: icmp_seq=ttl=64 time=0.189 ms

--- 192.168.120.205 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4000ms
rtt min/avg/max/mdev = 0.181/0.293/0.720/0.214 ms
  
[root@localhost ~]#

說明:

實例 2:ping 不通的情況

命令:

ping 192.168.120.202

輸出:

[root@localhost ~]# ping 192.168.120.202
PING 192.168.120.202 (192.168.120.202) 56(84) bytes of data.
From 192.168.120.204 icmp_seq=1 Destination Host Unreachable
From 192.168.120.204 icmp_seq=2 Destination Host Unreachable
From 192.168.120.204 icmp_seq=3 Destination Host Unreachable
From 192.168.120.204 icmp_seq=4 Destination Host Unreachable
From 192.168.120.204 icmp_seq=5 Destination Host Unreachable
From 192.168.120.204 icmp_seq=6 Destination Host Unreachable

--- 192.168.120.202 ping statistics ---
8 packets transmitted, 0 received, +6 errors, 100% packet loss, time 7005ms
, pipe 4
  
[root@localhost ~]#

說明:

實例 3:ping 網關

命令:

ping -b 192.168.120.1

輸出:

[root@localhost ~]# route
Kernel IP routing table
Destination   Gateway     Genmask     Flags Metric Ref  Use Iface
192.168.120.0  *        255.255.255.0  U   0   0    0 eth0
192.168.0.0   192.168.120.1  255.255.0.0   UG  0   0    0 eth0
10.0.0.0    192.168.120.1  255.0.0.0    UG  0   0    0 eth0
default     192.168.120.240 0.0.0.0     UG  0   0    0 eth0
  
[root@localhost ~]# ping -b 192.168.120.1
PING 192.168.120.1 (192.168.120.1) 56(84) bytes of data.
64 bytes from 192.168.120.1: icmp_seq=ttl=255 time=2.02 ms
64 bytes from 192.168.120.1: icmp_seq=ttl=255 time=1.83 ms
64 bytes from 192.168.120.1: icmp_seq=ttl=255 time=1.68 ms
64 bytes from 192.168.120.1: icmp_seq=ttl=255 time=1.98 ms
64 bytes from 192.168.120.1: icmp_seq=ttl=255 time=1.88 ms

--- 192.168.120.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4000ms
rtt min/avg/max/mdev = 1.682/1.880/2.020/0.129 ms

說明:

實例 4:ping 指定次數

命令:

ping -c 10 192.168.120.206

輸出:

[root@localhost ~]# ping -c 10 192.168.120.206
PING 192.168.120.206 (192.168.120.206) 56(84) bytes of data.
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=1.25 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.260 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.242 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.271 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.274 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.295 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.269 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.270 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.253 ms
64 bytes from 192.168.120.206: icmp_seq=10 ttl=64 time=0.289 ms

--- 192.168.120.206 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9000ms
rtt min/avg/max/mdev = 0.242/0.367/1.251/0.295 ms
[root@localhost ~]#

說明:

實例 5:時間間隔和次數限制的 ping

命令:

ping -c 10 -i 0.5 192.168.120.206

輸出:

[root@localhost ~]# ping -c 10 -i 0.5 192.168.120.206
PING 192.168.120.206 (192.168.120.206) 56(84) bytes of data.
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=1.24 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.235 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.244 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.300 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.255 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.264 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.263 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.331 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.247 ms
64 bytes from 192.168.120.206: icmp_seq=10 ttl=64 time=0.244 ms

--- 192.168.120.206 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 4499ms
rtt min/avg/max/mdev = 0.235/0.362/1.241/0.294 ms
[root@localhost ~]# ping -c 10 -i 0.01 192.168.120.206
PING 192.168.120.206 (192.168.120.206) 56(84) bytes of data.
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.244 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.195 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.219 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.204 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=3.56 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=1.93 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.193 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.193 ms
64 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.202 ms
64 bytes from 192.168.120.206: icmp_seq=10 ttl=64 time=0.211 ms

--- 192.168.120.206 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 90ms
rtt min/avg/max/mdev = 0.193/0.716/3.564/1.080 ms
[root@localhost ~]#

說明:

實例 6:通過域名 ping 公網上的站點

命令:

ping -c 5 www.58.com

輸出:

peida-VirtualBox ~ # ping -c 5 www.58.com
PING www.58.com (211.151.111.30) 56(84) bytes of data.
64 bytes from 211.151.111.30: icmp_req=ttl=49 time=14.7 ms
64 bytes from 211.151.111.30: icmp_req=ttl=49 time=16.4 ms
64 bytes from 211.151.111.30: icmp_req=ttl=49 time=15.2 ms
64 bytes from 211.151.111.30: icmp_req=ttl=49 time=14.6 ms
64 bytes from 211.151.111.30: icmp_req=ttl=49 time=19.9 ms

--- www.58.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 20101ms
rtt min/avg/max/mdev = 14.618/16.192/19.917/1.965 ms
peida-VirtualBox ~ #

說明:

實例 7:多參數使用

命令:

ping -i 3 -s 1024 -t 255 192.168.120.206

輸出:

[root@localhost ~]# ping -i 3 -s 1024 -t 255 192.168.120.206
PING 192.168.120.206 (192.168.120.206) 1024(1052) bytes of data.
1032 bytes from 192.168.120.206: icmp_seq=ttl=64 time=1.99 ms
1032 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.694 ms
1032 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.300 ms
1032 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.481 ms
1032 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.415 ms
1032 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.600 ms
1032 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.411 ms
1032 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.281 ms
1032 bytes from 192.168.120.206: icmp_seq=ttl=64 time=0.318 ms
1032 bytes from 192.168.120.206: icmp_seq=10 ttl=64 time=0.362 ms
1032 bytes from 192.168.120.206: icmp_seq=11 ttl=64 time=0.408 ms
1032 bytes from 192.168.120.206: icmp_seq=12 ttl=64 time=0.445 ms
1032 bytes from 192.168.120.206: icmp_seq=13 ttl=64 time=0.397 ms
1032 bytes from 192.168.120.206: icmp_seq=14 ttl=64 time=0.406 ms
1032 bytes from 192.168.120.206: icmp_seq=15 ttl=64 time=0.458 ms

--- 192.168.120.206 ping statistics ---
15 packets transmitted, 15 received, 0% packet loss, time 41999ms
rtt min/avg/max/mdev = 0.281/0.531/1.993/0.404 ms
[root@localhost ~]#

說明:

-i 3 發送週期爲 3 秒 -s 設置發送包的大小爲 1024 -t 設置 TTL 值爲 255

****推薦關注「算法愛好者」,修煉編程內功

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/IJjs4eaW-V6Qb-b8SZwaMg