使用 Linux 的 ping 命令診斷網絡連接問題
如今,聯網計算機變得十分普遍,以至于我們大多數人都理所當然地認為,房間一側的計算機可以連接上房間另一側的計算機,更不用說能連接上世界的另一端的計算機了。如此,網絡使互聯網、云、文件共享、媒體流、遠程管理、打印等服務成為可能。但是當網絡出現問題時,有時很難診斷到底是其中哪一環節出現了問題。下面,我們就來介紹:網絡連接最基本的診斷工具之一—— ??ping?
? 命令。
基本的 ping 命令
當你無法訪問本地網絡上的計算機或互聯網上的服務器時,你可以 ??ping?
? 它的 IP 地址。??ping?
? 將 互聯網控制報文協議Internet Control Message Protocol(ICMP)數據包發送到目標 IP 地址。當我們要對網路連接狀況進行判斷時,ICMP 是個非常有用的協議,本質上 ICMP 是一個響應和應答信號。
讓我們由近及遠地進行故障排除。請先 ??ping?
? 你自己的計算機,以確保你的計算機正在運行 網絡棧networking stack。你正在操作的計算機稱為 主機localhost,本地回環地址是:??127.0.0.1?
?。
??ping?
? 命令能用主機的 主機名 hostname、IP 地址(即 ??127.0.0.1?
?)或者僅僅用簡寫 ??0?
? 來表示 “主機”。
你可以使用 ??-c?
? 選項,來控制發送數據包的 次數count。
在你確認本地網絡棧已啟動并運行后,接下來,你可以 ??ping?
? 你的路由器的 IP 地址。路由器的 IP 地址通常以 ??192.168?
? 或 ??10?
? 開頭。實際的 IP 地址取決于路由器的配置。
當你沒有指定要發送多少次請求時,你可以用 ??Ctrl+C?
?,來終止 ??ping?
? 的運行。
如果你能 ??ping?
? 通路由器,則表示你的有線或無線連接能正常工作。
對于你的局域網上的其他主機呢?你可以 ??ping?
? 各種設備,但是并非所有設備都能保證響應,因為一些設備會丟棄 ICMP 數據包,但許多設備會做出響應。例如,我可以 ??ping?
? 我的打印機:
ping 路由器以外的其他服務器
在確定你自己的網絡內部都能連通以后,你還可以 ??ping?
? 通到路由器以外的其他服務器。同樣地,并非所有服務器都能接收 ICMP 數據包,更不用說響應 ICMP 數據包了。然而,也有一些服務器可以接收并響應 ICMP 數據包,而在互聯網中的一個重要服務器是 域名服務器nameserver。
谷歌的 域名解析服務器DNS server的 IP 地址很容易記住,而且它會響應 ??ping?
? 請求:
當你連不上一個網站時,你可以查詢全球 DNS 網絡,以找出其主機服務器的地址,然后 ??ping?
? 該服務器。這至少可以告訴你,網站不通的原因是主機已關閉,或者只是 Web 服務器問題。
例如,假設你嘗試訪問 ??example.com?
?,但是發現失敗了。首先,使用 ??host?
? 命令找到 ??example.com?
? 的 IP 地址:
然后,??ping?
? 該網站的的 IP 地址:
使用 IPv6
??ping?
? 不僅可以使用 IPv4,還能使用 IPv6。可以通過指定 ??-4?
? 或 ??-6?
? 選項,來只使用 IPv4 或 IPv6。
設置數據包大小
你可以使用 ??-s?
? 選項,來更改要發送的 ICMP 數據包的 大小size。默認的數據大小為 56 字節,加上 8 字節包頭,總共得到 64 字節的 ICMP 數據包。以下的示例將發送的 ICMP 數據包大小修改為 35+8=43 個字節:
你可以使用 ??-D?
? 選項,使得在終端中的每個 ??ping?
? 回復之前,先打印出當前的時間戳。該時間戳為 UNIX 時間戳,加上微秒:
設置時間間隔/長短
你可以使用 ??-i?
? 選項,來更改兩次 ??ping?
? 請求之間的 時間間隔interval。以下的示例將 ??ping?
? 間隔更改為 2 秒:
你也可以使用 ??-w?
? 選項,來在一段時間后終止 ??ping?
?,單位為秒。
ping 的變體
??ping?
? 有很多變體。例如,??iputils?
? 包提供了 ??ping?
? 命令;??Busybox?? 也有??ping?
? 命令;BSD 也有;甚至還有一個圖形界面的 ??ping?
?:??gping?
?,它可用于 Linux、macOS 和 Windows。你可以在 ??GitHub?? 上找到更多有關 ??gping?
? 的信息。
一起來學習吧
??ping?
? 命令很簡單,但它可以幫你診斷網絡連接問題。下次再遇到網絡連接問題時,讓 ??ping?
? 命令成為你解決問題的第一個工具吧。