Linux之ping命令

ping命令是用於排除故障,測試和診斷網絡鏈接問題的最經常使用的命令之一。html

Ping經過將一個或多個ICMP(Internet控制消息協議)Echo請求包發送到指定目標IP並等待回覆來工做。當目標IP收到包時,它將響應ICMP回覆。linux

使用ping命令,咱們能夠肯定遠程目標IP是處於活動狀態仍是非活動狀態,找到與目標通訊的往返延遲並檢查是否存在數據包丟失。json

ping命令是iputils(或iputils-ping)程序包的一部分,該程序包已預先安裝在絕大多數Linux發行版上。ping命令也可用於Windows,MacOSX和FreeBSD。微信

命令格式

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

命令功能

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

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

命令參數

  • -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值爲 255spa

指定源接口(網卡)

默認狀況下,ping將經過默認路由發送ICMP包。若是您的計算機上有多個接口,則可使用如下-I選項指定源接口:code

> 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
...
複製代碼

原文連接:rumenz.com/rumenbiji/l… 微信公衆號:入門小站

相關文章
相關標籤/搜索