2026-08-21 · 協定科普 · 約 8 分鐘

VMess 與 VLESS 有何差異:Shadowrocket 使用者設定參數前必懂事項

整理 VMess 與 VLESS 在加密、UUID、傳輸層及 TLS 上的差異,並說明 Shadowrocket「Add Server」中容易填錯的欄位。

本文重點

VMess 與 VLESS 不能只改 Type 就互相轉換。本文適合已持有服務商提供且可合法使用之設定的使用者,說明協定、UUID、Transport 與 TLS 各自的用途,以及如何在 Shadowrocket 的 Add Server 中逐項核對。請先依現有設定還原參數,再透過連線記錄驗證;協定名稱本身不代表速度或安全性。

VMess 與 VLESS 的主要差異

Shadowrocket(小火箭)支援多種協定的連線設定。VMess 與 VLESS 都可使用 UUID 作為使用者識別碼,但驗證方式、資料處理方式及可用組合並不相同。伺服器設定為 VMess 時,客戶端必須選擇 VMess;伺服器設定為 VLESS 時,也必須選擇相應類型。即使位址、連接埠和 UUID 相同,也不代表兩種協定可以互換。

核對項目VMessVLESS
識別資訊使用 UUID 等驗證參數,並須考量時間有效性使用 UUID 識別及驗證使用者,不沿用 VMess 的驗證機制
協定內資料加密支援協定內資料加密,實際方式取決於所選加密設定常見設定的 encryption 為 none,不具備同類型的載荷加密
外層安全防護可搭配 TLS;協定內加密不等於 TLS通常依賴 TLS 或設定指定的其他安全層保護傳輸
傳輸方式必須符合伺服器的 Transport,例如 TCP 或 WebSocket同樣必須符合 Transport,不能只根據協定名稱推斷
遷移方式使用伺服器提供的完整 VMess 參數使用伺服器提供的完整 VLESS 參數,不要直接修改舊項目

此處所說的「VLESS 不具備同類型的載荷加密」,不代表整條連線必然以明文傳輸。VLESS 正確運行於 TLS 之上時,外層 TLS 會保護客戶端與對應 TLS 終點之間的資料。反之,設定中即使標示 TLS,仍須確認憑證驗證、名稱是否相符,以及實際連線結果。

先分清協定、Transport 與 TLS 三層參數

一次連線可同時包含 VLESS、WebSocket 和 TLS:VLESS 負責協定處理,WebSocket 是傳輸封裝,TLS 則負責外層加密與憑證驗證。這些名稱並非互斥選項。VMess 也可以搭配 WebSocket、TLS,WebSocket 並非 VLESS 專用功能。

3 層
分別核對協定、Transport、TLS,避免只填 Type
443
常見 TLS 連接埠範例,並非所有設定都固定使用
36 個字元
常見 UUID 文字格式:32 個十六進位字元加上 4 個連字號

結論:依完整參數組合設定,不要按協定名稱自行補上預設值

現有設定若未標明 Transport、TLS 或連接埠,請先確認原始參數;不要自行改成 WebSocket、啟用 TLS 或改用 443。每次只修改一個已確認有誤的欄位,才能判斷修正是否有效。

UUID 不是位址,也不是訂閱連結。常見格式由五組十六進位字元組成,長度結構為 8-4-4-4-12。複製時請留意首尾空格、換行及全形符號。即使格式正確,若伺服器未授權該 UUID,仍會驗證失敗,因此格式檢查只是第一步。

Add Server 最容易填錯的欄位

在 Home 點選新增入口進入 Add Server,先選擇 Type,再填寫相應欄位。後續顯示的選項會因 Type、Transport 與 App 內設定而異;下表依參數用途逐項核對,不代表不同協定的編輯表單完全相同。若現有訂閱可正常匯入,請先保留匯入結果,避免憑印象重新建立。

欄位或參數核對內容常見錯誤填法
Type須與伺服器協定一致,區分 VMess 與 VLESS只修改 Type,卻保留另一種協定的參數
Address / Port位址與數字連接埠分開填寫將包含路徑的完整網址填入位址欄
UUID完整複製使用者識別碼,不要附上說明文字複製顯示名稱,或漏掉其中一組字元
VMess 加密設定依照現有設定及伺服器支援範圍填寫將 VLESS 的 none 直接套用到 VMess
Transport須與伺服器的 TCP、WebSocket 等設定一致看到 443 就推定一定使用 WebSocket
WebSocket Host / PathHost 填入指定主機名稱;Path 保留開頭斜線及必要的查詢參數把 SNI 當成 Path,或漏掉路徑開頭的斜線
TLS / SNI確認是否啟用 TLS,以及應傳送的伺服器名稱把連線 IP 當成憑證對應的網域名稱
Allow Insecure維持憑證驗證,優先修正憑證、名稱或裝置時間問題把略過驗證當成長期解決方式

例如,某份現有設定可能要求連線至特定 IP,但將 SNI 和 WebSocket Host 都設為 edge.example.com,Path 設為 /tunnel。這三個參數在此範例中彼此相關,但用途仍然不同:Address 用來指定連線目標,SNI 用於 TLS 交握時指示名稱,Host 則用於 WebSocket 的 HTTP 交握。範例中的網域名稱和路徑僅用來說明欄位關係,不是可用的連線設定。

從匯入到驗證:先保留原始設定,再檢查路由模式

協定參數正確,不代表目標請求一定經由該連線傳送。Home 中的選擇、Global Routing 的模式及 Config 中的規則,會共同決定實際流向。排查時應分開確認「連線本身是否可用」和「請求是否符合預期規則」。

  1. 匯入自己有權使用的現有設定或訂閱,在 Home 確認項目數量與 Type;手動輸入時,先完成上一節的欄位核對。
  2. 選擇要驗證的項目並啟用連線;首次使用時,依系統提示允許新增 VPN 設定。
  3. 確認 Global Routing 目前採用的模式,避免停留在 Direct,卻用瀏覽網頁的結果判斷協定是否成功。
  4. 連線至自己有權存取且可重複檢查的目標,並參照 App 內連線記錄查看目標、策略與錯誤資訊。
  5. 若要更新現有訂閱,更新後請再次檢查目前選取的項目。訂閱內容變更可能會覆蓋手動修改,重要變更應先妥善保留私密備份。

Config

建議

依目前啟用的設定規則決定流向。完成協定驗證後,還原已核對的 Config,並查看請求實際符合的策略;只有規則指向目前代理時,該請求才適合用來驗證此連線。

適用情境:日常使用已設定規則的設定,以及還原後的驗證

Proxy

讓交由 Shadowrocket 處理的請求採用代理模式,可暫時減少規則分流的干擾。這不是修復協定的開關,也無法修正錯誤的 UUID、Port 或 TLS 參數。

適用情境:短時間區分連線參數與規則比對問題

Direct

採用直連模式,不適合用來判斷所選 VMess 或 VLESS 連線能否正常轉送。直連可以開啟頁面,只能表示該目標在目前直連條件下可存取。

適用情境:對照直連網路與目標本身是否可連通

Global Routing 也包含 Scene,請確認目前場景實際套用的設定,不要只憑名稱判斷流向。Settings → On Demand 用來依條件觸發連線,不會變更 VMess 或 VLESS 的驗證參數;若出現自動連線情況,請檢查此設定;若驗證失敗,仍須回頭檢查相應項目的參數。

如何排查逾時、驗證失敗與憑證錯誤

錯誤現象只能協助縮小範圍,無法單憑現象證明是哪個欄位有誤。請先記錄原有設定,再依「位址可連通性 → 安全交握 → 協定驗證 → 請求路由」的順序檢查,避免一次修改多處而失去判斷依據。以下問答提供排查方向,不代表所有錯誤訊息都有固定解釋。

UUID 已正確複製,為什麼仍然連線逾時?

先在 Home 開啟該項目的編輯頁面,核對 Address 與 Port,再檢查目前網路能否連線至目標。逾時可能發生在驗證之前,也可能是後續交握未完成;此時不要反覆產生或更換 UUID。若先前可以使用,請確認現有服務狀態及訂閱更新結果。

提示憑證名稱不符,該啟用 Allow Insecure 嗎?

先核對 TLS 的伺服器名稱與 SNI,檢查裝置日期和時間,並確認伺服器憑證仍有效。如果 Address 填的是 IP,但憑證是簽發給網域名稱,請依原始設定填入正確名稱。不要以略過憑證驗證取代修正名稱或憑證問題。

VMess 參數沒有變更,卻突然出現驗證錯誤,該怎麼辦?

先確認裝置日期與時間準確,再核對 UUID 是否仍獲授權,以及伺服器參數是否變更。VMess 驗證涉及時間有效性,明顯的時間偏差可能導致失敗;舊設定中的 AlterId 也不能當成任意數字反覆嘗試,請以目前有效參數為準。

VLESS 已連線,但網頁仍無法開啟,接下來如何排查?

先查看 App 內連線記錄,確認該網頁請求是否使用預期策略。若請求已進入目標連線,接著核對 Transport、WebSocket Host 與 Path,以及 TLS 和設定要求的附加參數。系統顯示 VPN 已連線,不代表遠端驗證、DNS 解析及每個目標請求都已成功。

延遲測試有數值,不代表所有網頁都能存取:不同測試方式涵蓋的階段可能不同,仍須以實際請求驗證。分享排查記錄前,請刪除 UUID、訂閱權杖、密碼及其他存取憑證;保留 Type、Transport、錯誤類別及已遮蔽敏感資訊的欄位關係,通常更有助於找出問題。

選擇與遷移:依現有設定和驗證結果判斷

如果目前的 VMess 設定運作正常,不必只因 VLESS 名稱不同就遷移。VLESS 不具備同類型的載荷加密,也不能直接推論為「一定更快」:外層安全協定、傳輸方式、網路品質、伺服器負載與目標網站都會影響結果。比較時應使用相同的測試目標及相近的網路條件,分別記錄連線狀況、失敗階段與多次測試結果,而不是只看單次延遲。

Shadowrocket 是 Apple 平台上的閉源商業 App,主要使用裝置為 iPhone、iPad,唯一取得管道為 App Store。App 採一次性買斷,購買 App 與連線服務互不相關;本文假設使用者已有自己的服務商與訂閱,不提供、銷售或推薦連線服務。系統需求及購買適用範圍請以 App Store 頁面標示為準。

App Store 正版資訊核對