Shadowrocket 支援哪些協定?Shadowsocks、VMess、VLESS、Trojan、Hysteria2 完整解析

整理 Shadowsocks、VMess、VLESS、Trojan、HTTP/SOCKS5、WireGuard、Hysteria2 的傳輸與加密特性,並說明各協定在 Add Server 中的設定欄位。

本文快速導覽

Shadowrocket(小火箭)支援多種代理與隧道協定,但只知道協定名稱,還不足以完成連線設定。本文適合已有服務商與訂閱的使用者,先釐清協定、傳輸方式與規則的差異,再逐項核對 Add Server 中的位址、連接埠、驗證與 TLS 設定,最後整理匯入、測試及排錯步驟。訂閱請向你的服務商取得。

一、協定、傳輸方式與 Global Routing 的差異

協定決定用戶端與遠端如何驗證、封裝及傳送資料;傳輸方式則決定資料透過 TCP、UDP、WebSocket 或 QUIC 等通道傳送。TLS 負責相關連線層的加密與身分驗證。這些設定不能互相取代:即使兩筆記錄同為 VLESS,傳輸方式、TLS 或伺服器要求不同,參數也可能無法通用。

Home 用來管理及選取連線記錄,Config 用來管理設定檔,Settings 則可調整 App 設定。Home 中的 Global Routing 決定請求要走哪條路徑,不會將 Shadowsocks 服務轉換成 Trojan 服務。Config 會依設定檔中的規則分流;實際結果取決於符合的規則及其目標策略,不是固定讓某類網站一律直連。

設定層範例檢查項目
協定類型Shadowsocks、VMess、TrojanType 必須與伺服器協定一致
傳輸與安全性WebSocket、TLS、QUIC傳輸方式、路徑、網域與驗證參數
路由模式Proxy、Direct、Config、Scene請求實際使用的路徑或場景設定
設定檔規則DOMAIN-SUFFIX、IP-CIDR、GEOIP、FINAL規則順序與目標策略

二、Shadowsocks:核對 Method 與 Password

Shadowsocks 使用預先共享的憑證,並依所選 Method 加密及驗證代理資料。常見的 AEAD Method 包含 aes-128-gcm、aes-256-gcm 和 chacha20-ietf-poly1305。不同 Method 的金鑰要求與協定細節各異,名稱相近不代表相容;若涉及特定擴充功能,也要確認用戶端與伺服器皆支援該功能。

成功儲存只代表記錄格式可被接受,不代表驗證已通過。若位址可連線但請求始終無法傳送,先比對原始參數中的 Method、Password 與附加設定,再檢查 UDP 轉送等功能;不要一次連續更改多個選項,才回頭判斷原因。

三、VMess 與 VLESS:UUID 相似,不代表可以互換

VMess 與 VLESS 都可能使用 UUID 作為使用者識別碼,但驗證與資料處理機制不同。VMess 有自己的驗證與加密機制;VLESS 本身不會加密載荷,必須依伺服器方案搭配 TLS 或其他相應的安全機制。只將 Type 從 VMess 改成 VLESS,並不能完成協定轉換。

檢查項目VMessVLESS
使用者驗證UUID;若原始設定含有 AlterId,也要一併核對UUID;若有 Flow 要求,請依原始參數填寫
協定加密保留伺服器要求的加密設定協定本身不提供載荷加密
底層傳輸依設定檔核對 TCP 或 WebSocket 等項目依設定檔核對 TCP 或 WebSocket 等項目
TLS 參數啟用狀態、Server Name 等設定必須一致安全層設定及相關驗證參數須完整

在 Add Server 選擇對應的 Type 後,先填入 Address、Port 和 UUID,再檢查傳輸與 TLS 相關選項。若使用 WebSocket,也要核對 Host 與 Path;/ws 和 / 是不同路徑,請勿自行簡化。若使用其他安全性擴充功能,應比對完整原始設定,不能只複製位址和 UUID。

重點:保留完整參數

同一筆記錄匯入後若無法連線,先逐項比對服務商提供的原始設定,包括 Type、傳輸方式、Path 和安全層參數;不要先切換協定或關閉身分驗證。

四、Trojan 與 HTTP/SOCKS5:分辨驗證與加密

Trojan 通常透過 TLS 保護傳輸,並以 Password 驗證。在 Add Server 中,請核對 Type、Address、Port、Password 及 TLS 相關設定。連線位址與憑證身分不一定是同一個字串:Address 可能是 IP,而 Server Name 應符合伺服器要求及憑證身分。不要只因填了 IP,就任意將 Server Name 也改成 IP。

HTTP 與 SOCKS5 是通用代理協定。HTTP 代理可透過 CONNECT 建立通道,但 CONNECT 本身不代表用戶端與代理伺服器之間的連線已加密;SOCKS5 的使用者名稱與密碼驗證也不會自動加密傳輸。目標網站使用 HTTPS,與連線至代理端點的這一段是否受 TLS 保護,是兩個不同層面。

五、WireGuard 與 Hysteria2:也要檢查 UDP 是否可用

WireGuard 是以 UDP 為基礎的加密隧道協定,透過公私鑰建立對等連線。它不使用 VMess 的 UUID,也不採用 Trojan 的 Password 結構。手動設定時,請依既有設定核對本機 Private Key、隧道位址、遠端 Public Key、Endpoint 及必要的路由參數;若有提供 Pre-shared Key,也必須保留。私鑰屬於敏感資訊,請勿放入公開截圖。

Hysteria2 以 QUIC 為基礎,底層依賴 UDP,並使用 TLS 保護連線。在 Add Server 選擇 Hysteria2 後,請核對位址、連接埠、驗證資訊及 Server Name 等安全設定。若原始設定還包含混淆參數,也須一併填妥。網路允許 TCP 443,不代表同一網路也允許 UDP 443。

協定重要參數連線失敗時優先檢查
WireGuardPrivate Key、Public Key、隧道位址、Endpoint金鑰配對、UDP 可達性、隧道路由及位址是否衝突
Hysteria2驗證資訊、連接埠、Server Name、選用的混淆設定UDP 是否受限、驗證資訊是否相符、TLS 身分驗證是否通過

協定名稱無法直接預測實際速度。延遲、封包遺失、頻寬限制、伺服器負載及目前網路的 UDP 政策都可能影響結果。若某筆 Hysteria2 記錄在行動網路可用,連上特定 Wi-Fi 後卻逾時,可將「網路路徑或 UDP 限制」列為檢查方向,但單憑這個現象還無法確定原因。

六、在 Add Server 手動設定與透過 Subscribe 匯入

單筆記錄適合逐項核對參數,訂閱則適合批次匯入及後續更新。訂閱位址是取得記錄的入口,不是遠端代理的 Address。以下的 https://example.com/sub?token=xxxx 僅為格式範例,不能用於連線;實際訂閱請向你的服務商取得。

  1. 開啟新增頁面

    進入 Home,點選右上角「+」開啟 Add Server。若要手動設定,請先在 Type 選擇與原始參數相符的協定。

  2. 填寫連線設定

    依協定填入 Address、Port 及對應的驗證項目。接著核對 TLS、Server Name、傳輸方式和 Path,不要用常見預設值取代伺服器要求。

  3. 匯入訂閱

    若已有訂閱,請在 Add Server → Type 選擇 Subscribe,將完整訂閱位址填入 URL,儲存後等待取得記錄。請勿將訂閱位址填入個別協定的 Address。

  4. 核對並測試

    返回 Home,確認匯入數量及各筆記錄的 Type,選取一筆記錄並連線。再前往明確的測試目標,分辨延遲測試結果與實際請求結果。

  5. 保留更新來源

    若要同步服務商的調整,請在 Home 更新訂閱。更新後再次確認記錄是否存在;不要將訂閱產生項目的本機修改視為長期保存方式。

七、協定設定正確後,仍須檢查 Global Routing

連線記錄測試正常,但某個網站無法連線時,先確認該請求是否真的經過所選記錄。Global Routing 的 Config 會執行設定檔中的規則;例如請求符合前面的 DOMAIN-SUFFIX 後,後面的 FINAL 就不會再處理該請求。IP-CIDR 用於比對 IP 網段,GEOIP 則依目標 IP 所屬地區比對,兩者都不是選擇協定的開關。

Config:依設定檔規則分流

建議

使用已核對的設定檔,依規則順序選擇目標策略。未符合前面規則的請求通常由 FINAL 處理,最終路徑取決於設定檔內容。

適用情境:已有明確分流需求,並已核對規則的日常使用

Proxy:測試代理路徑

讓 Shadowrocket 處理的請求使用代理路徑,暫時降低規則分流對測試的影響。但這無法修復無效密碼、TLS 錯誤或遠端無法連線等問題。

適用情境:暫時確認故障是否與 Config 規則有關

Direct:測試直連路徑

使用直連路徑,對照目前網路連線至同一目標的狀況。選取 Direct 後網頁能開啟,不代表代理記錄已成功連線。

適用情境:比較直連與代理的結果,縮小排錯範圍

Scene 用來依情境整理相關設定,並不是新的協定。Settings → On Demand 可管理自動連線條件,也不會變更連線記錄的 Type。排查時先維持測試條件一致,檢查 Global Routing 與目前生效的設定檔,再單獨確認是否有 On Demand 自動連線行為。

八、常見協定設定問題

有位址和連接埠,為什麼還是無法使用?

進入 Home,開啟對應記錄的編輯頁面,檢查 Type 與驗證項目。Shadowsocks 還需要 Method 和 Password;VMess/VLESS 需要 UUID 及傳輸參數;WireGuard 則需要金鑰與隧道設定。位址和連接埠只用來識別遠端入口。

延遲測試有數值,為什麼網頁還是無法開啟?

延遲測試成功不代表能成功連線至目標網站。先在 Home 檢查 Global Routing,暫時使用 Proxy 與 Config 進行比較;若只有 Config 會失敗,請檢查規則。兩種模式都失敗時,再核對 DNS、驗證與 TLS,別只憑延遲數值就認定協定可用。

TLS 發生錯誤,可以直接略過驗證嗎?

先核對裝置時間、Address、Server Name 與伺服器憑證是否相符,再向你的服務商確認完整安全參數。略過驗證會降低身分驗證的安全性,不應做為一般修復方式,也無法解決密碼錯誤或傳輸路徑不符的問題。

訂閱更新後,手動修改的內容為什麼不見了?

訂閱產生的記錄可能會在更新時重新建立。返回 Home 檢查訂閱來源與更新結果,並請服務商確認必須長期保留的連線需求;若要獨立測試,請另建手動記錄,不要依賴修改訂閱項目來保存設定。

支援的協定很多,應該選哪一種?

先使用服務商明確提供且參數完整的協定。若要比較,請在同一裝置、同一網路及相近時段連線至同一目標,記錄連線成功率、請求耗時與錯誤類型,每次只改變一個因素。不要只憑協定名稱判斷穩定性。

前往 App Store