Clash 節點延遲測試原理:為什麼顯示的毫秒數不等於實際網速

從測速 URL、握手流程與測量方式解析 Clash 延遲數字,說明低延遲網頁仍慢、高延遲影片卻流暢的原因,並提供更貼近實際體驗的測試方法。

延遲數字實際測量了什麼

Clash 用戶端顯示的 38 ms、126 ms 或 480 ms,通常不是傳統意義上的 ICMP Ping,也不是下載速度。用戶端一般會要求 Clash 或 mihomo 核心透過指定代理節點存取 HTTP 或 HTTPS 測速 URL,再記錄從發出請求到收到有效回應所需的時間。不同用戶端的按鈕可能稱為「延遲測試」、「測速」或「健康檢查」,但核心目標相近:確認節點能否連線,並估算一次短請求的往返時間。

常見測速網址會回傳 HTTP 204。204 回應沒有正文,傳輸量很小,適合重複探測。例如 https://www.gstatic.com/generate_204https://cp.cloudflare.com/generate_204 都屬於這類網址。由於回應內容接近於零,測試結果主要反映連線建立與請求回應速度,無法反映節點持續傳輸 100 MB 檔案時能達到多少 MB/s。

一次 HTTPS 延遲測試可能包含的步驟

  1. Clash 接收用戶端發出的測試指令,並選定一個代理節點。
  2. 核心解析節點伺服器位址,建立到節點入口的 TCP 或其他傳輸連線。
  3. 完成 Shadowsocks、VMess、VLESS、Trojan 或其他協定所需的握手。
  4. 透過節點連線至測速網站,並完成與目標網站的 TCP 與 TLS 握手。
  5. 傳送 HTTP 請求,等待狀態碼與回應標頭返回。
  6. 用戶端將整段耗時換算為毫秒並顯示。

實際計時邊界取決於用戶端與核心版本。有些實作每次都建立新連線,有些健康檢查可能重複使用部分資源;有些會將 DNS 解析計入時間,有些則會命中 DNS 快取。因此,兩個用戶端同時測試同一節點時,出現 20 至 80 ms 的差異並不罕見。判斷節點狀態時,應優先比較同一裝置、同一用戶端、同一測速 URL 下的結果。

為什麼低延遲節點仍然很慢

低延遲表示短連線探測速度快,但網頁載入、軟體下載與影片播放還會受到吞吐量、封包遺失、目標網站線路與伺服器負載影響。測速請求只有少量回應標頭,即使節點出口限速為 5 Mbps,也可能在 50 ms 內完成一次 204 請求。真正下載檔案時,5 Mbps 的理論上限約為 0.625 MB/s,速度差異才會持續顯現。

節點頻寬或共用入口壅塞

代理入口通常由多位使用者共用。晚上 20:00 至 23:00 的並發流量可能明顯高於上午。節點閒置時延遲為 45 ms,忙碌時仍可能維持在 58 ms,但下載速度從 18 MB/s 降至 2.4 MB/s。原因是小請求仍能迅速排隊完成,大流量則會持續爭用出口頻寬。

封包遺失與抖動不會直接顯示

用戶端通常只顯示最近一次成功測試,或顯示多次結果中的某個數值。假設連續十次結果為 52、54、55、53、410、逾時、61、58、390、57 ms,如果介面只保留最後一次的 57 ms,就會掩蓋明顯的抖動與封包遺失。網頁中的大量並發請求會反覆遇到重傳,表現為圖片分批出現、頁面偶爾停頓。

測速網站與實際目標網站的線路不同

節點到測速 URL 的路由很短,不代表到程式碼託管、影音平台或網路硬碟的路由同樣理想。節點存取測速網站可能走本地互聯,延遲只有 35 ms;存取實際目標網站時卻繞行其他地區,首位元組時間達到 900 ms。測速 URL 只能代表它本身,不能取代對目標服務的驗證。

本地線路與裝置負載

為什麼高延遲節點也能流暢播放影片

影片播放依賴持續吞吐量與緩衝區,不要求每個資料片段都在幾十毫秒內返回。一個延遲為 180 ms、穩定速度為 25 MB/s 的節點,通常可以比延遲 45 ms、速度只有 2 MB/s 的節點更快填滿緩衝區。開始播放後,只要下載速率長期高於影片位元率,較高延遲對連續播放的影響就很有限。

以 4K 影片為例,若平均位元率為 25 Mbps,換算後約為 3.125 MB/s。節點能穩定提供 12 MB/s,即使延遲達到 220 ms,也有足夠餘裕維持播放。相反地,一個延遲 30 ms、但晚間尖峰速度在 1.5 至 4 MB/s 之間波動的節點,可能頻繁耗盡緩衝區。

互動操作與大流量任務重視的指標不同

使用情境 更重要的指標 常見表現
開啟網頁、線上文件 延遲、首位元組時間、封包遺失 低延遲通常能讓多個小請求更快完成
影片播放 持續吞吐量、抖動、可用頻寬 延遲較高仍可依靠緩衝保持流暢
大型檔案下載 持續速度、出口限速、線路穩定性 開始幾秒的峰值不能代表平均速度
遠端終端機、雲端桌面 往返延遲、抖動、封包遺失 80 ms 與 250 ms 的操作回饋差異明顯
語音與即時通訊 延遲、抖動、UDP 可用性 頻寬足夠時仍可能因抖動出現斷續

測速 URL 會如何改變結果

測速網址的位置、協定與回應狀態都會影響數值。選擇 HTTPS 網址時,測試通常包含 TLS 建立連線;選擇 HTTP 網址時則少一層 TLS。測速網站距離節點出口較近,結果會偏低;測速網站跨洲或回應繁忙,結果會偏高。若測速網站受到目標網路限制,即使節點本身正常也可能顯示逾時。

選擇測速 URL 的三項標準

不要直接排序兩個不同 URL 得到的毫秒數。例如節點 A 存取亞洲測速網站為 48 ms,節點 B 存取歐洲測速網站為 130 ms,這組資料沒有公平比較的基礎。批次測試時應確保節點群組使用相同 URL、相同逾時時間與相近的測試時刻。

如何設定 url-test 與健康檢查

Clash 和 mihomo 設定中的 url-test 策略群組會定期測試候選節點,並選擇目前延遲較低的節點。它適合自動選擇,但不等於持續測試下載速度。interval 控制檢測週期,單位通常為秒;tolerance 用於減少延遲接近時的頻繁切換。

proxy-groups:
  - name: 自動選擇
    type: url-test
    use:
      - 代理訂閱
    url: https://www.gstatic.com/generate_204
    interval: 300
    tolerance: 80
    lazy: true

這段設定每 300 秒檢查一次。「自動選擇」群組不會因為新節點只快 10 ms 就立即切換;設定 tolerance: 80 後,差異較小時會優先維持目前節點,從而減少連線中斷。對網頁瀏覽而言,50 至 100 ms 的容差通常比追逐毫秒差異更實用。即時會議期間也不建議將週期設為 10 秒,因為頻繁檢測與切換會增加不必要的連線變化。

代理提供者也可以單獨設定健康檢查。以下片段表示每 600 秒確認一次訂閱內節點是否可連線:

proxy-providers:
  代理訂閱:
    type: http
    path: ./providers/airport.yaml
    health-check:
      enable: true
      url: https://www.gstatic.com/generate_204
      interval: 600
      lazy: true

lazy: true 表示相關代理提供者未被使用時,減少主動檢查;實際行為以所用核心版本為準。若用戶端已透過圖形介面管理設定,直接編輯執行期間產生的 YAML,可能在訂閱更新後被覆蓋。建議優先使用用戶端的覆寫或合併設定功能來新增規則。例如 Clash Verge Rev 2.x 常見操作路徑為「設定」→「訂閱設定」→ 選擇設定檔 →「編輯全域擴充設定」,完成後重新載入訂閱並檢查執行中的設定。

更貼近實際體驗的測試方法

選擇節點時,可以將測試拆成「回應速度」、「持續吞吐量」與「穩定性」三組,而不是只按一次閃電按鈕。所有比較都應固定裝置、網路、時段與代理模式。混合測試 Wi-Fi 與有線網路、系統代理與 TUN 模式,都會讓結論失去可比性。

第一步:重複測試延遲並查看中位數

  1. 在 Clash Verge Rev 2.x 中進入「代理」→ 目標策略群組。
  2. 點擊策略群組右上角的測速按鈕,等待整個群組的節點完成測試。
  3. 對候選節點重複測試 5 至 10 次,每次間隔約 10 秒。
  4. 記錄中位數、最高值與逾時次數,不要只記錄最低值。

一組結果為 68、71、69、74、70 ms,中位數是 70 ms,波動很小;另一組為 42、45、310、逾時、53 ms,最低值較好但穩定性較差。網頁瀏覽與遠端操作通常更適合第一組。

第二步:測試持續下載而非瞬時峰值

選擇來源穩定、距離與用途相近的 100 MB 至 500 MB 測試檔案,連續下載至少 30 秒。忽略開始 2 至 3 秒的峰值,記錄第 10 秒、第 20 秒與第 30 秒的速度。例如節點 A 延遲 46 ms,三次讀數為 8.2、7.9、7.8 MB/s;節點 B 延遲 128 ms,讀數為 30.5、31.4、30.8 MB/s。若是下載任務,顯然應選擇節點 B。

測速會產生實際流量。行動網路或按量計費的線路應縮小檔案大小,並停止其他下載任務。瀏覽器開發人員工具中的「網路」面板可以查看請求耗時;以 Chromium 系列瀏覽器為例,按下 F12 後進入「網路」,選擇目標請求,在「計時」中查看「等待伺服器回應」與「內容下載」階段。

第三步:檢查目標服務

延遲異常時按環節排查

所有節點同時升高

先檢查本地網路。關閉正在執行的雲端硬碟同步與系統更新,使用有線連線或 5 GHz Wi-Fi 後再測。如果直接連線開啟網頁也明顯變慢,問題更可能出在本地寬頻、行動網路或路由器。重新啟動 Clash 只能重建代理連線,無法修復電信業者線路壅塞。

只有一個地區升高

同一地區的多個節點同時從約 80 ms 上升到 300 ms,可能是跨境路由調整或區域入口壅塞。可以暫時選擇另一個地區,並分別在白天與晚間尖峰測試。若凌晨恢復、晚間反覆升高,通常比用戶端設定錯誤更符合壅塞特徵。

測速逾時但網頁可以開啟

更換測速 URL 後重新測試,並確認 DNS 模式正常。使用 Fake-IP 時,測速網域會先取得保留位址,再由 Clash 在連線階段還原網域;若規則將測速網域錯誤分配至直連或拒絕策略,測試可能失敗。檢查日誌中的目標網域、命中規則與出站節點,可以確認請求是否真正經過待測代理。

延遲正常但部分網站很慢

在日誌中確認該網站是否命中預期的策略群組。Clash 規則會由上至下比對,命中第一條後即停止。若目標網站被較前面的 DOMAIN-SUFFIXGEOSITEIP-CIDR 規則分配到其他節點,策略群組中顯示的低延遲就與實際連線無關。也應檢查瀏覽器是否啟用了獨立代理、HTTP/3 或安全 DNS,避免流量路徑與預期不同。

節點排序應同時查看四項數值

單一毫秒數適合快速排除不可用節點,不適合決定所有使用情境。更穩妥的記錄方式包括延遲中位數、最大抖動、逾時率與持續下載速度。例如節點甲的資料為 72 ms、抖動 12 ms、逾時率 0%、平均 14 MB/s;節點乙為 41 ms、抖動 280 ms、逾時率 20%、平均 6 MB/s。雖然節點乙顯示的最低延遲較低,節點甲通常更適合作為預設節點。

自動策略群組也應保留一定容差。兩個節點分別為 64 ms 和 71 ms 時,7 ms 的差異通常不足以抵銷切換現有連線的成本。只有在延遲差異長期穩定,或吞吐量與目標網站體驗也更好時,切換才有實際意義。將測速結果當作篩選入口,再用實際任務驗證,得到的節點選擇會比依一次測試結果排序可靠得多。

下載 Clash 用戶端 查看 Windows、macOS 與行動版版本