初學(xué)者入門:Ping–Unix/Linux命令
譯文【51CTO.com快譯】“ping” 命令用于排除和診斷網(wǎng)絡(luò)連接問題,并檢查主機(jī)是否可訪問,它適用于所有操作系統(tǒng)。
“ping”命令的工作原理
Ping 數(shù)據(jù)包工作原理圖
Ping 命令從“主機(jī) A”(源)向“主機(jī) B”(目標(biāo))發(fā)送一個(gè) 32 字節(jié)的 ICMP(互聯(lián)網(wǎng)控制消息協(xié)議)數(shù)據(jù)包,并等待“主機(jī) B”向“主機(jī) A”響應(yīng)一個(gè) 32 字節(jié)的數(shù)據(jù)包”。如果連接成功,則打印整個(gè)往返時(shí)間,如果不成功,則打印失敗原因,諸如丟包、超時(shí)、連接錯(cuò)誤等。
如何執(zhí)行“ping”命令?
以下是調(diào)用“ping”命令的方法:
- ping [IP/domain]
例子:
- ping gceasy.com
執(zhí)行上述命令后,控制臺(tái)會(huì)打印以下消息:
- 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
• 時(shí)間:這是往返時(shí)間。它是數(shù)據(jù)包從源地址到達(dá)目的地并報(bào)告回源地址所花費(fèi)的時(shí)間
• TTL(生存時(shí)間):是時(shí)間或“跳數(shù)”的量,它可以從 0 到 255 不等,具體取決于主機(jī)操作系統(tǒng)。當(dāng)數(shù)據(jù)包通過互聯(lián)網(wǎng)發(fā)送時(shí),數(shù)據(jù)包有可能從路由器通過,并且數(shù)據(jù)包將被發(fā)送,直到用戶中斷此命令。數(shù)據(jù)包設(shè)計(jì)了一個(gè)稱為生存時(shí)間的過期時(shí)間。
• Ping statistics:
Packets Sent(發(fā)送的數(shù)據(jù)包): 數(shù)據(jù)包從主機(jī)發(fā)送到目的地的次數(shù)。
Packets Received(收到的數(shù)據(jù)包) : 從目的地到主機(jī)收到的數(shù)據(jù)包的次數(shù)。
Packets Lost(數(shù)據(jù)包丟失) : 無法到達(dá)目的地的數(shù)據(jù)包數(shù)。
• 大約往返時(shí)間:
最小值:以毫秒為單位獲得響應(yīng)的最短時(shí)間
平均:以毫秒為單位獲得響應(yīng)的平均時(shí)間
最大:以毫秒為單位獲得響應(yīng)的最長(zhǎng)時(shí)間
Ping 的默認(rèn) TTL(生存時(shí)間) 是多少?
Ping 命令的 TTL值因操作系統(tǒng)而異。下表總結(jié)了ping命令對(duì)于常用操作系統(tǒng)的默認(rèn)TTL
Ping 錯(cuò)誤:
• 請(qǐng)求超時(shí):如果由于網(wǎng)絡(luò)流量過大,主機(jī)沒有響應(yīng),或者 ARP 請(qǐng)求包過濾失敗,或者如果路由器出現(xiàn)錯(cuò)誤,則 ping 請(qǐng)求將超時(shí)。
例子:
- 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 開關(guān)增加等待時(shí)間。
• Ping 請(qǐng)求無法找到主機(jī):當(dāng)無法根據(jù)傳遞給 ping 命令的主機(jī)名確定 IP 地址時(shí),將遇到此錯(cuò)誤。
例子:
- ping test123blah.com
- Ping request could not find host test123blah.com. Please check the name and try again.
解決方案:驗(yàn)證傳遞給 ping 命令的主機(jī)名。驗(yàn)證 DNS 服務(wù)器是否可用/可從主機(jī)訪問。
• 目標(biāo)主機(jī)無法訪問:當(dāng)訪問的主機(jī)停機(jī)或在網(wǎng)絡(luò)上不可用時(shí),將返回“目標(biāo)主機(jī)無法訪問”錯(cuò)誤。
例子:
- 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)
解決方案:驗(yàn)證目標(biāo)主機(jī)是否已啟動(dòng)并正在運(yùn)行。修改本地路由表或通知路由器管理員。
• TTL 在傳輸過程中過期: 當(dāng)將數(shù)據(jù)包路由到目的地時(shí)出現(xiàn)重循環(huán)時(shí),TTL 將過期。這將導(dǎo)致“TTL在傳輸中過期”錯(cuò)誤。
解決方案: 確定重復(fù)并導(dǎo)致循環(huán)的 IP 地址。在 Linux 問題上,以 root 用戶身份使用“route -n”命令查看當(dāng)前路由表,在 Windows 問題上,命令輸出“route print”。
• Ping命令:傳輸失敗。
一般故障:當(dāng)設(shè)備網(wǎng)卡或無線適配器存在物理問題時(shí),將導(dǎo)致“Ping:transmit failed. ”(Ping:傳輸失?。?ldquo;一般失敗'錯(cuò)誤。
例子:
- 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)
解決方案:確保網(wǎng)卡沒有問題。確保設(shè)備上安裝了最新版本的網(wǎng)絡(luò)驅(qū)動(dòng)程序,檢查是否為設(shè)備分配了正確的 IP 地址。
常用的 Ping 命令
可以在使用 'ping' 命令的同時(shí)使用其它選項(xiàng)來獲取要查找的信息。
發(fā)送更多請(qǐng)求,請(qǐng)執(zhí)行以下操作:
如果要發(fā)送 '5' 回顯請(qǐng)求,則可以發(fā)出以下命令:
- ping -n 5 gceasy.com
執(zhí)行上述命令后,控制臺(tái)會(huì)打印以下消息:
- 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指定主機(jī)直到停止,請(qǐng)執(zhí)行以下操作:
如果想向指定的主機(jī)發(fā)送請(qǐng)求,直到手動(dòng)停止為止,則可以發(fā)出以下命令:
- ping -t gceasy.com
Ping 工具
性能根本原因分析工具(如yCrash)捕獲應(yīng)用程序級(jí)工件(如線程轉(zhuǎn)儲(chǔ)、堆轉(zhuǎn)儲(chǔ)、垃圾收集日志)和系統(tǒng)級(jí)工件(如 netstat、vmstat、iostat、top、top -H、dmesg 等)。除此之外,該工具還捕獲 ping 命令輸出。工具分析所有工件,并立即生成統(tǒng)一的根本原因分析報(bào)告。如果該工具在 ping 命令輸出中發(fā)現(xiàn)任何錯(cuò)誤,它將在報(bào)告中發(fā)出警報(bào)。
圖: yCrash工具中捕獲并報(bào)告的 ping 輸出
'ping' 命令選項(xiàng)
如果想了解傳遞給“ping”命令的所有選項(xiàng),請(qǐng)參閱此處。
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】