本文適合已經有自己的服務提供者與訂閱,準備在 Shadowrocket 使用 Hysteria2 的使用者。先說明 QUIC、UDP 與壅塞控制的關係,再核對位址、連接埠、驗證、TLS 和頻寬欄位,最後依連線狀況排查問題。是否適合自己的網路,應觀察 UDP 是否可連通、丟包型態與持續傳輸表現,而非只看單次延遲數值。
Hysteria2、QUIC 與 UDP 的關係
Hysteria2 是以 QUIC 為基礎的代理協定。Shadowrocket(小火箭)作為用戶端,連線至使用者自己的 Hysteria2 伺服器,再由伺服器轉送目標流量。購買 App 與連線服務是兩回事:購買用戶端不會自動取得伺服器位址、驗證資訊或訂閱。
UDP 是底層傳輸,QUIC 在其上實作加密、連線管理、可靠資料流與壅塞控制。不能將「以 UDP 為基礎」理解成「資料遺失也不處理」:承載 TCP 代理流量時,QUIC 的可靠資料流仍需要確認與重傳;代理 UDP 流量時,則採用符合資料報語意的傳送方式。
此處的 443/UDP 僅為連接埠範例。伺服器也可以監聽其他 UDP 連接埠,用戶端必須填入實際值。某個網路允許 443/TCP,不代表同樣允許 443/UDP;瀏覽器能開啟一般網頁,也無法證明 Hysteria2 的傳輸路徑可用。
傳輸為何可能更快:多工與壅塞控制
QUIC 可以在同一條連線中承載多個資料流。某個資料流發生丟包時,不必像將多個業務資料流塞進單一 TCP 位元組流那樣,等同一條外層有序位元組流補齊後,才交付其他資料流的資料。不過,各資料流仍會共用鏈路容量與壅塞控制,單一可靠資料流本身也仍須按序交付。
Hysteria2 的另一個重點是以頻寬為基礎的 Brutal 壅塞控制。它會依設定的目標速率傳送,並補償丟包;在有隨機丟包、但鏈路仍有可用容量時,這種方式可能比遇到丟包就明顯降低速率的策略,更容易維持吞吐量。實際採用 Brutal 或 BBR 等路徑,取決於頻寬設定、協商結果,以及用戶端與伺服器的實作,不能只憑協定名稱判斷。
| 機制 | 可能改善的狀況 | 仍存在的限制 |
|---|---|---|
| QUIC 多工 | 不同資料流因外層有序傳輸而產生的等待 | 所有資料流仍會競用同一條鏈路的容量 |
| 可靠資料流重傳 | 丟包後恢復 TCP 代理流量的資料完整性 | 補傳資料會耗費時間與額外頻寬 |
| Brutal | 隨機丟包時持續傳輸速率下降 | 目標頻寬設得過高可能加劇排隊與丟包 |
| BBR 路徑 | 依據鏈路估算調整傳送行為 | 效果受路徑、實作方式與伺服器限制影響 |
判斷方式:先測可用容量,再設定頻寬
先記錄同一路徑的持續下載、上傳速率與回應延遲,再依實際容量設定頻寬;若提高數值後吞吐量沒有變化,網頁回應卻變慢,應調低設定並重新測試,而非繼續提高數值。
「快」不是協定的固定特性。高延遲會增加交握、請求往返與丟包復原所需的等待時間,QUIC 無法消除實際距離;伺服器出口、目標網站限速和本地無線干擾,也不會因切換協定而自動消失。本文不以未經測試的百分比承諾速度提升。
哪些網路情境適合,哪些應先排除
適合優先測試的情況,是 UDP 可連通、鏈路延遲較高、有一定程度的隨機丟包,同時仍有可用頻寬。若丟包源自佇列持續滿載,繼續提高傳送速率可能適得其反。應分別觀察「隨機丟包」與「壅塞丟包」,不能只根據單一丟包百分比做決定。
- 跨距離鏈路:觀察持續傳輸是否穩定,同時記錄網頁開啟的回應時間;大檔案傳得快,不代表互動一定流暢。
- 無線網路波動:先靠近無線基地台,暫停其他大量流量工作後再測試,避免將本地無線干擾誤判為協定問題。
- UDP 受限網路:若交握一直逾時,先核對 UDP 連接埠與網路政策;提高頻寬數值無法修復連線不可達的問題。
- 持續壅塞的網路:若傳輸期間延遲明顯升高,暫停傳輸後又恢復,應先降低頻寬目標並檢查其他裝置的網路使用量。
- 低丟包、短距離鏈路:切換協定帶來的效益可能有限,也應一併考量穩定性、伺服器支援與實際用途。
在 Shadowrocket 新增 Hysteria2:欄位核對順序
優先使用自己現有訂閱中的完整設定,避免手動設定時漏掉 TLS 或驗證參數。Hysteria2 與舊版協定 Hysteria 不能只修改名稱就互換;匯入後應開啟項目,確認 Type 對應 Hysteria2。不同介面語言與 App 版本的欄位排列可能不同,以下依欄位用途核對,不要只憑相似名稱猜測數值。
-
確認來源
準備自己現有服務的位址、UDP 連接埠、驗證資訊、TLS 與選用的混淆參數。匯入訂閱的步驟為 Home → 右上角「+」→ Type → Subscribe,接著填入自己的訂閱 URL 並儲存。
-
選擇協定
手動新增時,前往 Home → 右上角「+」→ Type → Hysteria2。匯入訂閱後,則開啟對應項目核對 Type;不要改成其他協定後繼續沿用原有參數。
-
填寫連線資訊
依伺服器提供的資料填寫位址與連接埠,再填入驗證資訊。位址欄只填主機名稱或 IP,不要連同網頁路徑、協定前綴或連接埠一起輸入;連接埠須另外填寫,例如伺服器明確提供 443,就填入 443。
-
核對加密設定
檢查 TLS 的伺服器名稱 SNI 與憑證要求;若伺服器啟用混淆,再逐項確認混淆類型與密碼。驗證密碼與混淆密碼用途不同,不能互相替代。
-
儲存並驗證
儲存後返回 Home,選取該項目並連線。記錄目前的 Global Routing 設定,使用已知可連線的目標進行驗證;測試結束後恢復日常設定,不要同時修改 DNS、規則與頻寬。
| 欄位意義 | 填寫依據 | 常見錯誤 |
|---|---|---|
| 伺服器位址 | 伺服器提供的主機名稱或 IP | 誤填管理網頁位址或訂閱位址 |
| Port | 實際監聽的 UDP 連接埠 | 將其他服務的 TCP 連接埠誤當成此處的連接埠 |
| 驗證資訊 | 伺服器指定的完整驗證字串 | 內容遭截斷,或前後混入空格 |
| SNI | TLS 憑證所對應的伺服器名稱 | 使用 IP 連線時,誤以為不必核對憑證名稱 |
| 混淆參數 | 伺服器是否啟用混淆及其對應參數 | 只在用戶端啟用,或密碼不一致 |
| 上傳與下載頻寬 | 用戶端方向的鏈路能力與伺服器限制 | 上下行填反,或將 MB/s 誤當成 Mbps |
請特別留意頻寬單位:1 MB/s = 8 Mbps,實際有效負載也會受到傳輸開銷影響。下載方向通常是伺服器至用戶端,上傳方向則相反;填寫前請以目前欄位說明為準。不要因為本地網路標示的接取速率較高,就認為遠端鏈路也能持續達到相同容量。
連線成功後:確認流量確實經過該項目
在 Home 選取 Hysteria2 項目,不代表每個請求都會經過它。Global Routing 中的 Direct 表示直接連線;Proxy 用於驗證代理路由;Config 會依目前設定檔中的規則處理;Scene 則須另外核對目前場景的具體設定。診斷時務必記錄模式,否則協定對照測試實際上可能走了不同路徑。
使用 Config 時,前往 Config 確認目前生效的檔案,再核對目標請求符合的規則。規則通常依序比對,以下僅用於說明語法,並非可直接取代現有檔案的完整設定;PROXY 策略必須存在於實際設定中,且指向預期路徑。
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
DOMAIN-SUFFIX依網域後綴比對;先確認測試網域是否符合這類規則。IP-CIDR依 IP 網段比對,範例中的no-resolve可避免這條規則額外觸發網域解析。GEOIP依 IP 地理資料比對,結果取決於解析出的 IP 與使用的資料。FINAL是前面的規則都未符合時的預設處理方式,不應只檢查這條規則,而忽略排列在前面的規則。
若測試期間連線狀態自行恢復,請檢查 Settings → On Demand 的現有設定,確認是否由按需連線觸發。On Demand 負責連線觸發條件,無法修正錯誤的驗證、連接埠或 TLS 參數。暫時調整前先記下原有設定,排查完成後再恢復。
Hysteria2 常見問題:依狀況排查
為什麼一直逾時,一般網頁卻能開啟?
先核對位址解析結果與實際 UDP 連接埠,再改用另一個可使用的網路,測試連線至同一項目。一般網頁可能使用 TCP,無法證明 UDP 路徑正常。若只在一個網路中失敗,優先檢查該網路的 UDP 政策;若兩個網路都失敗,再核對伺服器監聽設定、防火牆與服務狀態。
為什麼出現驗證或憑證錯誤?
驗證錯誤時,先比對完整字串與前後空格,不要用訂閱 URL 代替密碼。憑證錯誤則應核對裝置時間、SNI 與伺服器憑證;即使使用 IP 連線,仍可能需要填寫憑證對應的網域。混淆參數不符也可能造成交握失敗,請逐項核對伺服器設定。
頻寬設得更高,為什麼反而變卡?
目標速率超過鏈路容量時,排隊、重傳與補償流量都可能增加。請降低頻寬目標、暫停其他大量流量工作,並比較連續傳輸期間的網頁回應。若吞吐量沒有提高、回應延遲卻變大,應保留較低的設定,並核對伺服器是否限制實際可用速率。
已建立連線,為什麼有些網站仍無法開啟?
先在 Home 核對 Global Routing,排除 Direct 或規則指向其他路徑的情況;再檢查 Config 中的比對結果與 DNS 解析。若只在大型回應或特定網路下中斷,再檢查路徑 MTU、UDP 分片與中間網路限制。尚未找出原因前,不要同時更換 DNS、連接埠與混淆參數。
更新訂閱後,手動修改的內容怎麼不見了?
訂閱更新可能會重新寫入由訂閱管理的項目。請先記下修改內容,再確認上游訂閱是否已提供正確參數;長期設定應以自己服務的有效資料為準。訂閱更新、Config 更新與 App Store 的 App 更新是不同操作,不能互相取代。
保留最終設定時,至少記錄網路類型、伺服器項目、Global Routing 模式、頻寬設定,以及發生問題時的具體操作。比較同一項工作的多次結果,比單次速度峰值更有參考價值。若問題只發生在特定伺服器,請提供已移除敏感資訊的錯誤狀況,向自己的服務提供者確認;不要公開驗證資訊。