Shadowrocket Hysteria2 是什麼?QUIC 協定原理與適用情境

認識 Hysteria2 的 QUIC、UDP 傳輸原理與高丟包網路下的表現,了解適用情境,以及在 Shadowrocket 中設定相關欄位。

本文快速導覽

本文適合已持有服務商提供的設定或訂閱,並需要在 Shadowrocket 核對 Hysteria2 參數的使用者。先釐清 QUIC 與 UDP 的作用,再逐項確認伺服器、連接埠、驗證資訊、TLS 與 SNI,最後在固定網路環境下用相同請求判斷問題出在傳輸、驗證或分流。本文不提供、不販售也不推薦節點或訂閱。

Hysteria2、QUIC 與 UDP 的關係

Shadowrocket(小火箭)中的 Hysteria2 是一種代理協定,不是 Global Routing 的路由模式,也不是啟用後就會套用到所有連線的加速開關。只有選取相應項目,且請求被路由至該項目或包含該項目的策略時,才會透過這條連線傳送。

Hysteria2 以 QUIC 為傳輸基礎,而 QUIC 底層使用 UDP。UDP 本身不負責重傳或依序交付資料;QUIC 則在其上提供加密、串流管理及可靠傳輸等機制。因此,「以 UDP 為基礎」不代表網頁資料可以任意遺失,也不表示應用程式原有的 TCP 請求會失去可靠性。

應用程式請求 規則比對 協定封裝 QUIC 傳輸 伺服器轉送

這裡要區分內層與外層:應用程式瀏覽網頁時可能使用 TCP;Shadowrocket 將這類請求交由 Hysteria2 處理後,裝置與代理伺服器之間使用的是以 UDP 為基礎的 QUIC 連線。目標網站不必支援 QUIC;代理伺服器如何連線至目標網站,與裝置到代理伺服器的外層傳輸是兩個不同環節。

高丟包網路下的表現與適用範圍

Hysteria2 的設計包含適用於高延遲、有損鏈路的壅塞控制機制;其中 Brutal 機制與設定的頻寬值有關。能否維持較穩定的吞吐量,仍取決於鏈路容量、丟包原因、伺服器負載,以及實際採用的壅塞控制模式。不能只憑協定名稱推斷固定速度,也不能認為丟包越多,效益就越大。

尤其要分辨隨機丟包與壅塞丟包。如果無線訊號波動造成少量隨機丟包,適當的傳輸機制或許能提升鏈路使用效率;如果出口已經壅塞,繼續提高傳送量可能加劇排隊、延遲與丟包。將頻寬參數設為遠高於可用上傳頻寬的數值,並不會增加實際容量。

UDP
裝置至 Hysteria2 伺服器的底層傳輸
443
可作為伺服器 UDP 連接埠的範例,實際值請以既有設定為準
TLS 1.3
QUIC 使用的握手與金鑰協商基礎

判斷方式:先確認 UDP 可連通,再調整頻寬

若同一組設定在行動網路可用,卻在某個 Wi-Fi 下持續發生握手逾時,請先檢查該 Wi-Fi 至伺服器 UDP 連接埠的網路路徑;不要試圖提高頻寬或關閉憑證驗證來解決傳輸不通。

在 Shadowrocket 中核對 Hysteria2 設定欄位

既有訂閱通常已包含伺服器參數,請優先檢查匯入結果,不要拼湊不同項目的欄位。手動新增時,從 Home 點選新增按鈕,在 Type 中選擇 Hysteria2,再依照持有的設定填寫。欄位順序與可用選項可能隨應用程式介面調整;未顯示的進階參數,不要以其他選項代替。

欄位或參數填寫依據常見錯誤
Type選擇 Hysteria2,與伺服器使用的協定一致。誤將 Hysteria 與 Hysteria2 當成可互換的類型。
伺服器位址填寫既有設定中的主機名稱或 IP 位址。將完整訂閱 URL 填入位址欄,包含路徑或查詢參數。
連接埠填寫伺服器實際監聽的 UDP 連接埠,例如設定中明確提供的 443。認為所有伺服器都使用 443,或只確認 TCP 443 可連通。
驗證資訊完整保留既有設定提供的驗證值。複製時多帶空格,或將訂閱 token 誤當成連線密碼。
TLS / SNI保持憑證驗證開啟;SNI 使用設定指定的伺服器名稱。連線位址是 IP 時,誤將該 IP 直接當成憑證名稱。
obfs僅在伺服器已啟用並提供相應參數時設定。混淆密碼與驗證資訊混用,或只在用戶端啟用混淆。
頻寬參數若介面提供此欄位,請依實際上下行能力及原有設定填寫,並確認單位。混淆 Mbps 與 MB/s,或以理論峰值取代可持續使用的容量。

SNI 是 TLS 握手時提供的伺服器名稱指示;憑證驗證也會檢查伺服器身分是否符合預期名稱。伺服器位址決定連線要連到哪裡,SNI 與憑證名稱則決定要驗證誰。兩者可以不同,但必須有明確的設定依據。遇到憑證錯誤時,應核對名稱、裝置時間與伺服器憑證,不要將略過驗證當成一般設定。

Hysteria2 與早期 Hysteria 的協定及參數並非直接相容。訂閱更新後若類型辨識異常,請檢查原始項目是否明確標示 Hysteria2,以及應用程式是否能辨識該訂閱格式;只修改項目名稱並不會改變實際協定。

匯入既有訂閱、更新與首次驗證步驟

訂閱 URL 是取得設定的入口,不是代理伺服器位址。其中可能包含可用來讀取設定的憑證,應視為敏感資訊妥善保管。以下網址僅供辨識格式,無法用於實際連線:https://example.com/sub?token=xxxx。請勿將真實訂閱連結放入公開截圖或問題排查紀錄。

  1. 匯入既有訂閱:在 Home 點選新增按鈕,於 Type 中選擇 Subscribe,將自己的訂閱 URL 填入 URL 欄位後儲存。返回 Home,確認對應的群組已出現,且其中有可辨識的 Hysteria2 項目。
  2. 確認更新結果:需要重新整理時,對該訂閱執行 Update,等待完成後檢查項目類型、伺服器與連接埠。若無法取得資料,先分辨是訂閱網址無法連線,還是代理伺服器無法連線,不要混為同一種錯誤。
  3. 選擇測試項目:在 Home 選取要驗證的 Hysteria2 項目,記下名稱與連接埠。若透過策略群組選擇出口,也要確認該群組實際選中了這個項目。
  4. 控制路由變數:在 Global Routing 暫時使用 Proxy,驗證所選出口;測試後還原原本的路由模式。Direct 不會驗證代理鏈路;使用 Config 時,則需配合目前設定中的規則判斷。
  5. 建立連線並發送請求:開啟連線開關;首次使用時,依系統提示授權 VPN 設定。接著瀏覽已知可正常存取的頁面,觀察是否出現握手、驗證、憑證或解析相關錯誤。
  6. 還原日常設定:返回 Global Routing → Config 後,檢查相同請求命中的規則與策略,確認沒有發生 Proxy 模式下可用、還原規則後卻被分流至其他出口的情況。

如何區分握手逾時、憑證錯誤與分流問題

排查時依連線階段分類,比反覆修改所有欄位更容易找出問題。先記錄目前的網路、選取項目、Global Routing 模式與錯誤訊息,再一次只變更一項。延遲測試有結果,只能表示該測試涵蓋的環節有收到回應;不能取代實際網頁請求,也無法證明所有 UDP 轉送情境都正常。

同一項目在 Wi-Fi 下逾時,切換至行動網路就能使用?

保持伺服器、連接埠與驗證值不變,只切換網路重測。若差異持續出現,優先檢查 Wi-Fi 的 UDP 輸出限制、路由與防火牆。能連線至 TCP 443,不代表 UDP 443 可用;UDP 遭封鎖時,Hysteria2 也不會自動改用 TCP 連線。

顯示憑證名稱不符,該修改哪裡?

返回 Home 編輯該項目,對照既有設定檢查伺服器位址與 SNI,並確認裝置日期和時間正確。若位址是 IP、憑證則簽發給網域名稱,應使用設定指定的名稱進行驗證;若仍出現錯誤,需由伺服器端檢查憑證,而不是關閉驗證。

使用 Proxy 可以開啟,切換至 Config 卻不行?

前往 Config 確認目前使用的設定,再檢查規則順序與目標策略。規則通常會由上而下比對;DOMAIN-SUFFIX、IP-CIDR、GEOIP 與 FINAL 可能讓同一個請求套用不同策略。先查看實際命中的規則,不要因此判定 Hysteria2 握手失敗。

連線初期正常,持續傳輸後延遲卻明顯升高?

先停止其他占用上傳頻寬的工作,檢查既有設定中的頻寬參數與單位,再以相同請求重測。如果介面提供可調參數,請逐步降低並觀察排隊延遲;不要同時修改連接埠、SNI 與驗證值,否則無法判斷是哪項設定造成影響。

若只有少數網站無法使用,請進一步區分 DNS 解析、規則比對與目標服務限制。連線開關處於開啟狀態,只能表示系統 VPN 處於相應狀態,不代表每個網域都會經由同一個出口。若需要自動連線,Settings → On Demand 是觸發連線的設定,無法修復錯誤的 Hysteria2 驗證資訊或連接埠。

使用固定條件評估是否適合目前的網路

評估應以日常使用的網路為準,而非以單次最高速度作結論。保持裝置、伺服器、目標資源與 Global Routing 模式一致,在相近時段重複測試,並分開記錄 Wi-Fi 與行動網路的結果。缺少相同條件下的數據,就不應判斷「提升了多少百分比」。

保留能穩定重現的設定,再還原日常使用的 Config 分流;若問題只在特定網路發生,應優先調查該網路路徑。選擇 Hysteria2 時,應考量 UDP 可連通性、參數正確性與重複測試結果,而非將協定類型視為所有連線問題的通用解法。

App Store 正版確認 →