
遇到網路有點卡、不確定能不能正常連線時,我都會習慣在指令列輸入 ping
來看看是否可以找到某個遠端伺服器,不得不說這真是一個超級好用的指令,可以知道連結到某主機或 IP 位址的延遲時間或封包遺失率(俗稱掉包),當然延遲越低代表反應時間越短,從封包遺失也能知道網路品質好或不好,正常情況下回應時間不應該過長或是超時(Timeout),封包也盡量要能完整遞送接收。
本文要介紹的「Ping」是一個蠻有趣的網路工具,可以透過網頁瀏覽器持續測試某台伺服器回應時間和延遲情形,預設情況下打開 Ping 會以 Google 伺服器獲取測試結果,包括該主機名稱、IP 位址、國家、延遲時間和距離,使用者可以自訂要測試的目標,支援 HTTP 和 WebSocket 兩種協定。
Ping 開發者在新冠肺炎(COVID-19)期間在家工作,因為發現家中網路似乎不夠穩定,想透過持續發送 ping
方式確認網路的穩定性,才會寫出這個服務,如果你想自架的話,Ping 是一個開放原始碼專案,可在 GitHub 找到相關檔案。
Ping — Real-time Latency Measurement
https://ping.calvin.al/
使用教學
STEP 1
開啟 Ping 網站,預設是使用 Google 做為測試對象,可以看到每次回應的延遲時間、你和伺服器的距離,當然現在都有 CDN,距離上不一定準確,但我們可以看延遲時間及下方紀錄的圖表,知道目前網路的速度和穩定性。

STEP 2
點選右上角「Change Server」變更要測試的目標伺服器,支援一般 HTTP 或是 WebSocket 協議,輸入後點選「Connect」就能加入並開始測試。

STEP 3
Ping 會依照試用者設定的目標伺服器開始測試,下方圖表是延遲情形,將滑鼠游標移動上去會顯示延遲時間,算是一個功能非常簡單的小工具。

STEP 4
Ping 還有一個比較沒什麼用的小功能,可以把你目前測試的頁面分享給別人,只要點選右上角的分享按鈕即可。

另一個小功能是右上角可以切換淺色和深色模式。

如果你想要架設類似 Ping 這樣的網站,可以透過網頁瀏覽器持續發送 ping
給某台主機的話,可以在它的 GitHub 頁面找到原始碼及安裝教學。
值得一試的三個理由:
- 可持續發送 ping 至某個伺服器觀察延遲時間
- 支援 HTTP 和 WebSockets 兩種協定
- 開放原始碼專案,可在 GitHub 找到相關檔案