Shadowrocket 支援哪些協定?Shadowsocks、VMess、VLESS、Trojan、Hysteria2 與 WireGuard 一覽

整理 Shadowrocket 支援的 Shadowsocks、VMess、VLESS、Trojan、HTTP/SOCKS5、WireGuard 與 Hysteria2,說明欄位、傳輸方式及適用情境。

本文速覽

Shadowrocket(小火箭)支援多種連線協定,但協定名稱相同,不代表參數可以互換。本文適合已持有服務商提供的服務與連線設定的使用者,從認證、傳輸、加密及路由四個層面說明檢查方式。看完即可判斷要核對 Password、UUID、TLS、UDP 或金鑰欄位,再依照固定步驟匯入並測試連線。本網站不提供、販售或推薦節點與訂閱。

先分清協定、傳輸與分流設定

協定決定用戶端如何與伺服器通訊,Global Routing 則決定流量要交由哪條路徑處理。這是兩組不同的設定:在 Home 新增 Trojan,不會讓所有要求自動改走該項目;在 Config 撰寫規則,也無法補上伺服器缺少的認證資訊。

Shadowrocket 是 Apple 平台上的付費用戶端,主要供 iPhone 和 iPad 使用,唯一取得管道是 App Store。這是閉源商業 App,採一次買斷制;買斷用戶端 ≠ 購買線路方案。系統需求與購買適用範圍請以 App Store 頁面標示為準。

層級常見內容檢查重點
協定與認證Shadowsocks、VMess、VLESS、Trojan類型、密碼或 UUID 須與伺服器一致
傳輸與握手TCP、UDP、WebSocket、TLS、QUIC確認伺服器是否啟用相同的傳輸方式與握手條件
伺服器項目位址、連接埠、認證欄位連線至正確的服務入口
流量分配Global Routing、Config 中的 Rule確認目標要求確實使用待測項目

不能只看連接埠號碼推斷協定。443 常用於 TLS 服務,但填入 443 不會自動啟用 TLS;若伺服器使用其他連接埠,請照既有設定填入數值。以下比較是為了說明參數,不代表依協定名稱排列的效能高低。

Shadowsocks、VMess 與 VLESS:先核對認證欄位

這三類設定都應先確認 Type 與認證參數相符,再檢查其他傳輸設定。不要把某個項目的位址和密碼直接填到另一種 Type;伺服器不會因用戶端變更選項,就跟著改變支援的協定。

協定重要欄位加密與傳輸重點
Shadowsocks伺服器、連接埠、Password、加密方式加密方式須相符;UDP 能否使用取決於兩端設定與網路條件
VMess伺服器、連接埠、UUID、加密與傳輸參數認證有時間要求;使用 WebSocket 或 TLS 時,也須核對對應欄位
VLESS伺服器、連接埠、UUID、傳輸與安全參數協定本身不會加密載荷;安全性取決於設定採用的外層機制

Shadowsocks:加密方式不能靠猜

Shadowsocks 的 Password 和加密方式必須一併核對。例如,既有設定標示 aes-128-gcm,就不能自行改成 chacha20-ietf-poly1305。部分加密方式對金鑰格式另有要求,尤其不能把所有認證資料都當成任意長度的一般密碼。請先保留匯入結果,再逐欄比對既有設定。

VMess:UUID 與系統時間都要正確

VMess 使用 UUID 作為重要認證資訊,裝置時間若明顯不準,可能導致認證失敗。排查時先確認系統日期與時間正確,再檢查 UUID 是否完整。若伺服器使用 WebSocket,也要核對 Path 與 Host;若同時使用 TLS,則須再檢查伺服器名稱與憑證驗證條件。這些參數無法從 UUID 推算出來。

VLESS:認證不等於加密

VLESS 的 UUID 用於識別身分,不代表傳輸內容已加密。請依照既有設定檢查 TLS 或其他支援的安全參數;若設定包含 Flow,也必須確認兩端都支援並採用相同設定。VLESS 和 VMess 都使用 UUID,不表示只要更改 Type 就能沿用其他參數。

Trojan 與 Hysteria2:分別檢查 TLS 與 UDP

檢查 Trojan 時,重點在密碼與 TLS;Hysteria2 還須確認網路能否傳輸 UDP。兩者都不能只憑「連接埠連得上」,就判定協定握手與實際要求已成功。

協定連線特性優先檢查
Trojan常見部署方式是在 TLS 連線中完成認證與代理通訊Password、TLS 伺服器名稱、憑證與系統時間
Hysteria2以 QUIC 為基礎,底層仰賴 UDP認證資訊、TLS、UDP 可連通性,以及既有設定中的其他參數

Trojan 使用網域憑證時,連線位址與 TLS 驗證使用的伺服器名稱可能不同,應依設定分別填寫。例如,伺服器位址是 IP,但憑證是簽發給網域名稱,就不能直接用該 IP 取代憑證名稱。遇到憑證錯誤時,請檢查名稱、憑證有效性和系統時間,不要把關閉驗證當成預設的修正方式。

Hysteria2 不是把其他協定的傳輸選項切換成 UDP。它有自己的握手與認證流程,不能和其他世代的 Hysteria 設定混用。如果目前網路限制 UDP,即使一般網頁和 TCP 服務都能連線,Hysteria2 仍可能無法建立連線。若既有設定包含頻寬或混淆參數,也應照原設定核對,不要憑經驗任意填入較大的數值。

結論:先確認網路條件

同一份 Hysteria2 設定只在某個 Wi-Fi 網路下失敗時,請先切換至行動網路重新測試並記錄差異,再檢查該 Wi-Fi 的 UDP 條件;不要先改認證欄位,也不要因此認定其他協定一定更快。

HTTP、SOCKS5 與 WireGuard:分清代理入口與隧道

HTTP、SOCKS5 與 WireGuard 的欄位結構各不相同,不能套用同一套帳號填寫方式。前兩者是常見的代理入口,後者則以金鑰建立網路層隧道;能否連線至目標資源,還取決於伺服器允許轉送的範圍。

WireGuard 的 Endpoint 包含伺服器位址與連接埠,隧道位址則屬於隧道內部,兩者不能互換。Allowed IPs 會影響位址範圍與對端選擇,不是網域規則,也不能直接取代 Config 中的 DOMAIN-SUFFIX。排查時應一併檢查金鑰對應關係、UDP 可連通性與對端回程路由。

匯入既有設定:依序核對 Home → Type

匯入比手動重建更能保留複雜參數,但匯入後仍須檢查重要欄位。以下流程以使用者已持有的訂閱或單一設定為前提;訂閱用於管理伺服器項目,Config 中的設定檔則管理規則與相關行為,兩者不能視為同一份設定。

  1. 保留原有設定

    記下目前選取的伺服器,以及 Home → Global Routing 的設定。修改前先保留可還原的既有設定,避免排查過程中同時遺失原本的連線參數與規則。

  2. 選擇匯入方式

    手動新增單一連線時,前往 Home → 右上角「+」→ Type,選擇與既有設定相同的協定;使用訂閱時,在相同路徑的 Type 中選擇 Subscribe,並輸入自己的訂閱網址。

  3. 逐項核對

    儲存後檢查伺服器、連接埠、Password 或 UUID。再依協定檢查 TLS、WebSocket、UDP 或 WireGuard 金鑰欄位;更新訂閱後,也要留意項目是否遭遠端內容取代。

  4. 連線後進行驗證

    返回 Home 選取待測項目並啟用連線,依系統提示允許加入 VPN 設定。記錄目前的 Global Routing 狀態,再瀏覽明確的測試目標;不要只看列表中的延遲數字判斷結果。

訂閱更新失敗與伺服器連線失敗應分開處理。前者可能是訂閱網址失效、token 變更或取得路徑無法連線;後者則可能是認證、握手或轉送問題。先保留現有項目,確認失敗發生在哪個步驟,再更新既有訂閱;反覆刪除後重新新增,無法修正伺服器端的參數錯誤。

使用 Global Routing 區分協定與規則問題

測試協定時,請固定伺服器和目標,只變更一項路由設定。Home → Global Routing 中的 Proxy、Direct、Config、Scene 是路由模式,不是連線協定;Scene 會依已設定的情境運作,並非新增一種傳輸方式。

Config

建議

依據目前啟用的 Config 規則決定要求的去向。規則可以指向 DIRECT、代理策略或 REJECT,未符合規則的要求不一定會自動直連。

適用情境:已有有效規則,日常需要逐條確認分流結果

Proxy

將代理路徑設為全域路由選項,可用於排除一般分流規則的影響。這不代表所有系統流量都一定會由代理接管,也無法補救協定認證失敗。

適用情境:暫時測試所選伺服器能否連線至目標

Direct

以直連路徑處理要求。此時網頁能開啟,不代表 Home 中選取的代理伺服器已完成握手。

適用情境:確認本機網路與目標是否可連線,作為排查對照

以下僅示意規則語法,並非可直接取代完整設定的成品。PROXY 必須在目前的設定環境中指向有效的代理策略;規則會依序判斷,FINAL 則處理前面都未符合的要求。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY

DOMAIN-SUFFIX 依網域後綴比對,IP-CIDR 依 IP 網段比對,GEOIP 則透過地理資料庫判定 IP 位址所屬地區。若使用 Proxy 能連線,使用 Config 卻失敗,請檢查符合的規則、策略與 DNS 結果,不要立刻更換協定。測試結束後請還原原本的路由模式,避免測試設定持續影響後續要求。

協定連線常見問題

連接埠填了 443,為什麼仍顯示握手失敗?

連接埠不會決定協定。返回 Home 編輯該項目,先確認 Type,再核對是否需要 TLS、伺服器名稱與認證欄位。若使用 WebSocket,還要檢查 Path 與 Host;不要把連接埠可連通誤認為整個握手已成功。

延遲測試有數字,為什麼網頁還是打不開?

延遲測試只能反映特定測試流程的結果。先確認 Home → Global Routing 沒有使用 Direct 繞過待測項目,再暫時使用 Proxy 排除規則影響,並測試同一個目標。若仍無法連線,接著區分 DNS、認證、TLS 與伺服器轉送階段。

切換 Wi-Fi 後,只有 Hysteria2 或 WireGuard 連不上?

先維持設定不變,切換到行動網路重新測試。這兩類連線都仰賴 UDP,應優先檢查網路條件是否有變化。接著查看 Settings → On Demand 是否設定了依網路觸發的條件,以免連線自動變化影響判斷;手動測試期間請記錄並暫時停用相關觸發條件,測試後再還原。

更新訂閱後,可以直接把 Type 改回原本的協定嗎?

不能只更改 Type。先核對既有訂閱提供的完整欄位,確認伺服器端實際使用的協定是否有變更;若更新內容有誤,請向自己的服務商確認。認證、傳輸與 TLS 參數必須相互配套,保留舊密碼不代表就能恢復連線。

排查紀錄應包含目前網路、所選協定、Global Routing、目標位址與失敗階段,而不只是寫「無法使用」。每次只修改一個變數,再以相同目標重新測試,才能判斷問題來自設定、網路或規則。若要從首次授權和基本操作開始,可閱讀站內使用說明。

App Store 正版確認