Shadowrocket Hysteria2 協定介紹:QUIC 傳輸為何快速、適合哪些網路

認識 QUIC 與 UDP 的特性,了解 Hysteria2 為何適合高封包遺失、高延遲的網路,以及適用情境和 UDP 受限時的注意事項。

本文重點

Hysteria2 值得在 UDP 可連通、往返延遲較高或有隨機封包遺失的網路環境中測試,但不能只憑協定名稱判斷速度。本文適用於已有服務商設定與訂閱的使用者:先說明 QUIC 傳輸機制,再整理 Shadowrocket 的匯入、分流檢查與重新測試步驟,協助判別參數錯誤、UDP 受限及規則未命中等問題。

一、Hysteria2 與 QUIC:優勢從何而來

Shadowrocket(小火箭)中的 Hysteria2 是一種代理協定選項,以 QUIC 為傳輸基礎。QUIC 使用 UDP 傳送資料,並結合 TLS 1.3 建立安全連線。要區分的是:底層使用 UDP,不代表應用程式資料都採用不可靠傳輸;QUIC 可在 UDP 之上提供資料流的有序交付、遺失復原與流量控制。

傳統 TCP 連線中的多個應用程式請求若共用同一條有序位元組串流,某處封包遺失可能阻礙後續資料交付。QUIC 分別管理不同資料流的交付;某個資料流等待遺失資料時,其他資料流不必只因這個缺口而一併等待。不過,各資料流仍可能共用壅塞控制與鏈路容量,因此「減少資料流之間的交付阻塞」不代表「封包遺失完全不會造成影響」。

Hysteria2 在部分有隨機封包遺失的鏈路上展現吞吐量優勢,也與其以頻寬為基礎的壅塞控制方式有關,並非所有 QUIC 連線都會有相同結果。用戶端頻寬宣告、伺服器限制與協商結果都會影響實際行為;不能把「使用 QUIC」直接換算成固定的加速百分比。

二、高延遲與高封包遺失:先釐清瓶頸

高延遲表示送出請求到收到回應所需的時間較長。Hysteria2 無法消除實體距離造成的往返時間,但在合適的鏈路上可能維持較高吞吐量。高封包遺失則還要分辨原因:無線干擾造成的隨機遺失,與佇列持續壅塞造成的遺失,不能用完全相同的方法處理。網路已經壅塞時,單純增加傳送量可能讓通話、網頁及其他裝置的連線一併變差。

網路狀況如何判讀測試方式
小型網頁正常,大型檔案傳輸速度慢可能與封包遺失、壅塞或遠端頻寬有關,不能只看延遲。固定使用相同檔案、伺服器與網路,重複傳輸並記錄所需時間。
閒置時正常,下載時延遲大幅增加可能是鏈路佇列堆積,較積極的傳送設定會加劇情況。暫停其他大量傳輸工作,降低頻寬宣告後再比較。
Wi-Fi 無法連線,行動網路正常目前的 Wi-Fi 可能限制 UDP,也可能採用不同的 DNS 或出口策略。維持設定不變,只切換網路,分別檢查名稱解析與交握結果。
首次請求較慢,持續傳輸正常應分別檢查 DNS、連線建立與目標網站回應。分開記錄首次開啟所需時間與後續傳輸狀況。

結論:一次只調整一個變因重新測試

只有在伺服器、目標資源與分流路徑固定後,切換網路或調整單一參數所得的差異才有判斷價值;不要同時更換訂閱、DNS 與 Global Routing,然後將改善歸功於 Hysteria2。

可採用明確的記錄方式:每個網路針對相同資源傳輸 3 次,每次約 60 秒,記錄完成的位元組數、耗時、是否中斷及測試時段。這是重新測試的方法,不是產品效能數據。單次峰值或一筆延遲讀數,都不足以證明該協定更適合目前的網路。

三、在 Shadowrocket 匯入並檢查 Hysteria2

從自己已有的訂閱或完整設定開始。Hysteria2 需要伺服器端支援,不能只把既有伺服器的 Type 改成 Hysteria2。匯入後仍應檢查 Address、Port、認證資訊與 TLS 參數;若訂閱內容完整,保留原始欄位通常比憑經驗自行填寫更可靠。

  1. 匯入已有訂閱

    開啟 Home → 點選右上角「+」→ Type → Subscribe,貼上自己已有的訂閱連結並儲存。訂閱網址含有存取憑證,不應公開貼在截圖或問題排查記錄中。

  2. 確認協定類型

    返回 Home,進入已匯入伺服器的編輯頁面,確認 Type 是否為 Hysteria2;若訂閱中沒有此類型,請向原設定提供者確認,不要自行更改類型。

  3. 檢查連線欄位

    逐一檢查 Address、Port、認證資訊及 SNI。Port 必須與遠端監聽埠一致;只有遠端明確指定 443 時才填入 443,不能視為通用預設值。

  4. 固定測試路徑

    在 Home 選取待測伺服器,開啟 Global Routing → Proxy,建立連線後測試相同的目標資源。若使用策略組,也要確認實際選取的成員,避免測到其他伺服器。

  5. 還原日常設定

    測試完成後,將 Global Routing 還原為原本使用的 Config,再次存取目標資源。若 Proxy 正常而 Config 異常,接著檢查規則與策略組,不要先修改傳輸參數。

SNI 用於 TLS 交握時指示伺服器名稱,應依照原始設定填寫;若連線位址是 IP,可能仍須另外指定憑證所對應的網域。遇到憑證錯誤時,應檢查伺服器名稱、憑證有效性與裝置時間,不要藉由放寬憑證驗證來掩蓋問題。設定若包含混淆參數,用戶端與伺服器端也必須一致;只在單側啟用無法修復 UDP 無法連通的問題。

四、Global Routing:區分傳輸問題與分流問題

Global Routing 決定請求如何選擇對外連線路徑,不會讓某種協定變快。排查時最常見的誤判,是已選取 Hysteria2 伺服器,卻沒有確認目標請求實際使用該伺服器。以下僅比較 Shadowrocket 本身的路由模式;建議選項適用於日常使用,不代表排查問題時只能使用該選項。

Config:依設定分流

建議

依目前啟用設定中的規則處理請求。目標可能走 DIRECT,也可能走代理或策略組;選取伺服器不代表每個請求都會使用它。

適用:規則已確認無誤的日常連線。

Proxy:驗證代理路徑

將受此模式控制的請求導向代理路徑,方便暫時減少規則比對帶來的變因。仍須確認目前實際選取的伺服器或策略組。

適用:確認伺服器能否連線,以及排除規則誤比對。

Direct:建立直連基準

使用直連路徑,不經過所選代理伺服器。可用來觀察本機網路是否異常,但直連結果無法證明 Hysteria2 的 UDP 交握正常。

適用:比較本機網路與代理路徑的差異。

在 Config 中排查時,先確認目前啟用的是哪一份設定,再查看規則順序。DOMAIN-SUFFIX 依網域後綴比對,IP-CIDR 依 IP 網段比對,GEOIP 依賴 IP 地理位置資料,FINAL 用來處理先前未命中的請求。不要只看到末尾的代理策略,就忽略前面已命中的 DIRECT 規則。

五、UDP 受限時:連接埠、交握與 MTU 的限制

Hysteria2 的外層傳輸依賴 UDP。某個網路允許連線至 TCP 443,不代表也允許 UDP 443;網頁可以開啟,也不能證明 QUIC 可用。連接埠號碼相同只代表數字相同,傳輸協定不同仍可能受到不同的防火牆與流量策略處理。

連線逾時時,先確認遠端 UDP 監聽狀態與網路是否放行。只有伺服器確實監聽 UDP 443 時,將 Port 改為 443 才有意義;任意更改連接埠通常只會增加設定錯誤。連接埠跳躍也需要伺服器端設定範圍與用戶端設定相互配合,無法解決所有 UDP 整體遭封鎖的情況。

QUIC 初始資料報的 UDP 負載至少須有 1200 位元組;若路徑無法正確傳輸相關封包,交握或後續傳輸可能異常。不過,遇到卡頓就修改 MTU 並非通用解法:路徑 MTU、通道額外負載與介面中可調整的參數並不相同,也不要把 WireGuard 設定中的 MTU 數值直接套用到 Hysteria2。先保留預設值與原始設定,僅在有明確診斷依據時調整。

六、常見問題與最後選擇

延遲數值較低,就一定比較快嗎?

不一定。先固定 Home 中的伺服器與 Global Routing 模式,再分別測試網頁首次回應與持續傳輸。延遲只反映某一種探測結果,不能取代吞吐量、穩定性與實際使用表現。

為什麼切換到行動網路就能連線?

維持相同伺服器、連接埠與認證資訊,比較 Wi-Fi 與行動網路。若只有 Wi-Fi 連線失敗,先檢查該網路的 UDP 策略、DNS 與出口條件;不要為了配合單一網路而反覆修改正確的認證資訊。

訂閱可以更新,為什麼伺服器仍然無法連線?

取得訂閱與 Hysteria2 傳輸是兩種不同的驗證路徑。更新成功只代表已取得設定。返回 Home 檢查已匯入項目的 Type、Address 和 Port,再透過 Global Routing → Proxy 單獨測試連線。

所有網路都應改用 Hysteria2 嗎?

不需要。在 UDP 受限或目前連線已穩定的網路中,保留可用設定更合適。若既有設定包含其他傳輸方式,可以在相同目標與時段下比較;不要只因協定名稱較新,就取代已驗證可用的路徑。

最後應以可重複的連線結果為依據:只有 UDP 可連通、參數正確且持續傳輸穩定,才適合將 Hysteria2 納入日常設定。高延遲與隨機封包遺失是測試它的理由,並非效能保證;真正要確認的是「目前網路是否更穩定、目標工作是否更順暢」,而不是脫離測試條件的速度排名。

在 App Store 確認官方版本