Shadowrocket 支援哪些協定?Shadowsocks、VMess、VLESS、Trojan、WireGuard、Hysteria2 完整介紹

快速了解 Shadowrocket 支援的協定、傳輸特性,以及在 Add Server 中各欄位的填寫方式。

本文重點

Shadowrocket(小火箭)支援多種代理與隧道協定,但用戶端無法將同一台伺服器任意切換成另一種協定。本文適合已有服務商提供的設定、準備手動新增或核對匯入結果的使用者:先辨認協定與傳輸層,再逐項確認位址、連接埠、驗證資訊與 TLS 參數,最後透過 Connectivity Test 和實際網頁請求進行驗證。

一、支援哪些協定:先區分協定、傳輸與分流

Shadowsocks、VMess、VLESS、Trojan、HTTP、SOCKS5、WireGuard、Hysteria2 都在本文的核對範圍內。它們解決的問題並不完全相同:有些是代理協定,有些是加密隧道;同一種代理協定也可能採用不同的傳輸方式。新增時應依據現有設定選擇 Type,不要只憑名稱、連接埠或預期速度猜測。

協定類型與 Global Routing 是兩個層次的設定。前者決定用戶端如何連線至伺服器,後者決定哪些請求使用代理、哪些直接連線。協定設定正確但路由採用 Direct,目標請求仍不會經過所選伺服器;規則設定正確,但伺服器驗證失敗,也無法建立代理連線。

2 類
本文涉及的底層傳輸:TCP 與 UDP
4 項
Global Routing:Proxy / Direct / Config / Scene
協定傳輸方式與安全界線新增前應備妥的參數
Shadowsocks使用設定指定的加密方式;TCP 與 UDP 的支援情況須由連線兩端配合。伺服器位址、連接埠、Password、Method,以及現有設定要求的其他參數。
VMess驗證參數與承載傳輸分別設定;可能涉及 WebSocket、TLS 等選項。位址、連接埠、UUID、加密選項與傳輸參數。
VLESS此協定本身不提供資料加密,安全性取決於設定採用的安全層。位址、連接埠、UUID,以及伺服器要求的 TLS、傳輸方式與 Flow 等參數。
Trojan通常在 TLS 連線中傳輸代理資料;使用密碼進行驗證。位址、連接埠、Password、TLS 伺服器名稱及相關傳輸設定。
HTTP / SOCKS5基礎代理協定;協定名稱本身不代表連線已加密。位址、連接埠,以及伺服器要求的使用者名稱、密碼與安全連線選項。
WireGuard以 UDP 為基礎的加密 IP 隧道,使用金鑰而非一般使用者名稱進行驗證。本端私密金鑰、隧道位址、對端公用金鑰、Endpoint,以及路由參數。
Hysteria2以 QUIC 為基礎,底層使用 UDP,並涉及 TLS 驗證。位址、連接埠、驗證資訊、SNI,以及設定要求的混淆參數。

結論:先核對完整參數,再測試連線

取得「位址和連接埠」不代表設定資料已完整。請先向現有設定來源確認 Type、驗證方式與傳輸層;若缺少 UUID、金鑰或 TLS 伺服器名稱,請勿以其他欄位代替。

二、Shadowsocks、VMess、VLESS 與 Trojan 的欄位差異

這四種類型常見於匯入結果,但驗證欄位不能互換。Shadowsocks 的 Password 不等於 VMess 或 VLESS 的 UUID;Trojan 的 Password 也不能填入伺服器網域名稱。編輯現有項目時,應保留原始設定,再逐項修改,避免一次更動多個變數,導致無法判斷失敗原因。

部分附加欄位會依 Type、傳輸選項與平台介面而異。只填寫現有設定明確提供的項目;若欄位沒有顯示,請先檢查前置選項,不要把內容貼到備註或密碼欄位。憑證驗證失敗時,應檢查裝置時間、伺服器名稱與憑證鏈,不要將關閉驗證當成一般處理方式。

三、如何判斷 HTTP、SOCKS5、WireGuard 與 Hysteria2

HTTP 與 SOCKS5 適合依現有代理端點的功能使用。HTTP 代理可透過 CONNECT 建立隧道,但這不代表用戶端到代理伺服器之間已加密。SOCKS5 的 UDP 機制需要用戶端與伺服器共同支援,不能只因 Type 設為 SOCKS5,就認定所有 UDP 請求都能使用。

WireGuard 與 Hysteria2 都仰賴底層 UDP 可連通,但用途與驗證方式不同。WireGuard 是 IP 隧道;Hysteria2 則透過 QUIC 傳輸代理流量。網路允許 TCP,不代表也允許 UDP,因此「其他協定可以連線」並不能排除這兩種類型受到網路限制。

核對項目檢查內容常見混淆點
HTTP / SOCKS5確認伺服器是否要求 Username 與 Password;並確認連線至代理端點時是否另有 TLS 要求。網站使用 HTTPS,不代表代理端點本身使用 TLS;Username 與 Password 不要填反。
WireGuard 金鑰Private Key 屬於本端,Peer Public Key 屬於對端;若有提供 Preshared Key,也必須一致。不可將本端公用金鑰填成本端私密金鑰,也不可用一般密碼取代金鑰。
WireGuard 位址與路由核對隧道 Address、Endpoint 與 Allowed IPs。0.0.0.0/0 表示所有 IPv4 位址範圍。Address 是隧道內的位址,不是伺服器的公網位址;Allowed IPs 也不是網站網域清單。
Hysteria2核對驗證資訊、UDP 連接埠、SNI、憑證驗證,以及原設定是否要求混淆。Hysteria 與 Hysteria2 不能只靠變更 Type 互換;混淆密碼也不一定等於驗證密碼。

WireGuard 的 Allowed IPs 是隧道層級參數,與 Shadowrocket 在 Config 中使用的網域分流規則不同。Hysteria2 的實際表現則會同時受到 UDP 連通性、封包遺失、伺服器負載與設定影響。不要只憑協定名稱推測速度,也不要在未測量前填入過高的頻寬參數。

四、在 Add Server 中新增並驗證:四個步驟

以下以 Home、Config、Settings 這組介面為例。手動新增前請備妥完整參數;若已有訂閱或完整設定,建議保留原始匯入結果,再透過編輯介面核對。本文僅說明如何使用現有設定,不提供或推薦連線資源。

  1. 選擇類型

    前往 Home → 點選右上角「+」,開啟 Add Server,並在 Type 中選擇與原設定相符的協定。不要只因兩個項目都使用 443 連接埠,就選擇相同的 Type。

  2. 填寫驗證資訊

    填入伺服器位址與連接埠,再依類型填寫 Password、UUID 或金鑰。連接埠請填入原設定指定的數字,不要加上協定前綴;複製驗證資訊後,請檢查前後空格與換行。

  3. 核對傳輸設定

    依原設定填寫 TLS、SNI、WebSocket 的 Host 與 Path 等項目;WireGuard 則須核對隧道與對端參數。儲存後返回 Home,將該伺服器設為預設,並確認選取標記確實位於目標項目上。

  4. 驗證連線

    前往 Home → Global Routing,暫時選擇 Proxy,開啟連線開關並執行 Connectivity Test。接著瀏覽自己已知可正常連線的 HTTPS 網頁;驗證完成後,恢復原先使用的 Config 或 Scene,並再次檢查實際請求。

Connectivity Test 的結果只能用來判斷測試目標的連線狀況,不能證明所有應用程式、所有協定流量都正常。若測試通過但某個應用程式仍失敗,請進一步確認該應用程式使用 TCP 或 UDP、請求是否符合預期策略,以及 DNS 是否取得可用結果。

五、訂閱、設定與協定項目的用途

訂閱主要用於匯入及更新現有伺服器資訊;Config 中的設定檔則主要包含分流與相關設定。更新訂閱後,項目的位址、驗證資訊或傳輸參數可能改變,因此不要把由訂閱管理的項目當成永遠不變的手動副本。若要嘗試修改,請先保留原始資訊,避免下次更新覆蓋後失去比對依據。

以下是用來理解順序的規則片段,並非完整設定,也不含伺服器資訊。PROXY 必須對應至設定中可用的代理策略;IP-CIDR 使用文件示範網段,不應直接作為實際服務的分流依據。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY

規則通常依由上而下的順序比對。若目標網域較早符合 DIRECT,後面的 FINAL 就不會再將該請求交由代理處理。反過來說,若暫時切換至 Proxy 測試時可以存取,恢復 Config 後卻失敗,應先檢查規則比對結果與所選策略,而不是立刻重新填寫伺服器驗證資訊。

六、常見問題:依失敗位置縮小排查範圍

位址和密碼都一樣,為什麼換了 Type 就連不上?

Type 決定交握方式與驗證格式。同一位址、同一連接埠,不代表伺服器同時提供多種協定。請回到 Home 編輯伺服器,還原原設定的 Type,再核對 Password 或 UUID;不要把更改 Type 當成速度最佳化方式。

VMess 或 VLESS 連線逾時,應先檢查哪裡?

先在 Home 核對 Address、Port 與 UUID,再確認傳輸方式。若使用 WebSocket,請檢查 Host 與 Path;若使用 TLS,請檢查 SNI 與裝置時間。每次只修改一組參數,並重新執行 Connectivity Test,以區分連線逾時、明確的驗證錯誤與憑證錯誤。

Hysteria2 在 Wi-Fi 下連線失敗,改用行動網路卻正常?

先保持伺服器與參數不變,只切換網路並重複測試。若差異持續存在,請檢查連線失敗的網路是否限制該 UDP 連接埠,並查看連線記錄中的逾時位置。不要先修改密碼;使用其他現有可用項目作為對照,也不能直接證明 UDP 連線正常。

測試通過了,為什麼網頁還是無法開啟?

先確認 Home 選取的是剛才測試的伺服器,再查看 Global Routing 是否設為 Direct。暫時切換至 Proxy 重新測試:若恢復存取,請繼續檢查 Config 的規則與策略;若仍然失敗,再核對 DNS、TLS 錯誤,以及目標網站是否可連線。不要把單次測試通過視為所有請求都成功。

排查記錄至少應保留協定類型、網路類型、失敗情況與具體錯誤資訊。分享記錄前,請移除訂閱網址、密碼、UUID 與私密金鑰;需要說明欄位關係時,只寫欄位名稱。這樣既能釐清問題發生於傳輸、驗證或分流階段,也能避免重複建立相同設定。

免費下載 Shadowrocket