官方手冊 · 協定技術參考

Shadowrocket 協定選擇與參數參考

先依既有伺服器資料選擇類型,再核對驗證、傳輸與路由。協定名稱本身無法決定速度、耗電量或連線結果。

  • 驗證與加密
  • TLS 與傳輸
  • DNS 與規則
  • 連線與耗電排查
  • Shadowsocks
  • VMess
  • VLESS
  • Trojan
  • HTTP · SOCKS5
  • WireGuard
  • Hysteria2

本頁是供反覆查閱的系統參考,著重說明各參數的用途、不同協定的適用條件,以及連線失敗時應從哪一層著手檢查。使用說明提供從匯入到首次連線的快速入門流程;完成首次連線後,可回到本頁查閱各協定章節。所有操作均以使用者已有自己的訂閱或伺服器資料為前提,本說明站不提供、不販售也不推薦節點或訂閱。

01 / SELECTION

協定選擇:先確認伺服器端,再比較傳輸條件

分開理解協定、傳輸、安全性與路由

在 Shadowrocket 中選擇協定類型,代表指定用戶端與伺服器通訊時使用的格式,並非選擇可任意互換的速度等級。伺服器提供 Shadowsocks,就必須選用對應的 Shadowsocks 類型與驗證資料;伺服器提供 Trojan,也不能只把類型改成 VLESS 繼續使用。位址和連接埠相同,只能表示連線目的地相同,無法證明伺服器接受相同的交握、驗證或資料封裝。選擇類型時,首要依據始終是既有資料明確標示的協定。

可用的連線通常涉及四層資訊。第一層是位址與連接埠,決定資料傳送到哪裡;第二層是協定與身分驗證,決定伺服器是否接受請求;第三層是傳輸與安全性參數,例如 TLS、WebSocket 或 UDP;第四層才是本機路由,決定哪些請求會經由該連線。某些協定會整合其中數層,另一些則可採用不同組合。排查時應逐層檢查,否則容易把 DNS 錯誤當成密碼錯誤,或把規則未命中誤認為協定不相容。

速度與耗電量沒有固定排名

實際速度會受到接入網路、往返延遲、封包遺失、伺服器負載、出口頻寬及目標服務等因素影響。增加一層封裝通常會增加資料量與處理負擔,但不代表在所有環境中都更慢:如果某種傳輸方式更適合目前的網路,減少重傳所帶來的效益可能高於封裝成本。反過來說,同一協定在不同伺服器上的差異,也可能遠大於同一伺服器上兩種協定的差異。因此,本頁不會依協定名稱排列固定的速度快慢。

在 iPhone 與 iPad 上觀察耗電量,也要一併考量使用方式。持續大量傳輸會同時使用無線網路、加解密與應用程式的處理能力;零星請求則容易受到連線建立次數、背景維持連線和網路喚醒影響。頻繁自動測速、過短的更新間隔與反覆連線失敗,都可能掩蓋協定本身的差異。比較時應固定裝置、網路、伺服器與目標,並將螢幕亮度和其他背景工作納入考量,不能只因一次電量下降就歸因於某個協定。

既有條件優先核對不能直接推論
已有訂閱匯入後的類型、驗證與傳輸欄位名稱相似就能互換
已有伺服器設定伺服器端實際啟用的協定與連接埠某個連接埠必定使用 TLS
網路有明顯封包遺失傳輸相容性、重傳與連線穩定性UDP 一定比較快
需要存取已授權的內部網路位址範圍、路由、DNS 與回程路徑隧道已建立就代表資源可存取

建立可重複的比較方法

先保存一份已知可用的設定作為基準,再逐項調整。以同一目標分別觀察首次開啟、重複存取、持續傳輸和休眠後恢復,不要每輪測試都同時更換 DNS、協定與伺服器。Connectivity Test 可用來觀察連線狀態,但測試結果不代表所有服務都能正常使用。瀏覽網頁、播放影片和即時語音對傳輸的要求各不相同,應測試實際需要使用的服務,而非只比較單一數值。

如果既有資料只提供一種協定,正確做法是完整匯入這組資料並進行驗證,而不是只看名稱就改選另一種類型。若確實需要切換,應先取得伺服器端為新協定準備的完整參數。訂閱解析後清單空白,與協定選擇是不同層面的問題,可先查看匯入訂閱後清單空白的自我檢查說明。本頁後續章節假設至少已有一筆可編輯的伺服器記錄;介面是否顯示相關欄位,請以目前 App 中的實際選項為準。

02 / SHADOWSOCKS

Shadowsocks:位址、密碼與加密方法必須配套

設計重點:較直接的代理封裝

Shadowsocks 的設計著重於代理連線的資料轉送與加密,常見設定包含伺服器位址、連接埠、密碼和加密方法。它不像網頁應用程式那樣必定以 HTTP 請求作為入口,也不能因為伺服器端使用常見的網頁連接埠,就認定需要 TLS。對已有完整 Shadowsocks 參數的使用者來說,其設定關係較為直接:先連線至指定伺服器,再依約定的密碼與加密方法處理代理資料。伺服器端和用戶端必須使用相容的協定實作與參數。

不同加密方法不能任意互換,當成效能選項。密碼和方法會共同參與金鑰相關處理,某些方法也對憑證格式有特定要求。保留既有密碼,只把方法改成另一個看似較新的名稱,通常無法建立有效連線。匯入連結時應保留原始方法;手動輸入時請逐字核對,特別留意連字號、數字與方法名稱是否完整。如果伺服器提供的方法未出現在目前類型的選項清單中,應先確認相容性,而非選擇名稱相近的項目取代。

參數含義與輸入注意事項

Address 或伺服器位址可以是網域名稱,也可以是 IP 位址。網域名稱可透過 DNS 解析位址,也便於服務遷移,但會增加 DNS 這項前置依賴;直接填入 IP 則無法自動取得網域名稱後續變更的位址。Port 指定伺服器端的監聽連接埠,不能根據網頁能否開啟來判斷是否正確。Password 是伺服器驗證與加密設定的一部分,不是 App Store 帳號密碼,也不是裝置解鎖密碼。輸入時請避免前後空格、換行,以及輸入法自動替換字元。

如果既有資料包含額外的混淆或外掛相關參數,應將這些參數作為獨立條件核對。它們可能影響連線外層的格式,但不代表所有 Shadowsocks 記錄都需要啟用相同選項。漏掉必要的外層參數會導致交握失敗;為原本不需要的連線額外啟用某個選項,也可能讓伺服器無法辨識。最穩妥的做法是先確認是否確實存在這一層,再逐項比對既有資料與 App 中可用的欄位,未指定的選項則維持不變。

參數用途常見核對項目
Address指定伺服器位置網域解析結果與記錄完整性
Port指定服務入口與該協定的監聽連接埠一致
Password參與驗證與加密處理大小寫、空格與編碼是否有變
Method指定加密方法兩端的方法名稱與憑證要求一致

TCP 成功不代表 UDP 已可使用

網頁可以開啟,通常只能表示相關請求所經過的路徑有效。即時語音、部分遊戲或其他以 UDP 為基礎的服務,還需要用戶端設定、伺服器能力與網路路徑共同支援 UDP 轉送。即使 TCP 和 UDP 使用相同的數字連接埠,也屬於不同的傳輸入口,網路端的處理方式可能不同。如果一般網頁正常、即時服務卻無法使用,應先確認該服務實際採用的傳輸方式,再檢查 UDP 支援與相關規則,不要立即更換密碼或加密方法。

在行動裝置上,Shadowsocks 的實際耗電表現取決於加密方法、硬體處理能力、流量大小與重新連線頻率。持續傳輸和密集的小型請求是兩種不同負載,不宜混為一談。如果剛匯入設定就明顯發熱,請先暫停持續測速與反覆連線,確認是否有連線失敗迴圈,再以單一目標進行有限次數的驗證。耗電異常只是現象,須結合連線記錄和網路狀態判斷原因,不能直接證明加密方法選錯。

依故障發生的位置排查

完全無法建立連線時,先核對位址解析、連接埠與伺服器狀態;連線建立後立刻中斷,則檢查密碼、加密方法和外層參數是否配套;只有部分網站無法使用,則進一步檢查 DNS、規則與目標是否可連線。保留一份未修改的原始記錄,方便還原。如果記錄來自訂閱,更新可能會覆寫手動修改;建議測試前先確認目前編輯的是訂閱管理的記錄,還是獨立記錄,以免誤把更新覆寫當成 App 未儲存設定。

03 / VMESS · VLESS

VMess 與 VLESS:身分欄位相似,不代表協定相同

設計取捨與類型界線

VMess 將身分驗證與資料處理整合為專用的代理協定,設定通常包含 UUID,以及與安全性、傳輸相關的參數。VLESS 採用較精簡的協定層設計,本身不提供內容加密,理解完整連線時必須搭配安全傳輸方案。兩者都可能使用 UUID,也都可能搭配不同的外層傳輸,因此只看連結中的身分欄位無法判斷協定類型。應以原始訂閱或伺服器端明確標示為準,不能把同一個 UUID 當成跨協定通用的連線憑證。

VLESS 的設計較精簡,不代表完整連線一定耗用較少資源,也不代表可以省略安全層。如果連線再加上 TLS、WebSocket 或其他傳輸方式,實際資料開銷與交握流程取決於整套組合。VMess 的表現同樣受伺服器設定與網路條件影響,而非只由協定名稱決定。選擇類型時,應同時記錄協定、傳輸與安全層三個面向,再比較相容性和使用情境;只抽出其中一個面向比較,容易得出與實際運作不符的結論。

UUID、傳輸類型與路徑

UUID 用於識別伺服器端允許的使用者身分。複製時須完整保留所有字元與分隔格式,不能用備註名稱取代。備註只供使用者辨識記錄,不參與協定驗證。VMess 的部分參數也與協定實作和舊有設定格式有關,不應只根據網路上的單一截圖批次修改。如果協定驗證流程會檢查時間,裝置時間明顯有誤可能導致連線失敗;應先確認系統日期與時間正常,再判斷伺服器是否拒絕該身分。

傳輸欄位決定協定資料如何承載。使用 WebSocket 時,Path 是交握請求路徑,Host 則與 HTTP 層的主機資訊有關;它們不是伺服器備註,也不能把完整網址任意拆開填入不同欄位。路徑開頭的斜線、大小寫與查詢字串是否須保留,應依伺服器資料核對。選用其他傳輸方式時,欄位組合可能不同,不應將 WebSocket 參數照搬到其他傳輸類型。介面未顯示某欄位,也不代表可以用名稱相近的欄位取代。

層次常見內容核對原則
協定身分VMess / VLESS、UUID類型與身分都必須正確
外層傳輸TCP、WebSocket 等依伺服器實際組合選擇
HTTP 層資訊Host、Path不可與連線位址混為一談
安全層資訊TLS、Server Name、憑證驗證分別核對名稱與信任關係

TLS 名稱與其他擴充參數

連線位址用於找到伺服器;TLS 的 Server Name 提供交握時使用的名稱資訊,並與憑證名稱驗證相關。兩者可能相同,也可能由伺服器資料明確指定為不同值。Host 則屬於另一層,不能只因內容看起來都是網域名稱就互相取代。如果資料還包含其他安全性擴充或特殊交握參數,應確認目前的 App 是否支援相應組合。欄位可以輸入,只表示有可供填寫的位置,並不足以證明任意組合都能與伺服器互通。

既有設定中的 Flow 等選用參數,屬於特定協定組合的設定,不是通用的加速開關。只有伺服器端明確要求,且用戶端提供相容選項時才應啟用。不要反覆嘗試各種安全性參數來取代核對原始資料,否則會同時改變交握條件,失去排查基準。對於從訂閱匯入的記錄,先保留原始結果,再建立獨立的測試副本,更容易判斷是匯入資料不完整,還是後續編輯造成連線變化。

行動網路中的比較方式

在 iPhone 或 iPad 上評估這兩類連線時,應區分首次交握與連線建立後的資料傳輸。多層交握會讓短時間請求更容易受到往返延遲影響;長時間傳輸則可能主要受頻寬與網路壅塞影響。切換網路後,舊連線失效並由 App 重新建立連線,也會造成短暫等待。如果只是某種傳輸方式恢復較慢,應記錄發生在解除鎖定後恢復、切換無線網路,還是一般連續使用期間,而不是直接歸因於 VMess 或 VLESS 的整體差異。

發生連線失敗時,依序排除位址與連接埠、協定與 UUID、外層傳輸、安全層及目標存取問題。如果連線記錄顯示請求根本沒有選到該伺服器,應先檢查 Global Routing 與目前的設定。更多常見狀況請參閱疑難排解,避免尚未確認路由就反覆修改身分欄位。

04 / TROJAN · TLS

Trojan 與 TLS:驗證正確,也要建立正確的信任關係

以 TLS 承載代理連線的設計

Trojan 會在 TLS 保護的連線中傳送代理請求,並以密碼進行協定層驗證。理解其設定時,須同時考量兩個獨立條件:用戶端是否與預期的伺服器建立可信任的 TLS 連線,以及伺服器是否接受協定層憑證。密碼正確無法彌補憑證名稱不符;憑證驗證通過也不能證明密碼正確。與只檢查位址和連接埠相比,核對 Trojan 參數時更要明確區分連線目標、TLS 名稱、憑證鏈與使用者驗證。

TLS 的用途是保護傳輸內容,並在憑證正確驗證的情況下協助確認伺服器身分。它不是速度選項,也不應只為了讓連線顯示成功就任意修改。交握需要網路往返,實際開銷與連線重用、網路延遲和實作方式有關;持續傳輸時的表現也與首次交握不同。因此,首次開啟稍慢,不足以證明 Trojan 的持續傳輸量有問題;一次成功存取,也不能證明所有安全性參數都正確。

Address、Server Name 與憑證驗證

Address 是用戶端實際連線的位址。Server Name 通常與 TLS 交握中的 SNI 及憑證名稱驗證有關,應依伺服器資料填寫。憑證必須涵蓋用於驗證的名稱,並具有有效期限與可接受的信任鏈。如果 Address 直接填入伺服器 IP,但伺服器憑證是核發給網域名稱,通常仍需要正確的名稱資訊。不能因為 IP 可以連線就移除網域名稱,也不能以任意可存取網站的網域名稱取代。

憑證驗證失敗可能有多種原因:裝置時間不正確、憑證已過期、伺服器未提供完整的中繼憑證、名稱不符,或目前網路將連線導向其他入口。排查時先查看具體錯誤,再核對資料與伺服器設定。如果 App 提供略過憑證驗證的選項,這會改變信任邊界,而不是修復憑證的工具。日常使用應優先修正名稱、時間或憑證鏈問題,不應預設長期關閉驗證。

密碼、ALPN 與外層傳輸

Trojan 的 Password 是協定驗證憑證,大小寫與特殊字元都須完整保留。訂閱匯入可能涉及連結編碼;若手動從連結截取一段作為密碼,容易把編碼後的內容誤當成實際密碼。請優先使用 App 支援的完整匯入方式,或依既有資料中的獨立欄位輸入。不要在公開截圖中顯示完整密碼,也不要將驗證失敗時的原始分享連結直接貼到公開回報區;排查通常只需要欄位結構,不需要公開憑證。

ALPN 用於 TLS 中的應用層協定協商,是否需要指定以及可接受哪些值,取決於伺服器端與外層傳輸的安排。它不是項目越多越好的清單,也不能靠加入常見名稱來保證相容。如果記錄包含 WebSocket 等額外傳輸,也須核對相應路徑與主機資訊。此時 TLS 成功只代表安全層已建立,後續傳輸交握或 Trojan 驗證仍可能失敗,應依失敗先後順序判斷問題所在。

如何區分憑證問題與服務問題

如果所有目標都在連線初期同時失敗,並出現憑證或交握錯誤,應優先檢查 TLS 條件;如果連線已建立,但特定網站無法使用,則檢查目標 DNS、路由與遠端可達性。如果只有即時服務失敗,進一步確認 UDP 轉送支援與網路路徑。將這些狀況分開處理,可避免目標服務暫時無法使用時去更換憑證設定,或在網域解析錯誤時重設密碼。每次只調整一個條件,並記錄錯誤前後的變化。

觀察耗電量時也應著眼於實際使用狀況。頻繁建立 TLS 連線、失敗後連續重試,以及背景小流量讓無線網路持續運作,都可能增加耗電;這與大量傳輸時的加密處理並非同一種負擔。測試時關閉不必要的持續探測,保留一筆明確可用的基準記錄,再觀察常用服務。關於 App 取得方式、官方圖示與開發者資訊的核對,請參閱正版核驗說明,不要用連線表現判斷 App 來源。

05 / HTTP · SOCKS5

HTTP 與 SOCKS5:先辨識代理入口,再確認保護範圍

兩種通用代理介面的設計出發點

HTTP 代理是為轉送 HTTP 請求而設計,處理網頁請求時可使用代理格式的請求目標;對於 HTTPS 等情境,通常會透過 CONNECT 請求建立通往目標的通道。SOCKS5 則提供較通用的代理連線協商,用於指定目標位址、連接埠與連線請求。兩者都是代理入口的協定規範,不代表入口天然具有相同的加密保護、驗證機制或 UDP 能力。既有伺服器若標示為 HTTP,就不能只因位址相同而改選 SOCKS5。

這裡尤其要區分目標網站使用 HTTPS,與用戶端至代理入口使用 TLS。HTTPS 通常會保護到目標網站的內容,但若用戶端與 HTTP 代理之間未使用 TLS,代理協商資訊及部分驗證資訊的保護範圍,就與加密的代理入口不同。目標網站使用安全連線,不代表外層代理鏈路的每個部分都具備相同的安全特性。判斷保護範圍時,應逐段檢視連線,而不是只看瀏覽器網址列或伺服器備註中的某個詞。

位址、連接埠與驗證模式

HTTP 與 SOCKS5 的基本資料通常包含伺服器位址、連接埠,以及可能需要的 Username 和 Password。是否需要驗證由伺服器端決定,不能假設留白就能連線,也不能把其他協定的 UUID 填入使用者名稱,期待它自動相容。驗證失敗與網路無法連線可能呈現相似狀況,應結合連線錯誤和既有資料判斷。手動輸入時也要留意某些帳號含有網域或其他前綴,是否保留應以伺服器提供的完整格式為準。

如果代理入口要求 TLS,應選擇對應的安全性設定,並核對憑證名稱。連接埠數字本身無法證明入口使用明文或加密,也不能證明它接受 CONNECT。部分伺服器會限制可存取的目標、目標連接埠或驗證方式;即使用戶端成功連上入口,後續請求仍可能遭拒。遇到特定目標連接埠無法使用時,應先確認授權範圍與伺服器政策,而不是反覆修改本機 DNS,或誤以為所有 HTTP 代理都只能存取網頁。

檢查項目HTTPSOCKS5
常見運作方式請求轉送或 CONNECT協商後建立代理連線
驗證取決於入口支援的方式取決於協商與伺服器設定
入口加密須另行確認是否使用 TLS協定本身不提供內容加密
UDP一般 HTTP 代理不能直接視為支援 UDP 轉送須由端到端支援 UDP ASSOCIATE

DNS 解析與 UDP 支援條件

SOCKS5 的目標位址可以網域名稱表示,但實際請求是否將網域名稱交由代理端解析,仍取決於用戶端的處理方式、DNS 策略,以及目標資訊是否已轉換成 IP。不能只因選用 SOCKS5,就認定所有 DNS 請求都在遠端完成。HTTP 代理也可能在請求中取得目標主機名稱,但 App 產生的其他 DNS 查詢則須另行檢查。排查網域名稱問題時,應觀察實際連線目標與 DNS 結果,而不只是檢查伺服器類型。

SOCKS5 規範包含 UDP ASSOCIATE,不代表每個伺服器、每種接入網路和每種用戶端組合都能完成 UDP 轉送。相關協商通常還涉及控制連線與轉送位址,網路端可能會限制其中一部分。如果 TCP 服務可用、UDP 服務卻失敗,應分別確認伺服器端是否啟用、回傳位址是否可達,以及規則是否選到同一筆記錄。不能將單一網頁測試的結果直接套用到語音、遊戲或其他 UDP 服務。

適用情境與行動裝置使用評估

這兩類入口常見於既有組織代理、已授權的網路存取,或明確提供通用代理協定的環境。使用者應依管理單位提供的類型與安全要求設定,不要因為參數較少就認為更適合長期使用。對 iPhone 和 iPad 而言,連線穩定性仍會受到網路切換、驗證有效期限與伺服器限制影響。代理持續顯示驗證失敗時,應先檢查憑證狀態與授權範圍,不要以頻繁重新連線取代確認。

如果服務需要持續低延遲或 UDP,應先確認入口確實具備相應能力;如果只需存取特定授權資源,則更應重視目標路由與驗證範圍。選擇協定應配合既有連線條件,無法創造伺服器端未提供的能力。儲存記錄時,可在備註中標明用途與網路條件,但不要填入密碼;如此切換不同入口時,既能辨識使用情境,也不會在清單截圖中洩露驗證資訊。

06 / WIREGUARD

WireGuard:金鑰、隧道位址與允許位址共同決定可達性

從代理請求轉向 IP 隧道

WireGuard 採用加密 IP 隧道,與前面以單一代理請求描述目標的協定不同。理解其設定時,須留意隧道介面位址、對端身分、UDP 端點與允許位址之間的關係。它以公私鑰識別通訊對端,不是只要向伺服器傳送使用者名稱與密碼就能完成驗證。既有設定通常由伺服器管理者提供,用戶端須依照完整關係輸入,並非取得 Endpoint 就能建立可用的服務路徑。

WireGuard 的設計著重於精簡的協定與明確的金鑰關係,但這不代表較不容易設定錯誤,也不代表在所有行動網路上速度最快。底層通常使用 UDP;如果目前網路無法正常傳送相關流量,交握與資料傳輸都會受到影響。即使對端能夠回應,遠端網路仍須正確設定轉送、存取控制與回程路徑。隧道已建立與目標資源可達是兩個不同層面,測試時應分別確認。

Private Key、Public Key 與選用的共享金鑰

Private Key 用於識別本端身分,必須保密;本端對應的 Public Key 則提供給對端設定。用戶端填入的 Peer Public Key 應是遠端的公鑰,不能重複填入自己的公鑰。常見錯誤包括填反兩端欄位,或以新產生的私鑰取代舊值,卻未同步更新伺服器端登記的使用者公鑰。金鑰格式看起來正確,只能表示字元結構可能有效,不能證明兩端已正確配對。

如果設定包含 Preshared Key,它是公私鑰關係以外的額外共享資料,兩端必須一致。沒有這個欄位的設定,不應自行加入隨機值;原本有這個欄位的設定,也不能只在用戶端刪除。排查或截圖時,應遮蔽 Private Key 與 Preshared Key。公鑰雖不是私密驗證資料,也可能連結到裝置身分,不宜連同端點與內部網路拓樸一起公開。需要協助時,可提供欄位是否存在、錯誤類型與已遮蔽敏感資訊的設定結構。

Address、Allowed IPs 與 DNS 各自的作用

Address 通常是分配給本端隧道介面的位址,不是遠端伺服器的公網位址,也不是任意填入的本機無線網路位址。Endpoint 才是遠端可連線的主機與連接埠。Allowed IPs 與對端可處理的位址範圍有關,也會參與 WireGuard 的位址選擇與驗證邏輯;它與 Shadowrocket 上層規則並非完全相同的概念。只有兩層設定都涵蓋目標,相關請求才可能依預期通過隧道。

DNS 參數負責安排名稱解析,不會自動補上缺少的位址路由。存取內部網路的網域名稱時,DNS 必須能回傳正確位址,同時目標位址須有可用路徑,遠端也須允許存取並能傳回回應。如果 IP 可以存取、網域名稱卻不行,優先檢查 DNS;如果網域名稱已解析出預期位址但仍無法連線,則檢查 Allowed IPs、上層規則與遠端回程。切勿反覆更換 DNS,試圖修復實際上未經隧道接管的目標網段。

欄位對應對象核對重點
Private Key本端身分須與遠端登記的本端公鑰相符
Peer Public Key遠端身分不可誤填成本端公鑰
Endpoint遠端網路入口主機、連接埠與 UDP 可達性
Allowed IPs對端位址範圍與目標和上層路由一併檢查

MTU、保活與行動網路恢復

MTU 與隧道封裝後的封包大小有關。數值過大可能導致部分網路路徑上的大型封包傳輸異常,表現為小型請求正常、較大的內容卻停頓;數值過小則會增加封包數量與額外負擔。應先依照既有設定建議使用,只有在有證據支持時才逐步調整。Persistent Keepalive 用於在必要時維持網路映射,並非間隔越短就越穩定;過於頻繁會增加背景通訊與無線網路喚醒,是否設定應視網路設備行為與遠端要求而定。

切換行動網路後,端點可達性、映射狀態與網域名稱解析都可能改變。觀察時應分別記錄是否重新交握、是否只有部分網段無法使用,以及問題是否在鎖定螢幕後才出現。如果目標是已授權的內部網路,先測試單一已知資源,再逐步擴大範圍,避免用無關的公網網站判斷隧道是否完整運作。iPad 的基本檢查方式相同;裝置購買與復原事項可另參閱iPad 使用說明。

07 / HYSTERIA2

Hysteria2:基於 QUIC 的傳輸須先確認 UDP 條件

設計目標與網路前提

Hysteria2 以 QUIC 為基礎安排代理傳輸,著重於複雜網路環境中的資料傳送與壅塞處理。QUIC 運作於 UDP 之上,並結合 TLS 完成安全交握。它可以在單一連線中安排多個資料流,各資料流的處理方式與單一 TCP 位元組串流不同,但多個資料流共用連線,仍會受到整體頻寬、壅塞情況與伺服器資源限制。多流特性不代表某個請求完全不受其他流量影響,也不能只憑協定名稱推測實際傳輸量。

使用前最重要的條件是 UDP 路徑可用。有些網路可以正常瀏覽網頁,卻限制 UDP 入口或採取不同的處理方式;此時,基於 TCP 的記錄正常,並不能證明 Hysteria2 入口也應該正常。發生故障時,先核對網域解析、連接埠與 UDP 可達性,再檢查驗證和 TLS。如果底層路徑不通,調整頻寬參數或新增保活通常無法補足缺少的網路條件。

驗證、TLS 與混淆參數

既有的 Hysteria2 資料通常包含伺服器位址、連接埠、驗證資訊與 TLS 相關設定。驗證欄位須依伺服器要求完整保留,不能直接拿其他協定的密碼嘗試。TLS 名稱與憑證驗證原則和前文相同:連線目標、Server Name 與憑證涵蓋的名稱必須正確對應。即使底層使用 UDP,憑證時間、名稱與信任鏈仍然重要,不能將所有交握失敗都歸因於 UDP 受到限制。

如果伺服器啟用了混淆,用戶端也須設定對應類型與密碼等參數。混淆、驗證與 TLS 屬於不同層,各自負責不同功能,不能因其中一項設定正確就忽略其他兩項。未啟用混淆的入口,也不應自行新增不明參數。匯入後若可用記錄與手動重建的記錄結果不同,應優先逐項比較欄位,特別留意簡略資料中容易省略的選用設定。

頻寬欄位不是測速結果

有些設定包含上傳與下載頻寬欄位,這些數值可能會影響特定壅塞控制模式的運作。欄位中的數值不是用戶端即時測得的速度,也不代表伺服器承諾持續提供相應傳輸量。伺服器政策與協商方式可能影響這些數值是否生效,不能藉由填入很大的數值增加實際頻寬。輸入時也要確認 App 欄位使用的單位,不要混淆每秒位元組與每秒位元,也不要把自己的下載能力誤填到上傳欄位。

如果設定值明顯高於實際接入能力,在相關模式下可能造成排隊、封包遺失與連線不穩;設定過低則可能限制可用的傳輸能力。應依實際網路條件與伺服器說明設定,並保留原始設定作為基準。測試時同時觀察下載是否持續、互動請求是否延遲,以及其他 App 是否受到排隊影響。短時間內曾達到較高速度,不足以證明參數設定合理,更不能取代較長時間的穩定性觀察。

在 iPhone 與 iPad 上觀察資源使用情況

QUIC 的協定處理、加密與資料收發都會占用裝置資源。實際耗電表現會受到實作方式、流量、封包遺失與無線訊號強度影響,沒有適用於所有裝置的固定結論。大量傳輸測試時,App 處理和無線傳輸會同時運作;裝置溫度升高,不能單獨證明設定錯誤。更有參考價值的是相同服務量下的持續表現、背景是否反覆重新連線,以及弱訊號或解除鎖定後恢復時是否明顯異常。

如果只有特定無線網路無法連線,可改用另一個已獲授權的接入網路,確認路徑是否不同;如果所有網路都失敗,再檢查原始驗證資料、TLS 與伺服器狀態。如果可以建立連線,但大量傳輸時停頓,應檢查路徑上的封包遺失、封包大小、頻寬設定與遠端資源,而非立即改用另一種協定。只有伺服器端實際提供新協定,切換才有意義。記錄故障發生階段與簡短錯誤資訊,比只寫「無法使用」更有助於後續判斷。

完成測試後,停止反覆測速與不必要的持續傳輸,還原日常設定後再觀察耗電量。如果問題只在更新訂閱後出現,應先比較記錄中的參數變化,區分伺服器端調整與本機網路變化。設定來自既有訂閱時,手動修改也可能在後續更新時被覆寫;因此應確認測試副本與訂閱記錄的管理方式,避免更新後同一問題再次發生。

08 / ROUTING · VALIDATION

規則、DNS 與驗證:分別確認協定可用性與請求路徑

Global Routing 的三種模式

選對協定只解決與伺服器通訊的條件;實際請求是否使用該伺服器,還取決於 Global Routing。設定檔模式對應 Config,依目前設定檔中的規則決定策略;代理模式對應 Proxy,主要將請求交由所選代理處理;直連模式對應 Direct,主要透過直接路徑存取。不同模式用來控制請求的路徑,無法修復協定驗證錯誤。在 Direct 模式下某個網站正常,也不能證明代理伺服器可用,因為這次存取可能根本沒有經過代理。

模式介面用詞驗證重點
設定Config目前檔案、規則順序與命中策略
代理Proxy所選記錄與實際請求路徑
直連Direct直接網路路徑與目標可達性

規則順序與預設策略

規則通常依序比對,前面的具體條件可能讓後續規則不再參與該請求的選擇。DOMAIN 比對完整網域名稱,DOMAIN-SUFFIX 用於網域後綴,DOMAIN-KEYWORD 依關鍵字比對;IP-CIDR 與 IP-CIDR6 用於位址範圍,GEOIP 依 IP 歸屬資料比對。FINAL 用於前面的規則都未命中時作為預設策略。以下片段僅展示 Shadowrocket 設定中的規則結構,不含連線資料,也不是適用於所有網路的完整設定。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
GEOIP,CN,DIRECT
FINAL,PROXY

範例中的 PROXY 與 DIRECT 是策略關鍵字,不等同於某筆記錄的備註名稱。GEOIP 判斷依據是 IP 歸屬資料,不代表頁面使用的文字、營運主體或實際內容所在地;網域名稱可能解析出多個位址,結果也可能改變。使用 IP 類規則前,應先了解解析發生的位置與時機。如果規則看似正確卻未生效,應檢查實際請求是否帶有可供比對的網域名稱、最終目標位址為何,以及是否已命中前面的規則。

REJECT 是拒絕連線的策略,不是用來語意辨識頁面內容。同一網域名稱可能同時提供多種功能,拒絕該網域可能影響需要保留的內容;App 自身的連線方式也會影響可觀察到的比對資訊。相關限制請參閱REJECT 規則原理與適用範圍。USER-AGENT 等依賴應用層資訊的規則,也應先確認目前連線是否提供可用的比對資訊,不能假設所有加密請求都能直接讀取這些欄位。

DNS、IPv6 與目標位址

DNS 負責將網域名稱轉換為位址,代理協定負責後續資料傳輸,兩者彼此相關,但不是同一項設定。網域解析失敗時,可能根本無法連線至目標;解析成功但取得不可達位址時,則可能表現為連線逾時。如果目標同時有 IPv4 和 IPv6,目前網路對兩種位址的可達性可能不同。檢查時應記錄實際使用的位址類型,而不是只看網域解析是否回傳任何結果。整體停用某項功能前,先確認故障確實與它有關。

網域規則和 IP 規則也可能得到不同結果,因為請求比對時可用的資訊不一定相同。針對同一目標,可先確認 DNS 回傳結果,再核對連線記錄中的目標位址與策略;不要同時更換 DNS、規則檔案與協定。存取已授權的內部網路時,外部 DNS 不一定知道內部名稱,內部 DNS 也不一定能透過目前路徑存取。這類問題應依序驗證名稱解析、DNS 伺服器路徑、目標路由與回程路徑。

完整的排查流程

第一步確認原始記錄來自自己的有效資料,並保留未修改的副本;第二步核對類型、位址、連接埠與驗證資料;第三步確認傳輸、TLS 與選用參數;第四步檢查 Global Routing、目前的 Config 與請求命中情況;第五步以單一目標測試實際服務。每一步都要先確認可觀察的結果,再進入下一步。Connectivity Test 可協助判斷,但不能取代目標服務驗證;Data 中的流量變化也只能作為通訊活動的線索。

若要回報問題,提供裝置平台、接入網路類型、協定與傳輸組合、故障階段及已遮蔽敏感資訊的錯誤內容即可。不要公開完整訂閱連結、密碼、私鑰或含有身分參數的 QR Code。重新安裝前先保存自己的設定與必要資料,避免在沒有記錄的情況下失去排查基準。購買復原與安裝事項請參閱已購項目復原說明;首次連線步驟請返回使用說明,常見狀況則可依疑難排解分類繼續查閱。