如何測試丟包率?Ping 丟包檢測與網路故障排查方法

如何測試丟包率?本文介紹使用 Ping 指令和 Chahu 多節點檢測網路丟包的方法,並結合延遲、電信業者和不同地區測試結果,分析丟包率多少算異常,以及發現丟包後如何判斷問題出在本地網路、電信業者線路還是伺服器端。

Chahu 團隊2026-09-145 分鐘閱讀

網頁偶爾打不開、遊戲突然卡頓、遠端連線時斷時續,或者伺服器明明能存取,卻總感覺網路不夠穩定,這些問題背後都可能與丟包有關。

判斷是不是網路丟包,不能只看一次 Ping 有沒有逾時,更重要的是連續測試一段時間,再結合不同地區、不同電信業者的結果判斷問題範圍。本文就從實際排查出發,講清楚如何測試丟包率、丟包多少算異常,以及發現丟包以後應該從哪裡繼續排查。

ScreenShot_2026-09-14_164524_824.png

一、什麼是丟包率?

網路通訊過程中,資料會被拆分成一個個封包,透過路由器、電信業者網路以及網際網路骨幹線路傳送到目標伺服器。正常情況下,發送出去的封包應該能夠到達目標,並收到回應結果。如果其中一部分封包在傳輸過程中沒有成功到達,或者回應逾時,就會形成丟包。

丟包率通常可以這樣計算:

丟包率 = 遺失的封包數量 ÷ 發送的封包總數 × 100%

例如連續發送 100 個封包:

  • 成功收到 97 個;

  • 遺失 3 個;

  • 那麼丟包率就是 3%。

少量偶發丟包不一定馬上造成明顯故障,但如果丟包持續出現,網頁資源載入、API 請求、視訊通話、遊戲連線以及遠端桌面等業務都可能受到影響。尤其是遊戲、語音、WebSocket、即時交易介面這類對連續連線要求較高的業務,即使平均延遲不高,持續丟包同樣可能產生明顯卡頓。

二、如何測試丟包率?

實際排查網路丟包,最簡單的方法就是 Ping。

不過,測試時不要只 Ping 幾次。發送的封包太少,很難判斷究竟是偶發逾時,還是網路真的存在持續性丟包。

1. 使用 Windows Ping 指令測試

Windows 使用者可以開啟 CMD,然後輸入:

ping example.com -n 100

其中 example.com 替換成需要測試的網域或者伺服器 IP。

-n 100 表示連續發送 100 個 Ping 封包。

測試結束後,Windows 會給出類似下面的統計:

封包: 已傳送 = 100,已接收 = 97,遺失 = 3
(3% 遺失)

這裡的 3% 遺失,就是本次測試得到的丟包率。

如果直接使用:

ping example.com

Windows 預設測試次數比較少,只適合簡單判斷目標能不能 Ping 通,並不適合用來判斷網路是否長期存在丟包。

2. Linux 和 macOS 怎麼測試?

Linux 或 macOS 可以使用:

ping -c 100 example.com

同樣連續發送 100 個封包。

測試結束以後,會看到類似:

100 packets transmitted, 97 received, 3% packet loss

其中:

3% packet loss

就表示本次檢測的丟包率為 3%。

如果懷疑網路問題具有偶發性,還可以適當增加測試次數或者延長觀察時間。

例如有些線路白天很正常,但每天晚上網路高峰期開始出現丟包,只測試十幾秒通常很難發現問題。

3. 使用 Chahu 測試不同地區的丟包情況

本地 Ping 有一個明顯限制:它只能反映當前這台電腦到目標伺服器之間的網路情況。

例如你在廣州使用電信寬頻測試伺服器,結果顯示:

丟包率:0%

這只能說明當前廣州電信到目標伺服器的這條路徑沒有發現明顯丟包,並不能證明北京聯通、上海移動或者其他地區存取同樣正常。

如果網站面對全國使用者,可以使用 Chahu 線上 Ping

輸入網域或者伺服器 IP 後即可進行檢測。Chahu 的 Ping 頁面目前可以按照中國電信、中國聯通、中國移動以及港澳台、海外等範圍進行測試,並查看不同檢測節點的回應時間和網路品質。

這種測試方式最大的作用不是替代本地 Ping,而是幫助判斷:

丟包究竟只發生在自己這裡,還是其他地區也存在相同問題,像:自己 Ping 丟包,其他地區基本正常;電信正常,但部分聯通節點持續異常;國內節點正常,海外節點出現明顯異常;多個地區、多個電信業者同時出現丟包。這幾種情況背後的排查方向完全不同。

ScreenShot_2026-09-14_164606_648.png

三、丟包率多少算正常?

理想狀態當然是:丟包率 0%。

但真實網路環境中,偶爾一次逾時並不一定意味著線路存在嚴重故障。判斷丟包是否異常,需要結合持續時間、發生頻率以及業務類型來看。

實際排障時,可以先按照下面的範圍進行參考:

丟包率

網路情況

排查建議

0%

理想狀態

通常無需處理

低於 1%

可能存在輕微波動

延長時間繼續觀察

1%~3%

已出現一定異常

建議進一步確認丟包位置

3%~5%

網路品質較差

網頁、遊戲、語音等業務可能受到影響

高於 5%

丟包比較嚴重

建議盡快排查線路或伺服器

四、為什麼網站正常打開,Ping 卻顯示丟包?

測試過程中還有一種很容易誤判的情況:網站明明可以正常存取,但 Ping 一直逾時,甚至顯示 100% 丟包。這並不一定說明網站網路已經完全中斷。

1. 伺服器可能限制了 ICMP

Ping 通常使用 ICMP 協定進行檢測。

出於安全策略或者伺服器配置原因,有些伺服器、防火牆、雲端平台會直接禁止或者限制 ICMP 請求。

這種情況下:Ping:100% 丟包

但瀏覽器透過 HTTP/HTTPS 存取網站仍然可能完全正常。

因此,不能把「Ping 不通」和「網站打不開」直接畫上等號。

2. 網路設備可能降低 Ping 回應優先級

部分路由器或者網路設備在流量較高時,會優先處理正常業務資料,而降低 ICMP 回應優先級。

因此,你可能看到:

Request timed out

但真實業務流量並沒有發生同樣程度的丟包。

特別是在後續進行路由追蹤時,如果只是中間某一跳出現 Ping 丟包,而後面的節點仍然能夠正常回應,就不能直接認定故障發生在這一跳。

3. 測試次數太少

另外一個常見問題就是測試樣本太少。

如果只發 4 個封包,其中有 1 個沒有回應,那麼統計結果會直接顯示:

25% 丟包

看起來非常嚴重。

但如果繼續測試 100 次,最終只有這一次偶發逾時:

1% 丟包

兩種結果給人的判斷完全不同。

因此,排查丟包最好連續測試幾十次甚至上百次,而不是看到一次 Ping 逾時就馬上判斷線路有問題。

五、發現丟包後,怎麼判斷問題發生在哪裡?

真正重要的並不是測出「有 3% 丟包」,而是繼續找出:這 3% 的丟包究竟發生在哪裡。可以從離自己最近的網路開始,一層一層向外排查。

1. 先測試本地閘道

首先 Ping 當前路由器或者預設閘道。

如常見區域網路位址可能是:

192.168.1.1

如果連本地閘道都出現持續丟包,那麼暫時沒有必要先懷疑伺服器。

問題更可能出現在:Wi-Fi 訊號;網路線;網路卡;路由器;交換器;本地區域網路。

如無線網路訊號很弱、干擾嚴重時,就可能在資料離開家庭或辦公室之前已經發生丟包。

2. 本地正常,再測試公網位址

如果本地閘道:0% 丟包

但從公網位址開始出現明顯丟包,就可以繼續檢查本地寬頻出口或者電信業者線路。

這時候可以同時測試幾個穩定公網位址進行比對。

如果多個公網目標都存在相似問題,而本地閘道完全正常,排查重點就應該從區域網路轉向電信業者網路。

3. 只有某個網站或者伺服器丟包

還有一種常見情況:其他網站都正常,只有某台伺服器出現明顯丟包。

例如:

伺服器 A:0%
伺服器 B:0%
目標伺服器:8%

這種情況下,就沒有必要把整個本地網路重新排查一遍。

更值得檢查的是:

  • 目標伺服器網路;

  • 所在機房;

  • 上游線路;

  • 防火牆策略;

  • 伺服器負載;

  • 到目標伺服器之間的特定路由。

如果目標伺服器限制 ICMP,還要結合實際 HTTP、TCP 連線結果繼續判斷,而不能只依賴 Ping。

4. 只有部分地區或者電信業者丟包

對於網站伺服器來說,這種情況尤其常見。

例如:

北京電信:正常
上海電信:正常
廣州電信:正常

北京聯通:丟包
天津聯通:丟包
河北聯通:丟包

移動節點:基本正常

這時候問題就不太像伺服器整體故障,而更值得關注聯通方向的線路或者網路互聯情況。

這也是多節點 Ping 的價值所在。

使用 Chahu 這類多節點檢測工具,可以把不同地區和電信業者的結果放在一起觀察,而不是只根據站長自己所在地區的一次測試判斷整個網站網路狀況。Chahu 目前的線上 Ping 頁面提供全國多節點延遲分布,並區分電信、聯通、移動以及不同區域的檢測結果。

六、測試丟包率時,為什麼還要看延遲?

丟包率和延遲最好不要分開看。

例如有三組測試結果:

線路 A:

平均延遲:35ms
丟包率:0%

這種網路通常比較穩定。

線路 B:

平均延遲:38ms
丟包率:8%

雖然平均延遲只有 38ms,看起來速度不慢,但 8% 的丟包已經會嚴重影響網路穩定性。

這就是為什麼單純看到「Ping 只有 38ms」還不夠。

再看另外一種情況:

線路 C:

平均延遲:180ms
丟包率:0%

沒有丟包,但延遲明顯偏高。

這時候問題可能並不是線路不穩定,而是伺服器距離較遠、跨境傳輸、網路路徑較長或者存在路由繞行。

所以實際測試時,至少應該同時觀察:

  • 是否出現丟包;

  • 平均延遲;

  • 最大延遲;

  • 延遲波動;

  • 不同地區測試差異。

如果平均延遲看起來正常,但結果一會兒 20ms、一會兒突然跳到 300ms,同時還夾雜逾時,也說明網路品質並不穩定。

七、偵測到丟包以後的正確排查順序

如果已經確認網路存在持續丟包,可以按照從近到遠的方式逐步縮小範圍。

第一步:測試本地閘道

先確認區域網路內部有沒有丟包。

如果這裡已經異常,就優先檢查 Wi-Fi、路由器、網路線或者交換器。

第二步:測試公網位址

本地網路正常後,再測試幾個不同的公網位址。

如果多個公網位址同時丟包,更值得懷疑寬頻出口或者電信業者網路。

第三步:測試目標網域或者伺服器IP

如果只有特定目標存在問題,再把排查範圍縮小到伺服器、機房和目標線路。

第四步:進行多地Ping測試

如果自己所在地區發現異常,可以繼續透過 Chahu 從不同地區和電信業者進行測試。

如果只有自己異常,問題更可能靠近本地網路。

如果某個電信業者普遍異常,則需要進一步檢查對應線路。

如果全國多個地區同時異常,則伺服器、機房或者上游網路的排查優先順序應該提高。

第五步:繼續檢查路由路徑

確認持續丟包後,還可以進一步使用 Traceroute、MTR 等方式檢查網路經過哪些路由節點。

這裡重點不是看到「某一跳丟包」就馬上認定故障,而是觀察丟包是否從某個位置開始,並持續影響後面的節點。

如果某個中間節點:

丟包50%

但後面的節點全部:

丟包0%

那麼這個中間節點很可能只是限制 ICMP 回應,並不能證明真實業務流量在這裡丟失了一半。

測試丟包並不難,一個 Ping 指令就能得到結果。真正需要花時間判斷的,是這個丟包究竟發生在本地網路、電信業者線路,還是伺服器和機房一側。所以看到 1%、3% 或者 5% 的丟包率以後,不要只停留在數字本身。

先測試本地閘道,再向公網和目標伺服器逐步擴大範圍;如果網站面對不同地區使用者,再結合 Chahu 這類多節點工具比較不同電信業者的檢測結果。這樣才能把「網路有點卡」逐漸縮小成一個可以繼續處理的具體問題。對於偶發故障,還應該盡量在問題真正出現的時間段重複檢測。只有把測試時間、地區、電信業者和目標伺服器放在一起看,丟包率這個數字才真正具有排障價值。

相關問答

1. 丟包和抖動到底有啥區別?為什麼丟包率 0% 遊戲還是卡?

丟包是包直接沒了,抖動是延遲忽高忽低。很多人只盯丟包率,一看 0% 就覺得線路沒問題,結果遊戲裡人物還是一抽一抽的。其實 20ms 跳到 200ms 再掉回 30ms,這種抖動對即時業務一樣致命。測的時候別只看平均值,最大延遲和延遲波動也得一起看。

2. 測丟包只看平均丟包率,會漏掉什麼?

會漏掉「連續丟包」。比如 100 個包丟了 3 個,平均丟包率 3%,聽起來還能忍;但如果這 3 個是連續丟的,那正好趕上一次登入請求、一次支付回呼,使用者那邊就是直接失敗。排障時除了看總丟包率,也要留意最大連續丟包和丟包發生的時間點。

3. 掛了 VPN 或代理之後丟包,怎麼分清是誰的問題?

在 VPN 裡 ping 一個公網位址,再在本地直接 ping 同一個位址。如果本地不丟、隧道裡丟,問題可能在 VPN 伺服器端、加密開銷、MTU 或隧道線路。如果本地本身就丟,那 VPN 只是背鍋的。代理環境下還要注意,有些節點會主動限制 ICMP,別一看到逾時就認定線路爛。

4. 雲端伺服器換連接埠測丟包,結果完全不同,怎麼回事?

很常見。雲平台安全群組、系統防火牆、DDoS 清洗策略,都可能只放行某些連接埠。ICMP 被攔,不代表業務連接埠也斷;反過來,ICMP 正常也不代表 443 就穩。排查時用 TCPing 或直接壓業務連接埠,別只拿 Ping 結果判斷雲端伺服器到底丟不丟包。

5:為什麼用 TCP 測試好像沒問題,但 UDP 協定丟包特別嚴重?

 主要是因為兩種協定的處理機制不同。TCP 本身帶有重傳機制與滑動視窗控制,即便中間傳輸丟了包,協定底層會自動要求重發,你在應用層(如網頁瀏覽)可能只會感覺到輕微延遲,而覺察不到「丟包」;但 UDP 是只管發送不管接收的無連線協定,沒有重傳機制,一旦網路鏈路壅塞,路由器會優先丟棄無壅塞控制的 UDP 封包。像線上遊戲、即時語音(VoIP)、視訊直播這種基於 UDP 的業務,對網路鏈路的品質要求極高,稍微有點壅塞就會表現出非常明顯的卡頓或掉幀。