Shadowrocket
協定類型與參數參考
依伺服器支援的類型選擇 Type,再核對驗證、傳輸與路由。協定名稱本身無法決定速度,也不能取代連線測試。
- 七種協定
- 參數核對
- 速度與耗電
- 連線診斷
協定、傳輸與規則各自負責什麼?
先確認伺服器提供的協定,再選擇 Type
協定類型必須與伺服器端相符,不能把同一組位址和密碼任意改成另一種協定。在 Home 的伺服器編輯入口或 Add Server 中,Type 決定用戶端如何組織驗證與資料;伺服器必須能解析相同格式,才有機會建立連線。使用者現有的訂閱通常已包含這些設定,匯入後應先保留原值。只有掌握伺服器端的實際設定時,才適合手動重建項目;只憑名稱標示某種協定,無法確認所有參數。
理解一條連線時,應拆成不同層次。位址和 Port 決定連往何處,協定驗證決定對方是否接受請求,傳輸方式決定資料如何承載,TLS 負責相關通道的身分驗證與加密,Global Routing 則決定哪些請求會進入這條路徑。同樣是 VLESS,也可能搭配不同傳輸方式;同樣使用 TLS 的兩條連線,也可能採用不同的驗證機制。排查時若混淆這些層次,就可能改了密碼,實際問題卻是憑證不符。
七種協定不是速度排行榜
協定的歷史背景反映設計目標,不代表在任何網路環境中的固定表現。Shadowsocks 著重精簡的代理轉送,VMess 具備自己的驗證與資料保護設計,VLESS 則將較多保護責任交由外層機制處理,Trojan 透過 TLS 通道承載代理請求。HTTP 與 SOCKS5 是通用代理介面,WireGuard 處理 IP 層隧道,Hysteria2 則採用以 QUIC 為基礎的傳輸。它們解決的問題並不完全相同,不能只按名稱的新舊排序。
速度通常先受伺服器出口、往返時間、網路壅塞與無線訊號影響,其次才是協定處理的額外負擔。開啟網頁可能包含 DNS 查詢、交握與多個短請求;持續下載則較受傳輸量影響,兩者的結果可能相反。使用 iPhone 時還要考量行動網路訊號、低電量狀態及前後台切換,不能把單次測速的最高值當成日常體驗。比較時應固定裝置、網路、伺服器條件與測試目標,只改變一項可控制的變數。
| 層次 | 核對項目 | 常見錯誤 |
|---|---|---|
| 協定驗證 | Type、Password、UUID 或金鑰 | 把帳號欄位用於另一種協定 |
| 傳輸與保護 | TLS、SNI、Path、UDP 可達性 | 外層連線成功,內部請求失敗 |
| 請求路由 | Global Routing、Config、規則順序 | 請求未進入正在測試的伺服器 |
依工作負載評估耗電與相容性
耗電量取決於實際傳輸量、連線維持方式與無線模組的工作時間,不是某種協定永遠具備的特性。頻繁建立 TLS 連線可能增加短時間的額外負擔;持續傳送保活封包可能讓網路更常喚醒;封包遺失後重傳也會增加耗電。長時間觀看影片、少量傳送訊息與待機等情境應分開觀察。裝置溫度升高時,先檢查 Data 中的流量變化與背景工作,不要直接認定是協定實作有問題。
TCP 與 UDP 的支援情況也應分開確認。網頁能開啟,只能證明相關路徑上的請求成功,不能證明語音或其他 UDP 流量也能通過。部分協定支援 UDP,但伺服器、目前的傳輸方式或上游網路未必允許;反過來說,以 UDP 承載的協定也可能轉送應用程式的 TCP 請求。這裡的「應用程式流量類型」和「外層連線類型」是兩個概念,不能只看到 UDP 就推斷所有應用程式的行為。
第一輪選擇只需回答三個問題:伺服器實際提供什麼、目前網路允許什麼、需要承載哪種服務。接著再確認驗證資料是否完整、憑證能否正確驗證,以及連線失敗時是否容易找出原因。如果目前只有一種可用類型,應先正確設定,而不是尋找伺服器端沒有對應的設定。想先了解分享格式,可閱讀分享連結與訂閱連結的差異,再返回相關協定章節。
Shadowsocks:驗證方式與加密方法須成對核對
設計重點是應用程式代理,而非完整 IP 隧道
Shadowsocks 的基本做法是在用戶端與伺服器之間建立受保護的代理轉送,傳遞目標位址及後續資料。它不是把裝置的所有 IP 封包原封不動交由遠端處理,也不等於只設定一個系統代理位址。Shadowrocket 會先接收需要處理的請求,再依據規則決定是否交由該項目處理。因此,「使用 Shadowsocks」和「所有網站都經過這台伺服器」並非同一回事;後者還取決於 Global Routing 和 Config。
相對精簡的協定架構適合資料明確、希望減少額外傳輸層的情境,但實際效能仍由加密實作、伺服器負載與網路條件共同決定。現代驗證加密方法會提供資料完整性檢查,用戶端與伺服器端必須採用相同方法及金鑰設定。不能因為兩個選項都包含某個演算法名稱,就認為可以互換;名稱中的模式、金鑰長度及協定世代差異,都可能改變資料格式。
先檢查 Method 與 Password,再檢查額外傳輸
手動新增時,應依據現有伺服器資料逐項核對 Address、Port、Method 和 Password。Address 可能是網域名稱,也可能是 IP;Port 是該協定實際監聽的連接埠;Method 應選擇完全相符的加密方法;Password 則須完整保留大小寫及字元。Password 中出現標點符號,不代表需要自行跳脫或刪除。透過分享連結匯入後,應檢查解析出的欄位,不要直接把整段連結內容填入密碼欄。
部分方法對金鑰格式有特定要求,不能一概視為一般密碼。例如有些方法要求特定長度、特定編碼的金鑰;用戶端顯示為 Password,也不代表任意文字都有效。最穩妥的做法是保留匯入結果,並對照伺服器端的實際設定核對。若匯入後立即出現參數錯誤,應優先檢查格式與方法是否相符;若能嘗試連線卻一直沒有資料,再區分是網路無法連線還是驗證失敗。
額外外掛或封裝會增加獨立的配對條件。若伺服器要求特定外掛、Host 或 Path,只有主要協定密碼仍不足以建立可用通道;伺服器未啟用的額外層,也不能在用戶端任意開啟。相關選項是否出現及其名稱,應以目前的應用程式介面和伺服器資料為準。遇到無法確認的參數,應回到現有設定來源核對,不要套用其他伺服器的「常見設定」,以免讓問題擴大。
分別驗證 UDP 與加密設定
Shadowsocks 可以承載 UDP 請求,但實際能否使用取決於伺服器支援情況及目前項目的設定。TCP 網頁瀏覽成功、UDP 請求失敗時,應先確認伺服器是否開放相關功能及網路路徑,再觀察應用程式實際使用的目標與連接埠。部分額外傳輸只適用於特定流量類型,不能把主要協定的一般能力直接套用到所有組合。測試時先維持 TCP 基礎連線穩定,再單獨驗證 UDP,可避免反覆修改原本正確的密碼。
在 iPhone 與 iPad 上,連線架構精簡不代表待機時一定比較省電。若應用程式不斷重試失敗的 UDP 請求,或伺服器回應不穩定,導致連線反覆重建,耗電量可能高於正常運作的複雜連線。評估時應維持相同的服務使用量,並觀察完整使用過程。短時間下載速度適合找出明顯瓶頸,卻不適合推估整天的電池表現;從 Wi-Fi 切換到行動網路後,也需要重新確認連線狀況。
這類協定適合現有資料完整、伺服器明確採用 Shadowsocks 的情況。發生問題時,建議依序核對位址解析、監聽連接埠、加密方法、密碼及額外傳輸,不要一開始就替換所有項目。每次只修改一個欄位並重新測試,同時保留最近一次可正常運作的設定。若訂閱更新後同名項目的參數有所變動,也應比較更新前後的實際欄位;顯示名稱相同不代表底層位址、Method 和驗證資料都沒變。
VMess 與 VLESS:先區分協定驗證和外層保護
UUID 看起來相似,不代表連線方式相同
VMess 的設計包含使用者驗證與自身的資料保護機制;VLESS 採用較精簡的身分識別架構,將較多通道保護交由 TLS 等外層方案處理。兩者都可能使用 UUID,但伺服器的處理方式不同,不能只把 Type 從 VMess 改成 VLESS,並保留其他欄位,就當作完成轉換。現有分享資料標示哪一種,就應使用哪一種;只有伺服器同時設定了對應入口,用戶端才能分別建立項目進行比較。
UUID 是身分識別碼,不是伺服器位址,也不是訂閱連結中的任意查詢參數。複製時應檢查是否混入空格、換行或引號,並保留完整內容。VMess 也可能涉及安全選項或舊版相容欄位,這些值應依伺服器資料設定,不要根據舊教學推斷所有伺服器都必須填入同一個數字。VLESS 的驗證較精簡,也不代表可以忽略外層保護;需要 TLS 的入口若關閉 TLS,通常無法如預期建立連線。
傳輸選項應視為一組設定
TCP、WebSocket 等傳輸方式描述代理資料如何承載,並不能取代 VMess 或 VLESS 本身的身分驗證。同一個位址可能有不同入口,其中一個要求 WebSocket,另一個只接受直接的 TCP 連線。選錯傳輸方式時,網路層可能仍顯示連接埠可連線,但後續資料無法正確處理。新增伺服器時,應一併核對傳輸類型與相應的 Host、Path 等參數,避免只修改最上方的單一選項。
WebSocket 的 Path 是伺服器接收請求的路徑,通常必須完全相符,包括開頭的斜線與大小寫;它不是任意的網站目錄。Host 是相關請求中的主機資訊,SNI 則參與 TLS 交握,兩者有時相同,但用途不同。Address 可以指向實際連線入口,Host 與 SNI 則可能是設定要求的名稱;看到三者不同時,不要擅自改成相同值。應依現有資料分別確認,不要用其中一個值覆蓋其他欄位。
TLS 憑證驗證用來確認連線對象的身分,不能以「連得上」為由關閉驗證。憑證網域與預期名稱不符、憑證鏈不完整或裝置時間明顯錯誤,都可能造成交握失敗。應先檢查 SNI、憑證與時間,而不是略過驗證。若入口需要其他交握機制或特定參數組合,也應完整保留匯入結果;介面出現某個選項,不代表所有伺服器都支援該選項。
比較效能時,也要把傳輸額外負擔納入考量
額外封裝與交握會增加第一個請求的處理量,但是否感受得到,取決於連線重複使用、往返時間與服務模式。連續請求重複使用既有連線時,初次建立連線的成本可能被分攤;反覆建立短連線時,交握時間則更明顯。在穩定網路下比較下載速度,也不能直接推論訊號較弱時的表現。iPhone 的日常使用包含背景恢復與網路切換,應至少涵蓋這些過程,再判斷哪種組合較適合目前環境。
遇到「伺服器測試有結果,網頁卻打不開」時,應區分連接埠可達與完整請求成功。先確認 Global Routing 會將目標導向該項目,再檢查 UUID 和 Type,接著核對 TLS 與傳輸欄位。若瀏覽器出現憑證相關錯誤,也要判斷錯誤來自代理入口還是最終網站,兩者使用的不是同一張憑證。記錄具體錯誤和發生階段,比只記下「無法連線」更容易找出需要修改的欄位。
| 欄位組 | 用途 | 檢查方式 |
|---|---|---|
| Type / UUID | 選擇協定並識別使用者 | 與伺服器端的協定及身分資料相符 |
| TLS / SNI | 通道保護與身分驗證 | 核對入口需求與憑證名稱 |
| Host / Path | 符合額外傳輸入口設定 | 分別比對欄位,不可互相取代 |
如果手邊有多種協定入口可選,應優先選擇參數完整且能正確驗證憑證的一組,再比較實際使用體驗;不要因為 VLESS 架構較精簡就斷定一定比較省電,也不要因為 VMess 有自己的保護機制就忽略外層設定。想快速辨識協定名稱,可先閱讀支援的協定快速總覽;本章則用來處理欄位之間的依存關係與失敗狀況。
Trojan、HTTP 與 SOCKS5:驗證成功後還要檢查通道
Trojan 的 Password 與 TLS 各有用途
Trojan 透過 TLS 通道承載代理請求,用戶端先建立符合需求的保護層,再依協定提交驗證與目標資訊。Password 用於代理驗證,憑證用於確認連線對象,兩者不能互相取代。密碼正確但 SNI 錯誤,可能在驗證前就失敗;憑證驗證通過但密碼錯誤,也無法使用代理轉送。因此,排查時應依序判斷網路連線、TLS 交握、協定驗證與目標存取四個階段。
設定時應先核對 Address、Port、Password、TLS 和 SNI,並依現有資料處理額外傳輸。Address 不一定是憑證名稱的來源,尤其透過 IP 連線時,憑證通常仍須依對應網域驗證。若介面提供略過憑證驗證的選項,不應把它當作一般修復方式。應讓伺服器憑證、名稱與用戶端預期相符,如此連線成功才具有明確的身分驗證意義。
Trojan 與其他 TLS 組合在網頁首次開啟時,都可能受到交握往返影響,但不能據此排出固定的速度順序。連線可重複使用多久、伺服器是否及時回應,以及目前網路是否掉封包,都可能比協定標頭大小更重要。行動裝置進入背景後再恢復,原連線未必仍有效;短暫重建不一定代表驗證資料錯誤。應觀察是否能恢復正常請求,而不是把每次建立連線都視為故障。
HTTP 與 SOCKS5 是介面規範,本身不會自動加密連線
HTTP 代理使用 HTTP 相關機制轉送請求;存取 HTTPS 目標時,通常透過 CONNECT 建立通往目標的隧道。必須區分「目標網站使用 HTTPS」和「用戶端至代理入口使用 TLS」:前者保護網站連線,後者保護連往代理入口的連線,兩者設定不同。HTTP 代理允許 CONNECT,也不代表可以連線到任意連接埠;伺服器的存取政策可能限制可連線的目標。
SOCKS5 提供通用的目標連線協商,可使用使用者名稱、密碼及不同位址類型;規範也定義了 UDP 相關機制,但實際伺服器未必有實作或啟用。SOCKS5 本身不會自動加密代理連線上的所有內容,使用者名稱與密碼驗證也不能視為加密層。對於現有入口,應先確認是否額外提供保護通道,以及目前網路的信任範圍,再決定是否適合承載相關服務。
由哪一端解析網域名稱,會影響代理介面的實際結果。以網域名稱還是 IP 將目標交給代理、用戶端 DNS 設定如何運作,以及規則是否先觸發解析,都會改變請求路徑。不要只憑協定名稱就斷定所有 DNS 查詢都會在遠端完成。若只有部分網域連線失敗,應分別檢查網域解析結果、目標位址可達性與代理存取限制;若所有目標都失敗,才優先回頭檢查驗證和入口連線。
依現有用途選擇,不要把通用性當成全功能
HTTP 與 SOCKS5 適用於已有通用代理介面、參數與存取範圍明確的情境。設定 Type 時必須符合入口類型,同一個連接埠不一定同時支援兩種協定。是否允許空白使用者名稱、密碼是否含特殊字元、是否要求特定驗證方式,都應依伺服器資料確認。連線測試能建立通訊端,只代表部分路徑正常;還應實際存取已知可連線的目標,才能驗證驗證與轉送流程。
若應用程式需要即時語音或其他 UDP 功能,不應只因 HTTP 或 SOCKS5 項目能瀏覽網頁,就認為驗證完成。應確認該入口能否承載服務所需的資料類型,並在相同網路下持續測試。若入口明確限定特定目標,應遵守其存取範圍,不要反覆更改用戶端選項,試圖改變伺服器政策。最後的選擇應符合現有服務需求,而不是追求清單上看起來最通用的名稱。
WireGuard:一併核對金鑰、隧道位址與允許範圍
傳送 IP 封包,而非只指定代理目標
WireGuard 著重精簡的 IP 層加密隧道,使用公開金鑰識別對端,並透過 UDP 傳送資料。它不同於提交目標位址的應用程式代理協定;用戶端與伺服器端還必須知道如何分配隧道內部位址,以及如何將目標流量交給正確的對端。在 Shadowrocket 中使用時,外層仍受到應用程式整體接管與路由機制影響,不能把隧道參數的意義完全等同於 Global Routing 模式。
金鑰關係是排查的起點。用戶端 Private Key 必須保密,對應的公開金鑰需在伺服器端登記;用戶端填入的 Peer Public Key 應是伺服器對端的公開金鑰。兩者位置顛倒、複製不完整或仍使用舊公開金鑰,都可能導致交握無法完成。若資料還包含預共享金鑰,兩端也必須一致。不要把伺服器公開金鑰填入用戶端私密金鑰欄位,更不要為了修復連線,把實際使用的私密金鑰放進回報截圖或公開紀錄。
Endpoint、Address 與 Allowed IPs 不可混為一談
Endpoint 是外部網路中連往伺服器的位置,通常由網域名稱或 IP 與 UDP 連接埠組成。Address 是隧道內部使用的位址,不是裝置目前 Wi-Fi 的區域網路位址,也不是伺服器的公開位址。現有設定提供什麼位址與前綴,就應依要求保留;任意換成「看起來沒人用」的私人位址,可能與伺服器路由或位址配置衝突。交握成功只代表金鑰與入口大致可用,不代表內部位址正確。
Allowed IPs 表示對端關聯的目標位址範圍,也會參與相關路由判斷;它不是應用程式層級的網域規則。若範圍設定不完整,交握可能正常,但服務流量不會進入預期的對端;範圍過大,也不能據此推斷 Shadowrocket 的所有請求都會略過 Config 的選擇。應分別核對伺服器項目的隧道設定與應用程式層級策略,並實際測試目標。使用 IPv6 時,還要確認隧道位址、目標範圍與伺服器轉送能力都支援 IPv6。
DNS 是另一項獨立設定。隧道內可以存取某個 IP,卻無法開啟網域時,問題可能出在 DNS 伺服器無法連線,而非 WireGuard 加密。現有設定中的 DNS 位址可能只能透過隧道存取,此時路徑與規則必須允許相關請求。排查時可先區分 IP 位址存取與網域存取,再檢查 DNS 結果;不要用修改金鑰的方式處理解析失敗,也不要因為交握成功就排除路由問題。
依路徑調整 MTU 與保活設定
封裝會占用額外空間,MTU 用於限制相關封包的大小。設定過大時,某些路徑可能發生大型請求卡住、部分網頁載入不完整或持續傳輸異常,但小型請求仍可成功;設定過小則可能降低有效傳輸效率。只有在有證據顯示問題與封包大小有關時,才適合謹慎調整。每次修改前都應保留原值,並比較相同工作;不要從其他網路照搬某個數值,當成所有裝置的固定答案。
Persistent Keepalive 用於在有需要時維持網路映射,但不是提高傳輸量的加速開關。行動網路或某些路由環境可能需要定期活動以維持回傳路徑;保活頻率過高則會增加無線模組喚醒次數。應依現有網路是否發生閒置後無法恢復的情況來判斷,不要預設將間隔設得很短。iPhone 螢幕關閉及切換網路後的表現,也應與前台持續下載分開觀察。
| 欄位 | 所屬層次 | 異常線索 |
|---|---|---|
| Endpoint | 外部連線入口 | UDP 路徑或連接埠無法連線 |
| Private Key / Peer Public Key | 身分與交握 | 金鑰不相符或伺服器端登記失效 |
| Address / Allowed IPs | 隧道位址與範圍 | 交握後服務流量仍無法到達 |
| MTU / Persistent Keepalive | 路徑調整與維持 | 大型請求異常或閒置後無法恢復 |
WireGuard 適用於已具備完整隧道資料,且需要明確 IP 層存取範圍的情境。架構精簡並不代表不需要伺服器轉送、防火牆與位址規劃。若只有 Endpoint 和一組公開金鑰,通常不足以重建完整設定;應向現有設定來源確認缺少的資料。回報問題時可記錄錯誤階段、網路類型與目標範圍,但金鑰及內部存取資料應留在受控環境中。
Hysteria2:先確認 UDP 路徑,再評估頻寬設定
以 QUIC 為基礎,不代表在所有網路環境都更快
Hysteria2 使用以 QUIC 為基礎的傳輸,外層依賴 UDP,並結合 TLS 相關機制建立保護通道。其設計著重不同網路條件下的資料傳送,能承載代理服務,但不代表所有 UDP 網路都有相同效能。部分 Wi-Fi 或行動網路對 UDP 的處理方式與 TCP 不同,可能出現限速、封包遺失或映射變動。若連基本交握都無法完成,應先檢查外層連線能力,不要先調高頻寬參數。
QUIC 的多串流設計有助於減少部分串流間的傳輸層阻塞,但封包遺失仍會消耗頻寬,仍須處理壅塞,用戶端與伺服器也受處理能力限制。應用程式請求是否變快,取決於傳輸特性是否符合實際負載。大型檔案下載改善,不代表訊息待機也更省電;訊號微弱時維持較高傳送速率,也可能增加重傳與發熱,應搭配完整服務流程觀察。
分別核對驗證、憑證與選用參數
基本欄位應核對 Address、Port、驗證資訊和 SNI。伺服器要求哪種驗證資料,就應保留相應格式,不要直接套用其他協定的 UUID 或 Password。若現有資料包含額外混淆設定,用戶端與伺服器必須同時相符;未設定的一端不能單方面啟用。Hysteria2 也不能只因名稱相近,就與其他協定世代共用設定;Type 必須明確對應現有伺服器入口。
憑證驗證仍是必要步驟。連線位址使用 IP 時,SNI 可能仍須填入憑證對應的網域名稱;網域憑證不符、憑證鏈異常或裝置時間錯誤,都可能使連線在驗證前失敗。應依現有伺服器資料核對,不要預設略過驗證。若錯誤與憑證有關,應記錄錯誤類型及預期網域,避免排查時同時修改密碼、連接埠與憑證設定,以致無法判斷哪項修改有效。
上傳與下載頻寬欄位應依目前介面的單位理解,並考量伺服器是否允許相關壅塞控制模式。輸入較大的數值不會增加實際頻寬,反而可能在某些組合中造成排隊、封包遺失或資源競爭。網路可用容量也會隨時間變動,固網標示的速率不等於行動網路當下可持續的傳輸量。沒有明確依據時,應先保留匯入值或目前實作的預設行為,再透過可重複的測試決定是否調整。
分開處理「無法連線」與「連線後不穩定」
完全無法連線時,先確認網域解析結果、UDP 連接埠,以及目前網路是否允許相關路徑,再檢查驗證與 TLS。切換網路後恢復,只能說明兩條路徑的條件不同,不能立刻判定原本的密碼錯誤。可在同一裝置上使用另一個已知正常的網路重新測試,但伺服器欄位應保持不變。只有變數明確時,切換網路才有診斷價值,而不是一次沒有紀錄的偶然嘗試。
已能傳輸但速度不穩時,應觀察封包遺失、持續上傳是否排擠下載,以及裝置溫度和無線訊號變化。上傳接近可用容量時,佇列延遲可能增加,導致網頁或即時服務變差;這和「最高下載速度不足」是不同問題。測試時先暫停其他大量傳輸工作,再分別測試短請求、持續傳輸與即時服務。每次只調整一項相關設定,並記錄原始值以便還原。
Hysteria2 適用於已有相應伺服器、目前網路允許 UDP,且願意依實際服務進行驗證的情況。它並非適用於所有 Wi-Fi、行動網路或待機情境的固定最佳解。若只在前台連續下載時表現良好,還應測試鎖定螢幕後恢復、切換網路及低流量服務;這些情況更接近日常使用。最後保留的設定,應是參數意義清楚、憑證驗證正常且多次測試穩定的一組,而非單次峰值最高的一組。
匯入後的欄位檢查與 Global Routing 分工
匯入成功只代表內容已被識別
Shadowrocket 接受訂閱或分享連結,不代表伺服器目前可用,也不代表所有欄位都符合現有入口。匯入後應先檢查 Type、Address、Port、身分欄位與傳輸設定,再選擇伺服器進行驗證。使用現有訂閱時,應從自己的設定來源取得更新資訊,並留意更新可能覆蓋手動修改。若要長期保留本機調整,應先確認哪些內容由訂閱管理,避免下次更新時誤以為是應用程式自行更改設定。
分享連結與 Subscribe 訂閱用途不同。前者通常描述單一項目,後者可能回傳多個項目並持續更新;兩者也可能使用不同編碼或格式。QR Code 只是另一種承載內容的方式,並不會讓錯誤參數變正確。使用 Scan QR Code 匯入後,仍須核對匯入結果,尤其是含特殊字元的驗證資訊、路徑與額外參數。訂閱網址本身也可能包含存取憑證,應避免出現在公開截圖、紀錄或可分享的問題描述中。
先用模式確認路徑,再用規則決定細部走向
Global Routing 中的 Config、Proxy、Direct 分別代表依設定、代理與直連。Config 依目前啟用的設定規則處理請求;Proxy 主要讓請求走代理路徑;Direct 則用於直連。這三種模式決定請求的去向,不會改變伺服器協定內部的驗證方式。排查特定伺服器時,可先使用明確的代理模式驗證,再回到 Config 檢查分流;測試結束後,應恢復適合日常用途的模式。
| 模式 | 主要用途 | 無法證明的事項 |
|---|---|---|
| Config | 依啟用設定中的規則分配請求 | 特定目標一定經過目前的伺服器 |
| Proxy | 驗證代理路徑與伺服器表現 | 所有應用程式行為都只由協定決定 |
| Direct | 比較目前網路的直連基準 | 代理驗證或傳輸參數正確 |
規則通常依順序比對,前面的明確條件可能先於後面的廣泛條件生效。DOMAIN-SUFFIX 用於比對網域後綴,IP-CIDR 用於比對 IPv4 位址範圍,FINAL 表示前面的規則都未命中時採用的最終策略。規則可以決定走 PROXY 或 DIRECT,卻無法修復錯誤的 Password、UUID 或憑證。若某網域直連正常、使用 Config 時失敗,應先確認命中的策略,再判斷問題出在代理入口還是目標服務。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY
以上只是用於說明比對順序的 .conf 片段,不是完整的日常設定。example.com 是教學用網域,私人網路範圍僅用來展示位址規則;GEOIP 的結果則取決於使用的資料與實際目標位址。應將片段放在正確的 [Rule] 區段中理解,不要貼到 Add Server 的驗證欄位。更完整的區段關係請參閱設定檔 General、Rule、Host 與 URL Rewrite 說明。
DNS 與 On Demand 不屬於協定驗證
DNS 決定網域名稱如何解析,規則決定請求如何傳送;兩者可能互相影響,但都不等同伺服器的 Type。某個網域回傳多個位址時,各位址的可達性可能不同;只修改代理協定名稱無法解決解析錯誤。IPv6 也應分開考量:裝置取得 IPv6 位址,不代表現有伺服器能轉送所有 IPv6 目標。應觀察實際位址類型與請求路徑,再判斷要調整的是 DNS、路由還是伺服器能力。
On Demand 控制符合條件時如何觸發連線,不會把 VMess 轉換成 VLESS,也不能取代 Config 中的規則。若啟用後在網路變動時自動連線,應先檢查觸發條件;若已建立連線但只有部分目標失敗,則應回頭檢查規則、DNS 與協定欄位。分開記錄「何時連線」和「連線後如何分流」,可避免為了修復某個網站而反覆更改自動連線設定。
手動修改前應保留可還原的設定,並確認其中沒有需要公開的敏感資料。應用程式的 Data 可協助確認是否有流量;若有連線紀錄,也能輔助判斷策略與錯誤階段,但流量增加不代表請求最終成功。建議依序檢查欄位是否完整、協定是否相符、外層是否可連線、驗證是否通過、規則是否命中,以及目標是否有回應。每一步有明確結果後再進入下一步,不要同時修改多個層次的設定。
依情境比較速度、耗電與連線穩定性
建立可重複的測試,不要只看單一數字
有效的比較需要固定裝置、網路、測試目標與服務方式,並記錄伺服器項目及 Global Routing 的狀態。如果兩種協定實際使用不同伺服器,測試結果也包含機器負載、出口與路徑差異,不能全部歸因於協定。測試前先暫停明顯的背景傳輸,確認訂閱期間沒有變更項目,再重複進行相同操作數次。記錄異常發生的階段,通常比記錄最高速度更有參考價值。
Connectivity Test 的結果應依目前採用的測試方式解讀;測試未必涵蓋 DNS、完整協定驗證、TLS 與最終網站請求的每個階段。測試耗時較短,不保證影片能持續穩定播放;測試沒有回應,也不一定能單獨證明所有服務都無法使用。應將結果視為初步線索,再以實際請求驗證。若項目在測試清單中正常,但目標頁面無法開啟,接下來應檢查路由、驗證與目標端回應,而非只重複測試。
將日常服務分成三類觀察
網頁與輕量請求應留意首次可用時間及重複存取的一致性。選擇已知正常的目標,分別觀察首次開啟、返回後重新開啟,以及連續瀏覽多個頁面。若首次較慢、之後正常,可能與解析、交握或連線重複使用有關;若始終只有特定目標失敗,應檢查目標路徑與規則。此時優先保留欄位簡單、驗證完整且回應穩定的現有設定,不必追求持續下載的最高速度。
持續下載與影片播放應留意可維持的傳輸量、波動及重試情形。開始時速度快、之後下降,可能與壅塞、伺服器負載或無線網路狀況有關;不能只看開始幾秒的結果。即時服務則更重視延遲變化、封包遺失與 UDP 支援;即使平均傳輸量很高,仍可能發生聲音中斷。若要比較 Hysteria2 與其他現有入口,應讓它們執行相同工作,並確認目前網路允許各自所需的外層傳輸,否則測試條件並不公平。
待機與行動使用應留意鎖定螢幕後恢復、從 Wi-Fi 切換到行動網路,以及長時間低流量運作的情況。應在接近日常使用習慣的時段觀察系統電池用量統計,同時考量螢幕、訊號與其他應用程式活動。短時間測試無法準確區分協定本身的耗電量。若裝置發熱且伴隨明顯上傳或反覆重試,應先找出具體服務與失敗原因;若沒有異常流量,再檢查保活與恢復行為,避免為了省電而破壞原本穩定的連線。
依失敗階段縮小修改範圍
完全無法連線時,依序檢查裝置原本能否連網、Address 是否解析、Port 與外層傳輸是否可連線,再檢查驗證與憑證。連線已開啟但所有目標都失敗時,確認 Global Routing、目前選取的 SERVER、DNS 與規則。只有部分目標失敗時,優先檢查該目標的解析結果、位址類型、命中策略及伺服器存取能力。更多排查步驟請閱讀已連線但網頁無法開啟:逐項排查。
| 現有需求 | 優先核對 | 保留設定的依據 |
|---|---|---|
| 日常瀏覽網頁 | DNS、交握、規則與短請求 | 多次存取都穩定,錯誤原因明確 |
| 持續傳輸 | 持續傳輸量、壅塞與裝置溫度 | 完整工作流程的表現,而非瞬間峰值 |
| 即時服務 | UDP、封包遺失與延遲波動 | 實際服務的連續性 |
| 內部 IP 存取 | 隧道位址、目標範圍與回程路由 | 所需位址可連線,範圍符合預期 |
若有多個入口可選,先排除資料不完整或無法正確完成身分驗證的組合,再依實際工作比較。需要存取內部位址時,可核對完整設定的 WireGuard 隧道範圍;已有通用代理介面時,則依介面能力使用 HTTP 或 SOCKS5;其他協定應依伺服器支援情況與目前路徑選擇。這些情境建議不是固定排名,同一種協定在不同網路及伺服器設定下,結果可能不同。
最終設定應能說明四件事:為什麼選擇這個 Type、每個驗證欄位的來源、哪些請求會進入該項目,以及發生異常時要從哪一層檢查。完成系統查閱後,可返回使用說明,依主要流程再次確認匯入與連線;需要重新確認應用程式來源時,可前往正版三項資訊核驗,核對開發者 Shadow Launch Technology Limited、官方圖示及應用程式 ID 932747118。保留清楚的參數依據與可還原設定,比反覆嘗試未經核對的組合更有幫助。