Shadowrocket(小火箭)支援多種代理與隧道協定。本文適合已有服務商提供的伺服器參數或訂閱的使用者:先比對各協定的驗證方式與傳輸條件,再依序進入 Home → + → Add Server 核對欄位,最後區分連線失敗、TLS 錯誤與規則未命中。協定必須與伺服器端設定一致,不能只修改 Type,就把現有伺服器轉換成另一種協定。
支援的協定與欄位速查
手動新增時,先在 Add Server 的 Type 選擇協定,再填寫該類型顯示的欄位。不同類型的驗證資料不能互換:Shadowsocks 的 Password 不是 VMess 的 UUID,WireGuard 金鑰也不能填入 Trojan 的 Password。以下整理常見設定重點,並非完整協定清單;支援的擴充功能與欄位名稱請以實際介面為準。
| 協定 | 傳輸與驗證特性 | 新增時優先核對 |
|---|---|---|
| Shadowsocks | 透過指定的加密方法與密碼驗證;可承載 TCP,UDP 則需兩端支援。 | Address、Port、Method、Password;使用外掛程式時,也需填入相應參數。 |
| VMess | 以 UUID 識別使用者,傳輸方式與 TLS 依設定而定。 | Address、Port、UUID、加密選項、傳輸方式與 TLS 參數。 |
| VLESS | 以 UUID 驗證;協定本身不具備與 Shadowsocks 相同的負載加密層。 | UUID、傳輸方式,以及伺服器要求的 TLS 或其他安全層參數。 |
| Trojan | 常見部署方式是透過 TLS 連線至伺服器,並以密碼驗證。 | Password、TLS 伺服器名稱與憑證驗證條件。 |
| HTTP / SOCKS5 | 通用代理協定;是否驗證、是否加密取決於設定。 | Address、Port、驗證資料;HTTP 還需確認是否使用 TLS。 |
| WireGuard | 以 UDP 為基礎的加密隧道,使用公私鑰配對。 | 本機 Private Key、隧道位址、對端 Public Key、Endpoint 與路由範圍。 |
| Hysteria2 | 以 QUIC 為基礎,底層依賴 UDP,並使用 TLS 與設定的驗證資料。 | Address、Port、驗證密碼、TLS 伺服器名稱;另需核對頻寬與混淆參數。 |
這些欄位沒有通用的預設值。Address 與 Port 必須對應既有伺服器的監聽位址;是否啟用 TLS、傳輸是否使用 WebSocket,也必須依原始設定填寫。本文提及的連接埠範例僅用於說明欄位用途,不能取代伺服器參數。
Shadowsocks、VMess 與 VLESS 的差異
Shadowsocks 的 Method 與 Password 必須成對使用。即使密碼相同,只要 Method 不同,仍可能導致驗證或解密失敗。伺服器是否支援 UDP、是否要求使用外掛程式,是另外的條件;不能因為網頁能開啟,就認定即時語音或其他 UDP 流量也能通過。
- Shadowsocks:逐一核對 Method,複製 Password 時避免帶入尾端空格。若原始設定包含外掛程式資訊,不能只保留位址與密碼。
- VMess:核對 UUID、加密選項與傳輸參數。驗證與時間有關;若裝置時間明顯不準,請先在系統設定中檢查是否已開啟自動設定時間。
- VLESS:核對 UUID 與安全層,不要因名稱而推定「不需要加密設定」。伺服器要求的 TLS、傳輸方式與擴充參數仍須完整相符。
以 WebSocket 為例,伺服器位址、HTTP Host、Path 與 TLS 使用的伺服器名稱各有不同用途。Address 用來連上連線入口;Host 與 Path 用於應用層轉送;TLS 伺服器名稱則用於交握與憑證身分核對。這些值有時相同,但不能因此一律改成同一個值。
Trojan、HTTP 與 SOCKS5 的安全界線
Trojan 的常見設定會以 TLS 保護用戶端與伺服器之間的連線。Password 正確不代表 TLS 一定能成功:憑證過期、憑證名稱與設定不符,或裝置時間異常,都可能在密碼驗證前中斷連線。請核對原始參數與憑證條件,而不要把關閉憑證驗證當成一般修復方式。
結論:連接埠不代表協定
即使拿到 443 連接埠,也要先確認 Type、驗證方式與 TLS 參數;不要把所有使用 443 的項目都當成 Trojan 填寫。
HTTP 代理可透過 CONNECT 為 HTTPS 目標建立隧道,但這不代表用戶端到代理伺服器這一段一定使用 TLS。SOCKS5 本身也不提供傳輸加密;使用者名稱與密碼驗證不能取代加密層。連線至 HTTPS 目標時,目標連線的 TLS 與代理入口的安全性是兩個層次,應分開理解。
- HTTP:確認入口是一般 HTTP 代理,還是使用 TLS 的代理,並依要求填寫驗證資料。
- SOCKS5:確認伺服器是否允許 UDP 轉送,以及是否需要驗證;TCP 測試成功不代表 UDP 可用。
- Trojan:保留正確的 TLS 伺服器名稱;即使 Address 是 IP,也不能擅自把伺服器名稱改成該 IP。
Hysteria2 與 WireGuard 的 UDP 條件
Hysteria2 與 WireGuard 都依賴底層 UDP,但兩者並非相同的隧道。Hysteria2 以 QUIC 為基礎,WireGuard 則使用自己的加密隧道機制。目前使用的網路若封鎖相關 UDP 連接埠,兩者都可能無法建立有效連線;只檢查 TCP 連接埠是否開放,無法驗證這些服務。
| 設定項目 | Hysteria2 | WireGuard |
|---|---|---|
| 身分資料 | 伺服器設定的驗證資料,常見為密碼。 | 本機私鑰與對端公鑰;若設定要求,也需提供預先共用金鑰。 |
| 安全層 | 核對 TLS 名稱、憑證與選用的混淆設定。 | 核對金鑰配對、隧道位址與對端設定。 |
| 網路條件 | 入口 UDP 連接埠必須可連線。 | Endpoint 對應的 UDP 連接埠必須可連線。 |
| 其他參數 | 頻寬值、連接埠範圍等請依既有設定填寫。 | Allowed IPs、DNS、MTU 等請依隧道規劃填寫。 |
WireGuard 的隧道位址不是伺服器的公網位址,Private Key 也不是對端的 Public Key。Allowed IPs 涉及隧道內的目標範圍,不能與 Shadowrocket 的 Global Routing 混為一談。匯入後不要任意更換隧道位址,否則即使端點可連線,也可能沒有回傳流量。
Hysteria2 的頻寬參數不是測速結果,也不是越大越好。若需要填寫,請採用既有設定要求的數值。若同一設定在 Wi-Fi 下可用,切換到行動網路後卻逾時,可先記錄切換前後的狀況,再核對 UDP 是否可連線;單次失敗不足以判斷協定本身的速度或穩定性。
在 Add Server 新增並驗證連線
以下步驟以已持有完整伺服器參數為前提。若既有訂閱包含完整項目,通常建議優先使用原始匯入內容,減少手動漏填。手動新增前請記錄原始設定;測試時一次只修改一個欄位,方便判斷錯誤來源。
-
開啟新增頁面
進入 Home → 點選右上角的 +,開啟 Add Server。在 Type 中選擇與既有伺服器相同的協定,不要只憑名稱相似就猜選。
-
填寫連線入口
填寫 Address 與 Port。Address 使用提供的網域或 IP;除非欄位明確要求完整 URL,否則不要加上網頁路徑或協定前綴。
-
核對驗證資料
依類型填寫 Password、UUID 或金鑰資料。逐項核對 Method、TLS 名稱、傳輸方式、Host 與 Path;未提供的擴充設定不要自行猜測。
-
儲存並選取
儲存後返回 Home,點選該伺服器,確認左側出現選取標記。開啟連線開關,首次使用時依系統提示允許加入 VPN 設定。
-
測試連線狀態
在 Home 執行 Connectivity Test,再前往需要驗證的目標。記錄測試是否逾時、是否出現 TLS 錯誤,或是只有特定目標無法開啟,不要只記下「已連線」。
Connectivity Test 可提供連線狀態的線索,但不代表所有 App、所有目的地與 UDP 流量都通過測試。若為排查而變更 Global Routing,測試後應還原原有設定,避免長期保留暫時性的診斷設定。
分開檢查連線結果與規則分流
伺服器協定決定如何建立連線,Global Routing 則決定請求採用哪種路由模式。Proxy 用於代理路由,Direct 用於直接連線,Config 依目前設定的規則處理,Scene 則取決於已設定的場景。伺服器參數正確,不代表每個請求都會經過該伺服器。
- Proxy:可用來確認目標是否走代理路徑,但仍須確認目前選取的伺服器與相關策略設定。
- Direct:目標請求會直接連線,不能以此模式下網頁能否開啟來證明代理伺服器運作正常。
- Config:核對目前 Config 中的規則順序與策略;特定目標可能會被分配至 DIRECT,而非代理。
- Scene:先檢查既有場景的條件與動作,不要把它視為另一種伺服器協定。
在 Config 中,DOMAIN-SUFFIX 用於比對網域後綴,IP-CIDR 用於比對 IP 網段,GEOIP 依 IP 地理位置比對,FINAL 則在前面的規則都未命中時指定最終策略。這些規則會改變流量的去向,無法修正 Password、UUID 或 TLS 名稱錯誤。Settings → On Demand 控制是否依條件建立連線,也不會變更協定驗證資料。
協定選擇與錯誤排查常見問題
哪種協定速度最快,可以直接選它嗎?
請先使用伺服器實際支援的協定,再於相同網路、相近時間及相同目標下進行比較。延遲、封包遺失、伺服器負載與傳輸設定都會影響結果。只在 Type 中改選 Hysteria2 或 WireGuard,無法讓原有伺服器支援這些協定。
匯入後看得到項目,為什麼還是無法連線?
看得到項目只代表內容已成功解析,不代表驗證有效。先在 Home 選取該項目並執行 Connectivity Test,再核對 Address、Port 與協定驗證資料。若內容來自既有訂閱,請依原訂閱更新後再次檢查,避免繼續使用已過期的參數。
出現 TLS 錯誤,需要關閉驗證嗎?
先核對裝置時間、TLS 伺服器名稱與伺服器憑證條件,並確認連線入口沒有填錯。若憑證身分核對失敗,應修正設定或憑證;不要將關閉驗證當成日常設定,也不要試圖以修改密碼解決憑證名稱不符的問題。
網頁能開啟,為什麼語音仍然失敗?
網頁通常主要使用 TCP,語音則可能依賴 UDP。請檢查目前的協定、伺服器與網路是否支援所需的 UDP 轉送,再檢查 Config 的路由去向。HTTP 代理的網頁測試通過,不代表即時通訊流量一定可用。
更新訂閱會改變手動修改的參數嗎?
訂閱管理中的項目可能在更新時依遠端內容重新建立或覆寫。修改前請保存原始參數,更新後重新核對選取項目與擴充欄位;需要長期保留的差異應明確記錄,不要把一次手動修改當成訂閱端設定已變更。