Shadowrocket VMess 與 VLESS 差異:加密方式、傳輸層與欄位對照

整理 VMess 與 VLESS 的加密、認證及傳輸層差異,並對照 Shadowrocket 節點欄位,協助核對服務商提供的參數。

本文重點

VMess 與 VLESS 不能只靠切換 Type 互相轉換:兩者都常以 UUID 識別使用者,但協定加密機制不同,外層也可能使用 TLS 與 WebSocket。本文適合已取得服務商參數或訂閱的使用者,依序核對「協定 → 認證 → 傳輸 → TLS」欄位,再透過 Global Routing 區分連線問題與規則問題。訂閱與節點請向服務商取得。

一、先分清 VMess、VLESS、TLS 與傳輸層

在 Shadowrocket(小火箭)中,VMess 和 VLESS 是兩種不同的代理協定,不是同一條連線的速度選項。伺服器使用哪種協定,客戶端就必須選擇相同的 Type。即使伺服器位址、連接埠和 UUID 完全一致,只把 VMess 改成 VLESS,也不會讓伺服器自動接受另一種協定。

理解參數時,應將設定拆成幾個獨立層次。VMess 或 VLESS 決定代理協定和認證格式;TCP、WebSocket 等決定連線的承載方式;TLS 則負責保護相應連線並驗證伺服器身分。WebSocket 本身不等於加密,連接埠設為 443 也不代表已啟用 TLS。

2 種
本文比較的協定:VMess / VLESS
443
常見 TLS 伺服器連接埠;實際值以服務商提供的參數為準
4 層
核對順序:協定、認證、傳輸、TLS

例如,「VLESS + WebSocket + TLS」表示使用 VLESS 處理代理請求,透過 WebSocket 承載,並由 TLS 保護至相應 TLS 終止點的連線。這三個名稱回答的是不同問題,不能互相取代。

二、加密與 UUID:VLESS 的 none 不代表整條連線沒有保護

VMess 支援在協定層加密資料。採用 AEAD 的 VMess 實作也會對相應的協定資料提供認證保護;資料加密方式須與伺服器相容。客戶端中的 auto 等選項與 VMess 的加密選擇有關,不能直接套用為 VLESS 的設定要求。

VLESS 本身不提供 VMess 所具備的協定層資料加密,常見參數中的 encryption=none 指的就是這一層。若外層正確設定 TLS,連線仍可受到 TLS 提供的傳輸保護。因此,「VLESS 沒有內建資料加密」和「VLESS 連線一定是明文」是兩回事;也不能因此關閉服務商要求的 TLS。

核對項目VMessVLESS
使用者憑證通常使用 UUID,且須與伺服器上的使用者設定一致。通常使用 UUID,且須與伺服器上的使用者設定一致。
協定層資料加密支援協定層加密,請依伺服器要求選擇相容設定。不提供此層加密,常見的 encryption 值為 none。
外層 TLS可搭配 TLS 使用,不由協定名稱自動決定。可搭配 TLS 使用,不能因為 none 就關閉 TLS。
AlterId屬於舊版相容參數;現代 AEAD VMess 通常使用 0,請勿自行改為非零值。不使用 VMess 的 AlterId,不能照抄。
時間檢查認證與時間有關,裝置時間若明顯有誤,可能導致連線失敗。並非 VMess 的時間認證機制,但 TLS 憑證有效期檢查仍仰賴正確時間。

UUID 是認證憑證,不是伺服器網域,也不是訂閱網址。兩種協定使用外觀相同的 UUID,不代表帳號可以共用。複製時請勿包含引號、空格或換行;傳送診斷資訊給他人時,請遮蔽 UUID、訂閱 token 和其他憑證。

三、Shadowrocket 節點欄位:先看共通項,再看差異

在 Home 新增或編輯節點時,先核對 Type,再逐項填寫。已有訂閱的使用者,建議優先匯入服務商提供的資料,以免手動抄寫時遺漏額外參數。下表依欄位用途整理;不同 Type 顯示的選項可能不同,請以目前介面及服務商說明為準。

欄位或參數填寫內容常見錯誤
Type明確選擇 VMess 或 VLESS。只看節點名稱猜測協定;名稱可自行設定,不能作為判斷依據。
伺服器位址填入服務商提供的網域或 IP 位址。把完整訂閱 URL 填入位址欄,或誤加 https://。
Port填入服務商提供的整數連接埠,例如 443。以為 TLS 只能使用 443,擅自改掉實際連接埠。
UUID逐字元保留原值。把節點備註當成帳號,或複製時漏掉字元。
傳輸設定依參數選擇 TCP、WebSocket 等對應方式。以為兩種協定都必須使用 WebSocket。
TLS / SNI核對開關、伺服器名稱與憑證要求。直接把連線位址複製為 SNI,忽略服務商指定的網域。
WebSocket Host / Path啟用 WebSocket 時,依伺服器要求填寫。漏掉 Path 開頭的 /,或把 Host 和 SNI 當成同一個欄位。

伺服器位址決定連線目的地;SNI 是 TLS 交握中的伺服器名稱指示,並與相應的憑證驗證設定有關;WebSocket Host 則是 HTTP 請求中的主機資訊。這些值有時相同,但用途不同。服務商分別提供時,應各自保留,不要為了「看起來整齊」而統一修改。

  1. 先保留一份原始參數,確認 Type、位址、Port 和 UUID。
  2. 接著核對傳輸方式;只有使用 WebSocket 時,才需要設定相應的 Host 和 Path。
  3. 最後核對 TLS、SNI 及服務商要求的其他參數,不要預設以關閉憑證驗證來排除問題。
  4. 儲存後回到 Home 選擇該節點,實際測試請求;每次只修改一項,方便判斷原因。

四、匯入訂閱與手動填寫:兩種核對方式

訂閱是批次提供或更新節點資訊的入口,不是 VMess 或 VLESS 本身。一份訂閱可以包含不同協定;更新後,節點位址、連接埠和傳輸參數也可能改變。匯入成功只代表客戶端讀取到資料,不保證憑證仍有效或伺服器目前可用。

核對方式:保留原始參數,減少重複手動修改

已有訂閱
  • 訂閱請向服務商取得,在 Home 透過新增訂閱的入口完成新增與更新。
  • 展開匯入結果,檢查 Type、位址和連接埠是否符合服務商說明。
  • 更新前記錄手動修改的內容;訂閱更新可能重建或覆寫節點欄位。
只有單一節點參數
  • 在 Home 新增節點,先選擇正確的 Type。
  • 依欄位表輸入 UUID、傳輸與 TLS 參數,不要混用兩種協定各自專用的設定。
  • 保留原始紀錄,參數變動時逐項比對,不要反覆猜測開關設定。

兩種方式都應以伺服器設定為準;訂閱入口、節點憑證與應用程式購買紀錄分別管理。

訂閱網址通常包含認證資訊。示意網址 https://example.com/sub?token=xxxx 僅用來說明格式,不能用於匯入。請勿將實際網址放在公開截圖、聊天紀錄或日誌中;訂閱更新失敗時,先區分網址過期、請求無法送達,以及回應內容無法解析,再向服務商確認。

五、連線測試:區分節點參數錯誤與 Global Routing 選擇

Home 用來選擇節點並連線,Config 用來管理設定檔與規則,Settings 則包含應用程式設定。節點協定填寫正確,不代表每個請求都會經過該節點;Global Routing 會決定流量的處理方式,還須配合 Config 中目前生效的規則判斷。

Config

建議

依目前設定的規則選擇處理策略;未符合前置規則的請求通常會交由 FINAL 處理。結果是否直連取決於設定,並非固定「其餘流量都直連」。

適用情況:已核對規則,日常使用時需要依目標區分處理方式。

Proxy

將流量交由代理路徑處理,可暫時排除依目標比對規則的影響。測試時仍須核對所選節點及適用的排除設定。

適用情況:維持目標網站不變,檢查所選節點是否能完成請求。

Direct

使用直連路徑;在此模式下網頁能開啟,不能證明剛填寫的 VMess 或 VLESS 節點有效。

適用情況:比對本地網路能否直接連線至同一個目標。

若使用 Scene,也要核對相應場景的設定,不能只根據上次選取的節點推斷目前路徑。排查時固定網路和測試目標,先記錄原有模式,再短暫切換測試,完成後恢復原設定。On Demand 負責依條件建立連線,不會替你修正 UUID、SNI 或 WebSocket Path。

六、常見問題:速度、轉換與匯入後的異常

VLESS 一定比 VMess 快嗎?

不能只根據協定名稱判斷。請在相同網路、相近測試時段和相同目標下,記錄請求完成情況與延遲,再核對伺服器路徑、壅塞情形和外層傳輸。如果兩個節點的伺服器不同,就不能把差異全歸因於協定;VLESS 沒有內建資料加密,也不代表所有情況下的傳輸量都更高。

直接把 Type 從 VMess 改成 VLESS 可以嗎?

不能靠這樣完成轉換。請先向服務商取得相應的 VLESS 參數,再到 Home 新增獨立節點進行核對。伺服器必須設定相應協定;即使 UUID 相同,也不能取代伺服器端的支援,原有 VMess 節點應保留以供比對。

UUID 和連接埠都正確,為什麼 WebSocket 還是連不上?

接著檢查傳輸方式、Host、Path、TLS 和 SNI。例如伺服器要求的 Path 是 /connect,填成 connect 或 / 就不是相同路徑。遇到 HTTP 狀態錯誤時,請依服務商說明核對反向代理入口,不要隨機更換網域;/connect 只是路徑示意,並非通用值。

更新訂閱後,原本能用的節點失敗了,該怎麼辦?

先在 Home 確認目前選取的節點,再比對更新後的 Type、位址和傳輸參數,並檢查先前手動修改的內容是否遭到覆寫。如果回傳資料缺少必要欄位,請保留已遮蔽憑證的錯誤描述並向服務商確認,不要自行猜測 UUID 或 TLS 設定。

七、核對應用程式來源與服務範圍

Shadowrocket 是閉源商業應用程式,唯一的購買與安裝入口為 App Store,採一次性買斷。核對時請確認官方圖示、開發者 Shadow Launch Technology Limited,以及應用程式 ID 932747118。主要使用裝置為 iPhone 和 iPad;系統需求、價格、相容性與購買適用範圍,均以 App Store 頁面標示為準。

Shadowrocket 正版入口先核對 App Store 資訊 →