初學者入門:Ping–Unix/Linux命令
譯文【51CTO.com快譯】“ping” 命令用于排除和診斷網絡連接問題,并檢查主機是否可訪問,它適用于所有操作系統。
“ping”命令的工作原理
Ping 數據包工作原理圖
Ping 命令從“主機 A”(源)向“主機 B”(目標)發送一個 32 字節的 ICMP(互聯網控制消息協議)數據包,并等待“主機 B”向“主機 A”響應一個 32 字節的數據包”。如果連接成功,則打印整個往返時間,如果不成功,則打印失敗原因,諸如丟包、超時、連接錯誤等。
如何執行“ping”命令?
以下是調用“ping”命令的方法:
- ping [IP/domain]
例子:
- ping gceasy.com
執行上述命令后,控制臺會打印以下消息:
- Pinging gceasy.com [195.201.17.137] with 32 bytes of data:
- Reply from 195.201.17.137: bytes=32 time=217ms TTL=45
- Reply from 195.201.17.137: bytes=32 time=185ms TTL=45
- Reply from 195.201.17.137: bytes=32 time=188ms TTL=45
- Reply from 195.201.17.137: bytes=32 time=196ms TTL=45
- Ping statistics for 195.201.17.137:
- Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
- Approximate round trip times in milli-seconds:
- Minimum = 185ms, Maximum = 217ms, Average = 196ms
• 時間:這是往返時間。它是數據包從源地址到達目的地并報告回源地址所花費的時間
• TTL(生存時間):是時間或“跳數”的量,它可以從 0 到 255 不等,具體取決于主機操作系統。當數據包通過互聯網發送時,數據包有可能從路由器通過,并且數據包將被發送,直到用戶中斷此命令。數據包設計了一個稱為生存時間的過期時間。
• Ping statistics:
Packets Sent(發送的數據包): 數據包從主機發送到目的地的次數。
Packets Received(收到的數據包) : 從目的地到主機收到的數據包的次數。
Packets Lost(數據包丟失) : 無法到達目的地的數據包數。
• 大約往返時間:
最小值:以毫秒為單位獲得響應的最短時間
平均:以毫秒為單位獲得響應的平均時間
最大:以毫秒為單位獲得響應的最長時間
Ping 的默認 TTL(生存時間) 是多少?
Ping 命令的 TTL值因操作系統而異。下表總結了ping命令對于常用操作系統的默認TTL
Ping 錯誤:
• 請求超時:如果由于網絡流量過大,主機沒有響應,或者 ARP 請求包過濾失敗,或者如果路由器出現錯誤,則 ping 請求將超時。
例子:
- ping gceasy.io
- Pinging gceasy.io [52.52.12.54] with 32 bytes of data:
- Request timed out.
- Request timed out.
- Request timed out.
- Request timed out.
- Ping statistics for 52.52.12.54:
- Packets: Sent = 4, Received = 0, Lost = 4 (100% loss)
解決方案:使用 ping -w 開關增加等待時間。
• Ping 請求無法找到主機:當無法根據傳遞給 ping 命令的主機名確定 IP 地址時,將遇到此錯誤。
例子:
- ping test123blah.com
- Ping request could not find host test123blah.com. Please check the name and try again.
解決方案:驗證傳遞給 ping 命令的主機名。驗證 DNS 服務器是否可用/可從主機訪問。
• 目標主機無法訪問:當訪問的主機停機或在網絡上不可用時,將返回“目標主機無法訪問”錯誤。
例子:
- ping 192.168.0.0
- Pinging 192.168.0.0 with 32 bytes of data:
- Reply from 192.168.0.102: Destination host unreachable.
- Reply from 192.168.0.102: Destination host unreachable.
- Reply from 192.168.0.102: Destination host unreachable.
- Reply from 192.168.0.102: Destination host unreachable.
- Ping statistics for 192.168.0.0:
- Packets: Sent = 4, Received = 4, Lost = 0 (0% loss)
解決方案:驗證目標主機是否已啟動并正在運行。修改本地路由表或通知路由器管理員。
• TTL 在傳輸過程中過期: 當將數據包路由到目的地時出現重循環時,TTL 將過期。這將導致“TTL在傳輸中過期”錯誤。
解決方案: 確定重復并導致循環的 IP 地址。在 Linux 問題上,以 root 用戶身份使用“route -n”命令查看當前路由表,在 Windows 問題上,命令輸出“route print”。
• Ping命令:傳輸失敗。
一般故障:當設備網卡或無線適配器存在物理問題時,將導致“Ping:transmit failed. ”(Ping:傳輸失敗)、“一般失敗'錯誤。
例子:
- ping 2DAB:FFFF:0000:3EAE:01AA:00FF:DD72:2C4A
- Pinging 2dab:ffff:0:3eae:1aa:ff:dd72:2c4a with 32 bytes of data:
- PING: transmit failed. General failure.
- PING: transmit failed. General failure.
- PING: transmit failed. General failure.
- PING: transmit failed. General failure.
- Ping statistics for 2dab:ffff:0:3eae:1aa:ff:dd72:2c4a:
- Packets: Sent = 4, Received = 0, Lost = 4 (100% loss)
解決方案:確保網卡沒有問題。確保設備上安裝了最新版本的網絡驅動程序,檢查是否為設備分配了正確的 IP 地址。
常用的 Ping 命令
可以在使用 'ping' 命令的同時使用其它選項來獲取要查找的信息。
發送更多請求,請執行以下操作:
如果要發送 '5' 回顯請求,則可以發出以下命令:
- ping -n 5 gceasy.com
執行上述命令后,控制臺會打印以下消息:
- Pinging gceasy.com [195.201.17.137] with 32 bytes of data:
- Reply from 195.201.17.137: bytes=32 time=168ms TTL=45
- Reply from 195.201.17.137: bytes=32 time=165ms TTL=45
- Reply from 195.201.17.137: bytes=32 time=170ms TTL=45
- Reply from 195.201.17.137: bytes=32 time=170ms TTL=45
- Reply from 195.201.17.137: bytes=32 time=183ms TTL=45
- Ping statistics for 195.201.17.137:
- Packets: Sent = 5, Received = 5, Lost = 0 (0% loss),
- Approximate round trip times in milli-seconds:
- Minimum = 165ms, Maximum = 183ms, Average = 171ms
要Ping指定主機直到停止,請執行以下操作:
如果想向指定的主機發送請求,直到手動停止為止,則可以發出以下命令:
- ping -t gceasy.com
Ping 工具
性能根本原因分析工具(如yCrash)捕獲應用程序級工件(如線程轉儲、堆轉儲、垃圾收集日志)和系統級工件(如 netstat、vmstat、iostat、top、top -H、dmesg 等)。除此之外,該工具還捕獲 ping 命令輸出。工具分析所有工件,并立即生成統一的根本原因分析報告。如果該工具在 ping 命令輸出中發現任何錯誤,它將在報告中發出警報。
圖: yCrash工具中捕獲并報告的 ping 輸出
'ping' 命令選項
如果想了解傳遞給“ping”命令的所有選項,請參閱此處。
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】