官方手冊 · 協定技術參考

Shadowrocket
協定類型與參數參考

先核對伺服器支援的協定,再了解驗證、傳輸與規則各自的作用。協定名稱不代表速度排名,也不能取代實際連線測試。

Shadowrocket 支援 iPhone、iPad、Mac、Windows、Android 和 Linux。iPhone / iPad 版可從 App Store 以 $2.99 一次性購買;Mac(Apple 晶片與 Intel)、Windows、Android、Linux 版免費。系統需求以 App Store 頁面標示為準。取得方式與安裝放行說明請見取得應用程式;電腦與 Android 安裝檔由本站 /dl/ 提供。

本頁以使用者已有自己的訂閱或伺服器資訊為前提,重點說明如何在 Add Server 選擇正確類型、理解欄位並找出協定層問題。首次連線請先依照快速入門流程完成匯入、選擇與驗證,再回到本頁查閱各協定;本頁不重複說明操作步驟。

分別核對驗證與傳輸 以伺服器端參數為準 在相同網路與目標下比較
01 / REFERENCE

協定選擇:先拆解連線層次

依據現有資訊確認可選範圍

選擇協定時,第一步不是比較名稱,而是確認伺服器實際開放哪些服務。現有訂閱通常包含類型、位址、連接埠與驗證資訊;匯入後應先保留原始參數,再逐一核對。手動新增時,Add Server 的類型必須與伺服器端一致;將同一個位址從 Shadowsocks 改成 Trojan,不會讓伺服器自動改用另一種協定。若只有一份完整設定,先驗證它,不要為了嘗試而改寫驗證欄位。

一次連線至少涉及四個層面:裝置到伺服器的網路可達性、協定身分驗證、承載資料的傳輸方式,以及用戶端決定哪些請求經由該連線的規則。位址或連接埠錯誤屬於可達性問題;密碼或 UUID 錯誤通常是驗證問題;WebSocket 路徑不符屬於傳輸問題;網站未套用預期策略則可能是規則問題。這些層面可能各自失敗,因此「開關已開啟」只表示連線服務已啟動,不能證明所有請求都成功送達。

代理協定、傳輸與加密並非同一個欄位

Shadowsocks、VMess、VLESS、Trojan 描述不同的代理協定設計;TCP、UDP、WebSocket 涉及資料承載方式;TLS 則負責連線中的身分驗證與加密保護。有些類型會整合這些功能,有些則需另外提供外層設定。訂閱中出現多個相關欄位,不一定是重複設定;核對時應保留彼此的組合關係,不要因為已填入密碼,就認為可以任意刪除 TLS 的 Server Name。

速度也要分開觀察。首次開啟網頁會經過網域解析、建立連線、完成交握與下載內容;單次延遲測試通常無法涵蓋整個過程。大型檔案下載看持續傳輸量,互動式應用更在意往返延遲與抖動,網路切換則考驗重新連線的表現。協定只會影響其中一部分,伺服器負載、跨網路路徑與無線訊號仍可能是主要限制。因此,本手冊不提供脫離網路條件的固定速度或耗電排名。

層次核對項目常見情況
網路入口位址、連接埠、TCP / UDP 可達性連線逾時,尚未進入驗證階段
協定驗證密碼、UUID、金鑰與方法伺服器可連線,但工作階段建立失敗
傳輸保護TLS、Server Name、路徑與 Host憑證錯誤或傳輸交握失敗
請求分流Config、規則順序與策略只有部分請求未依預期處理

完整釐清 iOS 耗電來源

iOS 耗電不只來自密碼運算。無線電頻繁喚醒、連線反覆失敗並重試、背景 App 持續上傳,都會延長裝置的活躍時間。理論上運算量較少的協定,若需要不斷重新交握,也可能比維持穩定連線更耗電。比較時應記錄螢幕是否亮著、使用 Wi-Fi 或行動網路、測試時間,以及是否同時播放影片或下載,避免把整台裝置的耗電都歸因於用戶端。

規則模式也會影響測試範圍。Global Routing 的 Config、Proxy、Direct 分別代表不同連線模式:Config 依目前設定分流,Proxy 將適用流量交由所選代理策略處理,Direct 則直接連線。排錯時可暫時切換模式以排除規則影響,但每次只改一項,測試結束後恢復原狀。若同時切換模式與更換協定,即使結果改善,也無法確認是哪個步驟發揮作用。

實際選擇順序應是:先符合伺服器端的相容性,再符合使用需求,最後比較裝置上的表現。確認是否需要 UDP、是否涉及內網位址,以及是否常在不同網路間切換,再用現有可用設定進行相同條件的測試。想快速辨認各種類型,可搭配閱讀協定概覽文章;首次匯入不順利時,請回到快速入門確認資訊是否完整,而不是直接重寫整份設定。

02 / SHADOWSOCKS

Shadowsocks:對稱式加密與精簡轉送

設計背景與適用範圍

Shadowsocks 著重以相對精簡的協定完成加密代理轉送:用戶端向伺服器提供目標資訊,再由伺服器建立到目標的連線。它主要依靠雙方約定的密碼與加密方法,不以網站憑證作為基本驗證條件。了解這點有助於分辨欄位:一般 Shadowsocks 設定中的 Password 與 Method 缺一不可,不能直接套用另一種協定的密碼,也不能只因連接埠相同,就認定兩種服務可以互換。

不同加密方法的封包格式與金鑰要求可能不同。較新的方法與較早的方法不只是「強弱」之別,也可能使用不同的金鑰編碼、長度及實作相容條件。伺服器端提供哪種方法,用戶端就應選擇相同方法;若清單沒有對應選項,應確認資訊是否適用於目前的用戶端,而不是找名稱相近的選項代替。匯入後仍要檢查方法名稱,尤其留意訂閱轉換過程是否遺漏該欄位。

逐一核對位址、連接埠、密碼與方法

Server 填寫伺服器網域或 IP 位址,Port 填寫實際監聽的連接埠。位址通常不包含網頁路徑,連接埠也不應填入位址欄位。Password 必須完整保留提供的內容,複製時留意空格、換行與全形字元。Method 表示特定加密方式,不是可任意選擇的偏好。若位址可以解析但連線持續失敗,應同時核對連接埠與方法;網域能開啟網頁,不代表代理連接埠正常。

有些設定還附帶額外傳輸參數,但並非所有 Shadowsocks 服務都需要這些參數。只有在現有資訊明確提供時才啟用,並確保名稱與參數相符。不要因為其他設定中有某個選項,就照樣加到目前的連線;額外封裝會改變伺服器端預期的資料格式。若匯入項目與手動填寫結果不同,可以逐欄比較,但應先保留匯入項目作為參照,避免修正時遺失原始資訊。

欄位意義檢查方式
Server / Port服務入口核對網域與監聽連接埠,不附加網頁路徑
Password驗證與金鑰衍生相關資訊完整複製,檢查空格與編碼
Method加密方法與封包格式約定與伺服器端完全一致
UDP資料封包轉送能力同時確認伺服器端、網路與目標需求

TCP 成功不代表 UDP 可用

瀏覽網頁大多可透過 TCP 完成,但即時通訊、部分網域解析與使用 QUIC 的 App 可能會用到 UDP。Shadowsocks 的 TCP 與 UDP 轉送須分別符合條件:伺服器端支援相應功能、網路允許相關資料通過,而且用戶端設定未停用該功能。網頁正常但即時服務失敗時,應檢查這個分支。不要只憑一次網頁載入,就認定目前連線適用於所有 App;也不要只因一個 App 失敗,就認定整條連線失效。

在 iPhone 和 iPad 上,精簡轉送通常代表需要檢查的封裝層較少,但不表示一定更快或更省電。裝置晶片處理演算法的效率、長連線數量與網路重傳,都可能改變實際結果。同一設定在 Wi-Fi 正常、行動網路逾時時,應先比較入口連接埠與網路可達性;若只有高負載時明顯變慢,則應一併觀察伺服器負載與持續傳輸量,不能單憑協定名稱下結論。

排錯可依序確認「資訊是否完整、入口是否可達、驗證是否一致、特定服務是否支援」四個面向。先查看訂閱是否更新成功,再核對目前選取的項目,避免修改一個項目卻測試另一個。驗證錯誤應回頭檢查密碼與方法;逾時優先檢查位址、連接埠與目前網路;只有部分請求異常時,再檢查規則與 UDP。這樣可以保留明確的因果關係,不必在多個設定間反覆嘗試。

若現有伺服器只提供 Shadowsocks,優先使用完整相符的設定即可,不必為了協定名稱更換類型。若使用者同時有多種可用設定,再以相同目標與相近時間比較網頁首次載入、持續傳輸與背景待機表現。記錄改善發生在哪個環節,比替協定貼上「輕量」或「高速」標籤更有用,也更方便日後在網路條件改變時重新判斷。

03 / VMESS · VLESS

VMess 與 VLESS:分別核對驗證與傳輸

欄位相似不代表協定相同

VMess 結合使用者身分驗證與協定本身的資料保護機制,設定中常見 UUID、加密選項與傳輸設定。VLESS 的驗證與轉送設計較精簡,協定本身不負責同等程度的內容加密,通常需要搭配適當的外層安全機制。兩者都可能使用 UUID,也都可能搭配 TCP 或 WebSocket,但欄位形式相似不代表可以混用類型。伺服器標示為 VLESS 時,即使選擇 VMess 並填入相同 UUID,仍然不相符。

這類設計將協定與傳輸組合使用,可配合不同的部署方式,也增加了需要核對的欄位。檢視現有資訊時,建議分成「協定類型、使用者驗證、底層傳輸、TLS 保護」四組,而不是把所有欄位看成一份沒有區分的清單。若缺少其中一組資訊,應向原資訊提供者確認,不要從網域或連接埠猜測。使用常見的安全網頁連接埠,也不能單獨證明服務已啟用 TLS。

UUID、加密與時間條件

UUID 用來識別協定中的使用者身分,不是任意備註。複製時應保留完整格式,避免將顯示名稱、訂閱網址或其他憑證填入此欄。VMess 的加密選項應依照提供的參數設定;若舊設定包含額外驗證參數,也應保留原值,不要把舊教學中的固定數字當成所有服務的標準。用戶端匯入結果與伺服器端實際設定一致,比追求通用範例更重要。

裝置時間也可能影響驗證或外層憑證檢查。發生驗證失敗時,先確認系統日期、時間與時區正常,再檢查 UUID 與相關參數;不要任意更改系統時間來規避錯誤。若更新訂閱後才出現異常,而舊項目仍可連線,可以比較協定類型與驗證欄位是否有變更。請注意,匯入成功只表示用戶端已解析資訊,不代表遠端已接受這組身分。

WebSocket 的 Host 與 Path 各有用途

WebSocket 為代理資料提供一種承載方式。Path 是伺服器端接收升級請求的路徑,通常須保留開頭的斜線與大小寫;Host 則是 HTTP 請求中的主機識別。兩者可能與連線入口位址相同,也可能不同,取決於部署方式。缺少路徑、將路徑誤填至 Server,或 Host 與伺服器端預期不符,都可能造成底層 TCP 已連線,但無法完成傳輸交握。

TLS 的 Server Name 又有不同用途,主要用於交握中的伺服器名稱指示與憑證名稱驗證。Host 正確不代表 Server Name 也正確,反之亦然。若現有設定明確提供這三項資訊,應分別填寫,不要為了「統一」而全部改成伺服器 IP。使用 IP 連線、以網域驗證憑證是可行的安排,前提是原有伺服器端設定確實支援,而非由用戶端自行拼湊。

欄位群組常見內容錯誤影響
協定身分VMess / VLESS、UUID類型或驗證不符
資料保護協定加密選項、TLS雙方安全參數不一致
傳輸承載TCP / WebSocket、Path無法建立預期的傳輸連線
名稱欄位Host、Server Name路由或憑證驗證異常

了解額外封裝的實際成本

在 iOS 上,增加傳輸層可能帶來額外交握、封包標頭與緩衝處理;實際成本則取決於連線是否重複使用,以及業務持續時間。短暫的網頁請求可能較受首次交握影響,持續下載則更容易受連線吞吐量限制。不能因為 VLESS 的協定職責較精簡,就認定所有 VLESS 組合都比所有 VMess 組合快;若兩者使用的伺服器、TLS 與傳輸方式不同,比較結果反映的首先是整套連線,而非單一協定。

只有使用者已有多種伺服器端設定時,比較不同組合才有意義。先固定規則模式與目標,保留一份可運作的基準設定;接著分別觀察首次請求、連續請求與網路切換後的恢復情況。若只有 WebSocket 組合失敗,應回頭檢查路徑與 Host;若所有 TLS 組合都出現憑證錯誤,則優先檢查系統時間與 Server Name。將問題範圍縮小到特定欄位群組,可避免同時擴大驗證、傳輸與規則問題。

04 / TROJAN · TLS

Trojan:先建立 TLS,再完成協定驗證

分清憑證身分與使用者密碼

Trojan 將代理工作階段置於 TLS 連線內,先透過 TLS 建立受保護的通道,再於通道中提交協定驗證與目標資訊。這裡涉及兩種不同身分:憑證用來驗證連線對象是否為指定伺服器,Password 則用來證明用戶端具有存取權限。密碼正確無法彌補憑證名稱錯誤,憑證有效也不代表伺服器已接受密碼。排錯時應依交握順序檢查,而不是把所有失敗都歸因於密碼錯誤。

這種組合將較多安全職責交由 TLS 處理,因此伺服器名稱、憑證有效期限與裝置信任條件格外重要。這不代表使用者需要手動填入每種 TLS 選項;現有訂閱通常已提供必要設定。應先保留匯入結果,再依錯誤訊息找出缺少的欄位。若沒有完整參數就任意嘗試不同名稱,可能會連到另一個服務入口,讓問題更難判斷。

Server、Server Name 與憑證鏈

Server 是網路連線實際要連到的位址,Server Name 則是 TLS 交握與名稱驗證使用的重要資訊。以網域連線時,兩者通常相同;以 IP 連線時,則可能仍須保留原有網域作為 Server Name。憑證驗證也涉及有效期限與信任鏈,因此名稱正確只是必要條件之一。若憑證已過期或中繼憑證設定錯誤,應修正伺服器端,而非一再更換用戶端密碼。

裝置時間不準、網路認證頁面與錯誤的網域解析,都可能造成看似相近的 TLS 問題。公共 Wi-Fi 尚未完成網頁登入時,連線可能被導向認證入口;若解析到錯誤位址,也可能連上不屬於該服務的憑證。遇到這類問題,應先確認網路本身可正常使用,再檢查網域解析結果與 Server Name。尚未確認連線對象前,不要提交更多憑證或擴大信任範圍。

驗證、傳輸與業務支援的界線

Trojan 的 Password 應完整保留大小寫與符號,不要直接將訂閱網址中的整段文字填入。若現有資訊另外指定傳輸方式,也必須與伺服器端一致;不能因為一般 Trojan 常見於某種承載方式,就刪除設定中明確要求的附加欄位。匯入後可先檢查類型、位址、連接埠、密碼與 TLS 名稱,再查看其他傳輸參數。依此順序可先排除最常見的結構錯誤。

UDP 是否能正常使用,仍取決於伺服器端支援、用戶端設定與實際網路條件。即使協定能轉送某類資料,也不代表所有 App 的表現都相同。即時服務對延遲與抖動更敏感,長時間下載則更容易受到伺服器出口頻寬影響。若一般網頁正常但某個即時 App 異常,應單獨驗證該項服務;不要用網頁成功取代實際業務測試,也不要盲目調大逾時參數來掩蓋問題。

在 iOS 上觀察連線重複使用與重新連線

TLS 交握需要交換資料並進行運算,首次連線的成本與後續穩定傳輸並不相同。在頻繁建立短連線的情境中,交握次數可能影響回應速度與耗電;長連線持續運作時,這部分成本會分攤,連線品質往往更重要。伺服器端與用戶端是否使用相關重複使用機制,也會改變觀察結果。因此測試時應分別記錄首次開啟與連續瀏覽,不要將已建立工作階段後的速度當成初次連線表現。

從 Wi-Fi 切換到行動網路,可能改變裝置位址與可達路徑,既有 TCP 連線通常需要重新建立。切換後若長時間未恢復,應先停止目前工作,確認新網路正常,再測試重新連線所需時間;不要立刻清除設定。背景連線反覆失敗會增加重試次數與無線電活躍時間,造成耗電上升。此時應查明失敗原因,而不是先認定耗電來自加密運算。

若使用者已有穩定可用的 Trojan 設定,日常使用時更重要的是保留正確的憑證驗證與驗證參數,並在訂閱更新後確認未遭意外覆寫。若要與其他協定比較,應選擇相近的網路路徑、相同目標與相同測試時段,並明確記錄比較的是整套服務的表現。協定層的說明有助於定位問題,但不能取代對伺服器端運作狀態與業務目標可達性的確認。

05 / HTTP · SOCKS5

HTTP 與 SOCKS5:區分代理入口與目標連線

兩種通用代理的設計起點

HTTP 代理源自網頁請求轉送情境,用戶端可向代理提交請求,也可透過 CONNECT 要求建立通往目標的通道。SOCKS5 則是更通用的代理協商協定,用來指定目標位址與連接埠,不要求業務內容一定是網頁。兩者都能在 Shadowrocket 中作為伺服器類型,但只憑類型名稱,無法推斷入口已加密、支援所有業務,或具備與其他協定相同的驗證機制。

請特別區分「連線到代理伺服器」與「代理伺服器連線到目標網站」。目標網站使用 HTTPS,保護的是相應 TLS 工作階段中的內容;這不代表裝置到代理入口的所有協商資訊也受到外層加密保護。一般 HTTP 或 SOCKS5 入口不應被視為加密通道的同義詞。應依據現有服務說明確認入口是否受保護,以及是否適合在不受信任的網路中使用。

HTTP CONNECT 與 HTTPS 入口並不相同

透過 HTTP 代理存取安全網站時,CONNECT 通常用來要求建立通往目標的連線,之後目標的 TLS 資料會在其中傳輸。支援 CONNECT 不代表代理入口本身使用 TLS,兩者是不同概念。有些入口也會限制可連線的目標連接埠,因此一般網頁正常、其他業務卻失敗。遇到這類情況,應確認服務允許的範圍,而不是不斷修改目標網域,或認定用戶端規則一定有誤。

若現有資訊明確提供受 TLS 保護的 HTTP 代理入口,應依要求選擇相符類型並設定相關憑證名稱。反之,不能只將連接埠改成常見的安全連接埠,就認為一般入口已變成安全入口。驗證方式也必須一致:使用者名稱與密碼應填入相應欄位,不宜拼接成位址後再嘗試匯入。若服務採用特定驗證限制,也應確認用戶端與伺服器端是否支援。

SOCKS5 的位址類型與 UDP 條件

SOCKS5 可在協定中表示 IP 位址或網域,但實際由哪一端解析網域,仍取決於用戶端的請求處理方式與 DNS 設定。若裝置已將網域解析為 IP,交給代理的可能就是 IP;若保留網域格式,則可能由遠端解析。不能只看「SOCKS5 支援網域」,就推斷所有解析都在遠端進行。排查特定網域連線失敗時,應一併檢查 DNS 與代理請求,不要混為一談。

SOCKS5 規範中的 UDP ASSOCIATE 提供資料封包轉送機制,但伺服器是否實作、是否允許,以及網路能否連到其 UDP 轉送位址,都必須分別確認。只支援 TCP CONNECT 的入口可能足以瀏覽網頁,卻無法滿足即時 App 的需求。若業務必須使用 UDP,應先確認現有服務說明是否支援,再進行實際業務測試。單次 TCP 延遲測試無法驗證這項功能。

檢查項目HTTPSOCKS5
主要協商方式請求轉送或 CONNECT目標位址與連線指令
入口加密視入口是否另有 TLS 而定基礎協定本身不提供內容加密
使用者驗證依入口支援方式設定依入口要求填寫使用者名稱與密碼
UDP不能從一般 CONNECT 推斷是否支援須由伺服器端與網路支援相應機制

適用範圍與 iOS 測試方式

這兩種類型常用於既有組織網路入口、測試環境或特定業務代理;選用理由通常是相容既有設備,而非協定名稱帶來的效能優勢。只有在使用者已取得允許使用的位址與憑證時,才進行設定。若入口只在指定網路中可連線,離開該網路後失敗可能是部署範圍限制,不一定是手機設定問題;應先確認存取範圍,而非重複匯入相同資訊。

在 iOS 上,協定協商較簡單不代表整體耗電一定較低。若入口限制連線數、頻繁關閉工作階段,或 App 持續重試不支援的業務,無線電活躍時間仍會增加。比較時應將網頁載入與 UDP 業務分開,並觀察失敗是否集中在特定目標類型。確認權限、入口保護與業務支援後,再判斷是否適合目前情境;不要透過關閉驗證或忽略憑證檢查來追求偶然成功。

06 / WIREGUARD

WireGuard:金鑰身分、隧道位址與路由範圍

先了解它處理的是網路層資料

WireGuard 以網路層隧道為設計基礎,與「為特定目標建立代理連線」的概念不同。設定除了遠端位址,還需要本端位址、金鑰身分,以及允許進入隧道的位址範圍。將它納入用戶端的統一連線管理,不會消除這些網路層條件。使用者應取得完整設定,而不是只憑網域與密碼手動拼湊;缺少隧道位址或對端公鑰時,通常無法建立預期的通訊關係。

WireGuard 使用公鑰識別通訊對端,本端私鑰用來證明本端身分,對端公鑰則用來指定要接受的遠端身分。兩者不能互換。本端私鑰應妥善保密,伺服器端也必須設定與該用戶端相對應的公鑰;只在手機填入一組新金鑰,伺服器不會自動識別。若設定由管理者提供,應保留雙方已約定的金鑰配對,不要任意重新產生並覆寫。

Endpoint、Address 與 Allowed IPs

Endpoint 是隧道對端的網路入口,通常由主機與 UDP 連接埠組成;Address 是本端在隧道中的位址,不是伺服器的公網位址。Allowed IPs 在 WireGuard 的基本語意中,同時涉及目標路由範圍與允許交由對端處理的位址範圍;整合至用戶端後的實際處理方式,還須參照 App 設定。了解這些用途,有助於排查「交握成功但無法存取」的情況:身分交握只代表雙方建立了工作階段,不表示每個目標都有正確路由。

若需要存取組織內網,目標網段必須符合提供的設定範圍,伺服器端也須具備轉送功能與回程路徑。若本地 Wi-Fi 網段恰好與遠端內網重疊,也可能造成路由選擇歧異。這時反覆更換金鑰通常沒有幫助,應先確認目標位址實際會經由哪條路徑傳送。IPv6 也須確認是否具備相應位址與路由條件,不能只因 IPv4 可用,就假設另一套位址空間也能使用。

欄位用途注意事項
Private Key本端身分妥善保密,不要貼到公開的排錯紀錄
Public Key對端身分區分本端公鑰與伺服器公鑰
Endpoint遠端網路入口確認 UDP 位址與連接埠可達
Address / Allowed IPs隧道位址與允許範圍核對網段、回程路徑與位址衝突

Keepalive 與行動網路的取捨

WireGuard 使用 UDP。行動裝置透過網路位址轉換設備連線至遠端時,閒置的映射可能逾時。Persistent Keepalive 的用途之一,是定期傳送封包以維持相關映射,並非提高頻寬。較頻繁的保活會增加無線電活動,較少的保活則可能讓某些網路在閒置後需要較久才能恢復。應依照現有設定;只有確實遇到閒置後無法恢復時,才針對性測試,不要套用所有手機都相同的固定間隔。

切換網路後,底層出口位址可能改變。WireGuard 的機制可在符合條件時適應對端位址變化,但實際體驗仍受新網路的 UDP 可達性、位址轉換與伺服器端策略影響。Wi-Fi 正常、行動網路無法連線時,先確認 UDP 是否可達,再檢查電信網路與對端限制。具備位址更新機制不代表每次切換都不會中斷,也不能因為某次恢復很快,就推斷任何網路都能維持工作階段。

分別驗證 MTU 與 DNS

隧道封裝會占用封包空間;若路徑可承載的有效大小與 MTU 設定不符,可能出現小型請求正常、大型回應停滯的情況。不過,丟包或伺服器問題也可能造成相同現象,因此調整前應先記下原值,每次只修改一個參數,再重複相同請求。不要把網路上某個 MTU 數字當成通用答案,也不要只因網頁無法開啟,就立刻將數值調得很小,以免不必要地降低傳輸量。

DNS 決定網域如何解析成位址,路由則決定資料要送往何處;兩者在隧道情境中經常同時出現,但用途不同。若直接連線到已知內網位址成功,使用名稱卻失敗,應優先檢查內網 DNS 與其可達路徑。需要內網互通時,完整的位址規劃比協定速度測試更重要;一般網頁情境則仍須透過 Shadowrocket 確認請求是否套用預期策略。

07 / HYSTERIA2

Hysteria2:QUIC、UDP 路徑與頻寬參數

著重傳輸行為,不承諾固定速度

Hysteria2 以 QUIC 為基礎進行代理傳輸。QUIC 建立於 UDP 之上,結合加密、連線管理與多路資料流,因此傳輸方式不同於一般 TCP 承載。這種設計在某些高延遲或丟包環境中,可能帶來不同表現,但無法消除實際頻寬限制,也不保證在所有無線網路中都更快。伺服器、網路是否允許 UDP,以及壅塞控制相關參數是否合理,都會影響最終結果。

了解多路資料流時,也要注意其限制:不同資料流之間可減少某些傳輸層阻塞的相互影響,但同一條連線仍共用網路資源與壅塞狀態。底層無線連線嚴重壅塞時,改用 QUIC 不會憑空增加頻寬。若比較時也更換了伺服器或目標,很難判斷差異是否來自協定。應先確認現有服務支援 Hysteria2,再以相同條件與其他可用設定比較,不要把協定名稱當成效能最佳化開關。

分組核對驗證、憑證與選用參數

基本資訊通常包含伺服器位址、連接埠、驗證資訊與 TLS 相關名稱。驗證字串必須與伺服器端一致,Server Name 與憑證檢查也應設定正確。底層使用 UDP,不代表 TLS 的身分驗證功能會消失。驗證失敗時,應檢查驗證欄位;憑證檢查異常時,則應檢查名稱、時間與信任鏈。兩者的排查方式不同,反覆修改密碼無法解決名稱不符的問題。

有些服務也會提供額外的混淆參數;只有伺服器端明確啟用並提供對應資訊時,才填寫這些欄位。若用戶端單獨開啟某個選項,伺服器端就無法依原本格式處理資料。匯入訂閱後若連線失敗,可先逐項比對原始資訊,尤其確認參數是否在轉換或手動編輯時遺漏。不要複製另一條連線的附加欄位,也不要依賴預設值猜測伺服器端的實際設定。

頻寬欄位不是購買額度,也不是越大越好

部分設定會包含上傳與下載頻寬提示,這些數值可能會影響特定壅塞控制行為。它們不代表用戶端可獲得的頻寬額度,也不是填得越大速度就越快。估值過高可能增加排隊、丟包或抖動;估值過低則可能限制傳輸量。實際影響也與協商方式和伺服器端策略有關。應先閱讀現有設定說明,並以實際連線能力為準,不要把行動網路的瞬間峰值當成可持續的速度。

填寫時也要確認單位與方向:上傳是裝置向外傳送,下載是裝置接收資料;不同介面或資訊來源使用的單位可能不同,不能直接複製一個數字就假設意義相同。若需要調整,先在穩定網路上多次觀察持續傳輸,再小幅修改並記錄效果。只測試一個很小的檔案,通常主要反映連線建立與快取情況,不足以判斷頻寬參數,也不能說明長時間使用時的耗電表現。

在 iOS 上分別觀察傳輸量、溫度與恢復情況

高傳輸量代表更多資料處理、無線傳輸與 App 活動;即使更快完成工作,短時間耗電也可能較高。比較電量時應一併記錄工作是否提早結束、螢幕狀態與裝置溫度,不能只看某一刻電量下降的速度。若行動網路持續高負載時明顯發熱,應先降低測試負載並確認訊號品質;弱訊號與反覆重傳也會提高整機耗電,不應只歸因於協定運算。

若 Wi-Fi 可用、另一個網路卻逾時,可先確認相同位址與連接埠的 UDP 路徑;若小型請求正常、持續傳輸不穩,再檢查丟包、壅塞參數與封包大小相關問題。網路切換後的恢復能力需要在實際裝置上驗證,不能只因 QUIC 具備某些機制,就推斷用戶端與伺服器端在所有組合中都能維持連線。經常移動的使用情境,應將網路切換測試列為獨立項目。

現有 Hysteria2 服務是否適合目前工作,應以實際結果判斷:網頁是否穩定、長時間工作能否按時完成、即時通訊是否出現抖動,以及背景閒置時是否持續重試。若只是想改善網頁首次開啟速度,應先排除 DNS 與 TLS 設定問題;若持續下載受限,再檢查路徑與伺服器端能力。依照實際情況選擇測試項目,比不清楚單位與伺服器端條件時反覆調大參數更有效。

08 / VALIDATION

情境驗證:分開排查協定、DNS 與規則

使用相同測試建立基準

協定比較應以實際工作需求為依據。日常瀏覽網頁先觀察首次回應與連續載入;大型檔案傳輸看穩定傳輸量與途中是否中斷;即時通訊看延遲、抖動與 UDP 業務;內網存取則優先檢查位址規劃、DNS 與回程路徑。使用者有多個設定時,先選一個能完成工作的設定作為基準,再比較其他設定。若所有設定都失敗,應先檢查目前網路與目標本身,避免在不具備測試條件時下協定結論。

有效比較應盡可能固定裝置、網路、目標、規則模式與測試時間,並暫停背景的大量資料傳輸工作,同時記錄是否為首次連線。每組重複測試幾次,以常見表現而非最佳單次結果作為參考。Connectivity Test 可協助找出明顯無法連線的項目,但結果不等於完整的網頁體驗,更不能證明 UDP、內網或長連線一定正常。將連線測試、實際存取與持續傳輸分開,才能判斷差異來自哪個環節。

使用 Global Routing 三種模式隔離變因

Config 依目前設定中的規則決定連線策略,Proxy 將適用流量送往代理路徑,Direct 則直接連線。若 Config 異常但 Proxy 正常,通常應回頭檢查規則與策略指向,而非立刻更改密碼;若兩種需要代理的模式都失敗,再檢查入口、驗證與傳輸。Direct 測試只能提供本地網路基準;若目標在直接連線時無法到達,也不能單獨證明代理協定有問題。

以下片段示範如何依網域後綴選擇策略、依位址區段直接連線,並用最終規則處理其餘請求。這是 Shadowrocket 的 .conf 規則內容範例,不是可連線的伺服器設定,也不包含驗證資訊。PROXY 必須在實際設定中對應有效策略;匯入或修改前請先備份,並確認目前 Config 確實選取了正在編輯的檔案。規則通常依序比對,前面的寬泛條件可能使後面的具體條件無法生效。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY

網域規則依賴用戶端在適當階段取得網域資訊,IP 規則則比對位址;兩者不能簡單互換。網站可能使用多個資源網域,App 也可能直接使用 IP,因此「主頁面套用預期策略」不代表所有相關請求都相同。GEOIP 結果也會受位址資料庫與目標位址變動影響。若只想讓指定網站使用代理,可繼續閱讀指定網站使用 PROXY 的規則說明,再依自身需求補上條件。

根據錯誤現象回到相應層次排查

完全逾時時,先檢查網路、位址與連接埠;明確的驗證錯誤則檢查密碼、UUID 或金鑰配對;TLS 錯誤應檢查系統時間、Server Name 與憑證;交握成功但業務失敗時,再檢查目標可達性、DNS、UDP 與路由。若只有一個網域失敗,先測試其他已知目標;若所有網域都失敗但已知 IP 可達,再集中檢查 DNS。每次只修改一組設定,驗證後記錄結果,不要同時將多種猜測寫入設定。

使用情境優先檢查應避免的結論
首次開啟網頁很慢DNS、交握、初次連線與目標回應只憑延遲數值判斷完整載入速度
即時業務異常UDP、抖動、規則與 App 需求網頁正常就認為所有業務都正常
無法開啟內網名稱內網 DNS、網段與回程路徑只更換協定驗證資訊
背景耗電增加重試、保活、App 活動與訊號把整台裝置的耗電全歸因於加密

保留可重現的紀錄,再決定是否更換協定

排錯紀錄應包含裝置網路、目標類型、Global Routing 模式、錯誤階段與發生條件,不必公開完整訂閱網址、密碼或私鑰。分享截圖或文字前,應移除驗證資訊與個人識別資料;只保留有助於重現問題的協定類型與非敏感欄位。訂閱更新後若出現問題,可以比較類型、傳輸與名稱欄位,但要保留原項目,避免尚未確認新設定可用前,就失去可運作的基準。

最終選擇應以相容性與可重現的結果為準:能完成工作、切換網路後可恢復、持續運作時沒有異常重試,比單次測試的最高數值更有參考價值。常見匯入與連線問題可回到快速入門的故障排查;介面用語可查閱概念速查;功能行為可參考功能說明。若問題涉及伺服器端驗證、憑證或路由範圍,應向原資訊提供者確認相應設定,而非在用戶端不斷更換無關選項。