Shadowrocket 支援哪些協定?Shadowsocks、VMess、VLESS、Trojan、Hysteria2 快速總覽

快速了解 Shadowsocks、VMess、VLESS、Trojan、HTTP/SOCKS5、WireGuard、Hysteria2 的傳輸特性,以及在 Add Server 中需要填寫的欄位。

本文速覽

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 流量也能通過。

以 WebSocket 為例,伺服器位址、HTTP Host、Path 與 TLS 使用的伺服器名稱各有不同用途。Address 用來連上連線入口;Host 與 Path 用於應用層轉送;TLS 伺服器名稱則用於交握與憑證身分核對。這些值有時相同,但不能因此一律改成同一個值。

Trojan、HTTP 與 SOCKS5 的安全界線

Trojan 的常見設定會以 TLS 保護用戶端與伺服器之間的連線。Password 正確不代表 TLS 一定能成功:憑證過期、憑證名稱與設定不符,或裝置時間異常,都可能在密碼驗證前中斷連線。請核對原始參數與憑證條件,而不要把關閉憑證驗證當成一般修復方式。

443
TLS 服務常見的連接埠範例,並非所有協定的固定 Port。
1080
SOCKS5 常見的連接埠範例,仍須依實際監聽連接埠填寫。
128 bit
UUID 的長度;用於 VMess / VLESS 身分識別,與加密強度無關。

結論:連接埠不代表協定

即使拿到 443 連接埠,也要先確認 Type、驗證方式與 TLS 參數;不要把所有使用 443 的項目都當成 Trojan 填寫。

HTTP 代理可透過 CONNECT 為 HTTPS 目標建立隧道,但這不代表用戶端到代理伺服器這一段一定使用 TLS。SOCKS5 本身也不提供傳輸加密;使用者名稱與密碼驗證不能取代加密層。連線至 HTTPS 目標時,目標連線的 TLS 與代理入口的安全性是兩個層次,應分開理解。

Hysteria2 與 WireGuard 的 UDP 條件

Hysteria2 與 WireGuard 都依賴底層 UDP,但兩者並非相同的隧道。Hysteria2 以 QUIC 為基礎,WireGuard 則使用自己的加密隧道機制。目前使用的網路若封鎖相關 UDP 連接埠,兩者都可能無法建立有效連線;只檢查 TCP 連接埠是否開放,無法驗證這些服務。

設定項目Hysteria2WireGuard
身分資料伺服器設定的驗證資料,常見為密碼。本機私鑰與對端公鑰;若設定要求,也需提供預先共用金鑰。
安全層核對 TLS 名稱、憑證與選用的混淆設定。核對金鑰配對、隧道位址與對端設定。
網路條件入口 UDP 連接埠必須可連線。Endpoint 對應的 UDP 連接埠必須可連線。
其他參數頻寬值、連接埠範圍等請依既有設定填寫。Allowed IPs、DNS、MTU 等請依隧道規劃填寫。

WireGuard 的隧道位址不是伺服器的公網位址,Private Key 也不是對端的 Public Key。Allowed IPs 涉及隧道內的目標範圍,不能與 Shadowrocket 的 Global Routing 混為一談。匯入後不要任意更換隧道位址,否則即使端點可連線,也可能沒有回傳流量。

Hysteria2 的頻寬參數不是測速結果,也不是越大越好。若需要填寫,請採用既有設定要求的數值。若同一設定在 Wi-Fi 下可用,切換到行動網路後卻逾時,可先記錄切換前後的狀況,再核對 UDP 是否可連線;單次失敗不足以判斷協定本身的速度或穩定性。

在 Add Server 新增並驗證連線

以下步驟以已持有完整伺服器參數為前提。若既有訂閱包含完整項目,通常建議優先使用原始匯入內容,減少手動漏填。手動新增前請記錄原始設定;測試時一次只修改一個欄位,方便判斷錯誤來源。

  1. 開啟新增頁面

    進入 Home → 點選右上角的 +,開啟 Add Server。在 Type 中選擇與既有伺服器相同的協定,不要只憑名稱相似就猜選。

  2. 填寫連線入口

    填寫 Address 與 Port。Address 使用提供的網域或 IP;除非欄位明確要求完整 URL,否則不要加上網頁路徑或協定前綴。

  3. 核對驗證資料

    依類型填寫 Password、UUID 或金鑰資料。逐項核對 Method、TLS 名稱、傳輸方式、Host 與 Path;未提供的擴充設定不要自行猜測。

  4. 儲存並選取

    儲存後返回 Home,點選該伺服器,確認左側出現選取標記。開啟連線開關,首次使用時依系統提示允許加入 VPN 設定。

  5. 測試連線狀態

    在 Home 執行 Connectivity Test,再前往需要驗證的目標。記錄測試是否逾時、是否出現 TLS 錯誤,或是只有特定目標無法開啟,不要只記下「已連線」。

Connectivity Test 可提供連線狀態的線索,但不代表所有 App、所有目的地與 UDP 流量都通過測試。若為排查而變更 Global Routing,測試後應還原原有設定,避免長期保留暫時性的診斷設定。

分開檢查連線結果與規則分流

伺服器協定決定如何建立連線,Global Routing 則決定請求採用哪種路由模式。Proxy 用於代理路由,Direct 用於直接連線,Config 依目前設定的規則處理,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 代理的網頁測試通過,不代表即時通訊流量一定可用。

更新訂閱會改變手動修改的參數嗎?

訂閱管理中的項目可能在更新時依遠端內容重新建立或覆寫。修改前請保存原始參數,更新後重新核對選取項目與擴充欄位;需要長期保留的差異應明確記錄,不要把一次手動修改當成訂閱端設定已變更。

App Store 正版核對