【Linux常用命令速查手冊】關注【入門小站】,后台回復 「1001」 自取。
ping命令是用於排除故障,測試和診斷網絡連接問題的最常用的命令之一。
Ping通過將一個或多個ICMP(Internet控制消息協議)Echo請求包發送到指定目標IP並等待回復來工作。當目標IP收到包時,它將響應ICMP回復。
使用ping命令,我們可以確定遠程目標IP是處於活動狀態還是非活動狀態,找到與目標通信的往返延遲並檢查是否存在數據包丟失。
ping命令是iputils(或iputils-ping)程序包的一部分,該程序包已預先安裝在絕大多數Linux發行版上。ping命令也可用於Windows,MacOSX和FreeBSD。
命令格式
ping [參數] [主機名或IP地址]
命令功能
ping命令用於:確定網絡和各外部主機的狀態;跟蹤和隔離硬件和軟件問題;測試、評估和管理網絡。如果主機正在運行並連在網上,它就對回送信號進行響應。每個回送信號請求包含一個網際協議(IP)和 ICMP 頭,后面緊跟一個 tim 結構,以及來填寫這個信息包的足夠的字節。缺省情況是連續發送回送信號請求直到接收到中斷信號(Ctrl-C)。
ping 命令每秒發送一個數據報並且為每個接收到的響應打印一行輸出。ping 命令計算信號往返時間和(信息)包丟失情況的統計信息,並且在完成之后顯示一個簡要總結。ping 命令在程序超時或當接收到 SIGINT 信號時結束。Host 參數或者是一個有效的主機名或者是因特網地址。
命令參數
- -d 使用Socket的SO_DEBUG功能。
- -f 極限檢測。大量且快速地送網絡封包給一台機器,看它的回應。
- -n 只輸出數值。
- -q 不顯示任何傳送封包的信息,只顯示最后的結果。
- -r 忽略普通的Routing Table,直接將數據包送到遠端主機上。通常是查看本機的網絡接口是否有問題。
- -R 記錄路由過程。
- -v 詳細顯示指令的執行過程。
-
-c 數目:在發送指定數目的包后停止。
- -i 秒數:設定間隔幾秒送一個網絡封包給一台機器,預設值是一秒送一次。
- -I 網絡界面:使用指定的網絡界面送出數據包。
- -l 前置載入:設置在送出要求信息之前,先行發出的數據包。
- -p 范本樣式:設置填滿數據包的范本樣式。
- -s 字節數:指定發送的數據字節數,預設值是56,加上8字節的ICMP頭,一共是64ICMP數據字節。
- -t 存活數值:設置存活數值TTL的大小。
ping的通的情況
> ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=106 time=255.389 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=106 time=253.781 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=106 time=258.403 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=106 time=255.721 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=106 time=255.086 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=106 time=255.165 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=106 time=253.948 ms
...
ping不通的情況
> ping 8.8.9.9
PING 8.8.9.9 (8.8.9.9): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
Request timeout for icmp_seq 4
Request timeout for icmp_seq 5
Request timeout for icmp_seq 6
...
ping指定次數
> ping -c 10 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=106 time=256.369 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=106 time=255.471 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=106 time=255.381 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=106 time=255.038 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=106 time=260.055 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=106 time=255.733 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=106 time=254.986 ms
64 bytes from 8.8.8.8: icmp_seq=7 ttl=106 time=254.084 ms
64 bytes from 8.8.8.8: icmp_seq=8 ttl=106 time=255.902 ms
64 bytes from 8.8.8.8: icmp_seq=9 ttl=106 time=256.121 ms
--- 8.8.8.8 ping statistics ---
10 packets transmitted, 10 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 254.084/255.914/260.055/1.513 ms
時間間隔和次數限制的ping
> ping -c 10 -i 0.5 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=106 time=255.032 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=106 time=256.937 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=106 time=255.129 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=106 time=256.560 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=106 time=264.229 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=106 time=254.791 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=106 time=254.212 ms
64 bytes from 8.8.8.8: icmp_seq=7 ttl=106 time=254.998 ms
64 bytes from 8.8.8.8: icmp_seq=8 ttl=106 time=255.029 ms
64 bytes from 8.8.8.8: icmp_seq=9 ttl=106 time=255.559 ms
--- 8.8.8.8 ping statistics ---
10 packets transmitted, 10 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 254.212/256.248/264.229/2.771 ms
通過域名ping域名
> ping -c 5 json.im
PING json.im (150.109.147.28): 56 data bytes
64 bytes from 150.109.147.28: icmp_seq=0 ttl=48 time=28.733 ms
64 bytes from 150.109.147.28: icmp_seq=1 ttl=48 time=28.412 ms
64 bytes from 150.109.147.28: icmp_seq=2 ttl=48 time=28.012 ms
64 bytes from 150.109.147.28: icmp_seq=3 ttl=48 time=31.498 ms
64 bytes from 150.109.147.28: icmp_seq=4 ttl=48 time=30.518 ms
--- json.im ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 28.012/29.435/31.498/1.341 ms
多參數使用
> ping -i 1 -s 1024 -t 123 json.im
PING json.im (150.109.147.28): 1024 data bytes
1032 bytes from 150.109.147.28: icmp_seq=0 ttl=48 time=29.613 ms
1032 bytes from 150.109.147.28: icmp_seq=1 ttl=48 time=28.530 ms
1032 bytes from 150.109.147.28: icmp_seq=2 ttl=48 time=32.768 ms
1032 bytes from 150.109.147.28: icmp_seq=3 ttl=48 time=29.014 ms
1032 bytes from 150.109.147.28: icmp_seq=4 ttl=48 time=30.239 ms
1032 bytes from 150.109.147.28: icmp_seq=5 ttl=48 time=27.815 ms
1032 bytes from 150.109.147.28: icmp_seq=6 ttl=48 time=31.311 ms
1032 bytes from 150.109.147.28: icmp_seq=7 ttl=48 time=34.554 ms
1032 bytes from 150.109.147.28: icmp_seq=8 ttl=48 time=41.600 ms
1032 bytes from 150.109.147.28: icmp_seq=9 ttl=48 time=29.513 ms
1032 bytes from 150.109.147.28: icmp_seq=10 ttl=48 time=28.320 ms
1032 bytes from 150.109.147.28: icmp_seq=11 ttl=48 time=29.449 ms
1032 bytes from 150.109.147.28: icmp_seq=12 ttl=48 time=29.127 ms
1032 bytes from 150.109.147.28: icmp_seq=13 ttl=48 time=28.583 ms
1032 bytes from 150.109.147.28: icmp_seq=14 ttl=48 time=28.064 ms
-i 3 發送周期為 3秒 -s 設置發送包的大小為1024 -t 設置TTL值為 255
指定源接口(網卡)
默認情況下,ping將通過默認路由發送ICMP包。如果您的計算機上有多個接口,則可以使用以下-I選項指定源接口:
> ping -I eth0 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 192.168.0.3 eth0: 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=2 ttl=109 time=201 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=109 time=201 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=109 time=200 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=109 time=201 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=109 time=201 ms
64 bytes from 8.8.8.8: icmp_seq=7 ttl=109 time=201 ms
64 bytes from 8.8.8.8: icmp_seq=9 ttl=109 time=201 ms
64 bytes from 8.8.8.8: icmp_seq=10 ttl=109 time=201 ms
...
下面的命令將執行ping 8.8.8.8使用eth0作為源接口
指定Internet協議
運行ping命令時,它將使用IPv4或IPv6,具體取決於您的計算機DNS設置。
ping -4 DESTINATION
ping -6 DESTINATION
強制ping使用IPv4傳遞-4選項或使用其別名ping4。對於IPv6傳遞-6選項或使用ping6。
> ping -4 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=2 ttl=109 time=200 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=109 time=201 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=109 time=200 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=109 time=200 ms
64 bytes from 8.8.8.8: icmp_seq=8 ttl=109 time=201 ms
64 bytes from 8.8.8.8: icmp_seq=13 ttl=109 time=200 ms
64 bytes from 8.8.8.8: icmp_seq=16 ttl=109 time=201 ms
64 bytes from 8.8.8.8: icmp_seq=17 ttl=109 time=200 ms
64 bytes from 8.8.8.8: icmp_seq=19 ttl=109 time=200 ms
64 bytes from 8.8.8.8: icmp_seq=21 ttl=109 time=201 ms
...
原文鏈接:https://rumenz.com/rumenbiji/linux-ping.html
微信公眾號:入門小站
【Linux常用命令速查手冊】關注【入門小站】,后台回復 「1001」 自取。