VMess 和 VLESS 有什麼差別?加密方式、傳輸組合與用戶端相容性一次看懂

整理 VMess、VLESS 的認證與加密差異、常見傳輸組合,以及 v2rayN、v2rayNG 的支援情況,帶你看懂訂閱中的節點類型。

本文重點

VMess 和 VLESS 是代理協定,不是用戶端,也不是傳輸方式。要判斷訂閱中的節點能否使用,必須一併確認協定、傳輸方式、安全層與實際使用的核心。本文適合正在匯入訂閱、核對節點參數,或挑選桌面與 Android 用戶端的使用者;看完即可分辨 UUID、TLS、REALITY 與 flow 各自的用途,並依欄位找出連線失敗的環節。

VMess 與 VLESS:先釐清認證、加密與傳輸方式

節點不只有「VMess」或「VLESS」這個標籤。完整連線通常還包含伺服器位址、連接埠、使用者憑證、傳輸方式與安全層。協定負責表示代理請求及識別使用者;TCP、WebSocket 等負責承載資料;TLS 或 REALITY 則負責相應的安全交握與連線保護。

VMess 本身具備資料加密能力,現代設定通常採用 AEAD 認證機制。VLESS 的常見設定則將 encryption 設為 none,由 TLS、REALITY 等外層機制負責保護連線。本文討論的是常見訂閱設定,不代表所有新擴充功能或核心實作都完全相同。

常見訂閱設定的職責比較
比較項目VMessVLESS
使用者憑證使用 UUID 等設定參與認證;現代用法採用 AEAD。常見設定以 UUID 識別使用者,必須與伺服器端一致。
資料加密協定本身支援資料加密,實際演算法取決於設定與核心實作。常見的 encryption: none 設定不會在協定本身加密資料。
外層保護可再加上 TLS;即使協定本身已有加密,也不能忽略傳輸參數。公網常見組合仰賴 TLS 或 REALITY 保護連線。
傳輸方式常見組合包括 TCP、WebSocket 等,視伺服器端設定而定。常見組合包括 TCP、WebSocket、gRPC 等,視核心與伺服器端而定。
額外檢查項目系統時間、認證方式,以及舊設定中的 alterId。flow、安全層及 REALITY 所需欄位。

判斷順序:先核對完整組合,再比較協定名稱

取得節點後,先記下「協定+傳輸方式+安全層+flow」。只看到 VLESS 標籤就更換用戶端,或把 VMess 的 UUID 複製到 VLESS 節點,都無法完成協定遷移。

加密方式:VLESS 的 none 不代表整條連線都是明文

「VLESS 不加密」省略了重要前提:通常是指 VLESS 協定本身在 encryption: none 設定下不會加密代理資料,不代表外層沒有加密。若節點使用 VLESS+TLS,用戶端與 TLS 終止點之間會受到 TLS 保護;若使用 REALITY,則必須由支援此機制的核心執行相應交握。

反過來說,若使用 VLESS+TCP,且安全層也設為 none,就不會有上述外層保護。應用程式本身的 HTTPS 只保護相應的應用層內容,不能因此認定整條代理通道都已加密。一般使用者不應為了排除問題而任意關閉安全層,也不應把停用憑證驗證當成長期解決方法。

傳輸組合:WebSocket、TLS、REALITY 與 Vision

WebSocket 不是加密協定,TLS 也沒有規定必須搭配哪一種代理協定。因此,VMess+WebSocket+TLS 與 VLESS+WebSocket+TLS 的傳輸形式相似,但認證與協定處理方式不同。即使位址和連接埠相同,也不能只切換用戶端中的協定選項。

常見組合與檢查參數
組合重要欄位常見誤解
VMess+WebSocket+TLSUUID、加密選項、WebSocket Path、Host、TLS 伺服器名稱。把 WebSocket Host 和 TLS 伺服器名稱當成同一個設定欄位。
VLESS+WebSocket+TLSUUID、encryption、Path、Host、TLS 參數。照抄其他節點的路徑,或多填了不適用的 flow。
VLESS+TCP+TLSUUID、TLS 伺服器名稱;若伺服器端要求 Vision,也要符合 flow 設定。以為所有 VLESS 節點都必須填入 xtls-rprx-vision。
VLESS+TCP+REALITYUUID、公鑰、shortId、伺服器名稱、指紋,以及伺服器端要求的 flow。只匯入位址和 UUID,漏掉 REALITY 參數。

xtls-rprx-vision 是 flow 設定值,不是適用於任意傳輸方式的通用加速開關。常見 Vision 組合使用 TCP 搭配 TLS 或 REALITY;不要憑經驗在 WebSocket 節點上填入此值。伺服器端未要求的欄位,請優先保留訂閱原值。

443
TLS 伺服器連接埠範例,不代表該連接埠一定使用 TLS
10808
本機 SOCKS 入站範例,與遠端連接埠不同
0
現代 VMess AEAD 設定常見的 alterId 值

以上數字用於辨識欄位用途,不代表所有節點都需要修改。遠端連接埠由伺服器端決定,本機連接埠則以用戶端目前的設定為準;遠端即使填了 443,也不能據此推斷安全層一定有啟用。舊教學中的非零 alterId 屬於需要確認的歷史設定,未經伺服器端確認,不應直接套用。

用戶端相容性:介面能匯入,不代表核心能執行

v2rayN 是桌面用戶端,實際節點由所選用的核心執行;v2rayNG 是採用 Xray 核心的 Android 用戶端;v2flyNG 則採用 v2fly 核心。用戶端負責訂閱、介面與路由等管理功能,協定組合能否使用,最終取決於實際核心版本及其功能支援。

桌面與 Android 雙端核對:使用同一份訂閱,分別確認執行能力

桌面端:v2rayN
  • 匯入訂閱後,開啟目標節點的編輯視窗,核對協定、傳輸方式與安全層。
  • 使用 VLESS+REALITY 或 Vision 時,確認實際執行的是支援該組合的 Xray 核心。
  • 查看啟動輸出,分辨設定解析失敗與連線階段失敗。
Android 端:v2rayNG / v2flyNG
  • 在 v2rayNG 中確認應用程式隨附的 Xray 核心是否支援訂閱使用的欄位。
  • 使用 v2flyNG 時,優先依照其 v2fly 核心的支援範圍選擇節點,不要套用 Xray 專用組合。
  • 更新訂閱後重新檢查目標節點,避免仍選到先前手動匯入的副本。

同一份訂閱可以包含不同協定組合;節點清單相同,不代表每個用戶端都同樣支援所有節點。

使用 v2flyNG 時,不能只因介面顯示「VLESS」就推斷 REALITY 或 Vision 可用;應查看應用程式與核心的實際支援說明。VMess 也不代表完全沒有相容性問題:舊版分享格式、認證模式與傳輸欄位,同樣可能導致匯入後無法連線。

  1. 先透過用戶端的「關於」頁面或核心資訊,記下目前的應用程式與核心版本,再向服務提供者確認組合需求。
  2. 訂閱更新完成後,確認同名節點是否出現在多個群組,並明確指出正在測試哪一個。
  3. 保留完整錯誤資訊;若在啟動階段就結束,先檢查不支援的欄位,不要先調整路由分流。

匯入訂閱:依欄位找問題,不要只憑協定名稱判斷速度

常見 VMess 分享連結使用 vmess://,常見 VLESS 分享連結則使用 vless://。前者通常會編碼一段設定資料,後者則常以 URI 查詢參數帶入傳輸與安全選項。訂閱可能一次提供多個節點;能辨識連結前綴,只代表解析入口正常。

處理問題時,建議保留原訂閱節點,再複製一份進行檢查。分享連結和訂閱網址通常含有有效憑證,交給他人協助排除問題前,應隱藏 UUID、權杖及可識別帳戶的資訊。請勿將完整訂閱網址貼到公開記錄或截圖中。

同一份訂閱中,VMess 能用,為什麼 VLESS 不能用?

開啟連線失敗節點的編輯視窗,先檢查安全層是否為 REALITY、flow 是否為 xtls-rprx-vision,再確認目前的核心是否支援。接著核對公鑰、shortId 和伺服器名稱是否完整匯入,不要先認定帳戶已失效。

節點顯示有延遲,但瀏覽器無法開啟網頁,算是協定不相容嗎?

不一定。TCP 測試成功只代表連接埠可連通;先確認測試項目,再檢查系統代理與本機入站設定。若本機 SOCKS 連接埠實際為 10808,可使用下方指令直接測試,略過瀏覽器的代理選擇流程。

VMess 突然認證失敗,需要改用 VLESS 嗎?

先啟用系統自動校時,確認 UUID,並重新更新訂閱。VMess 認證會依據時間資訊,系統時間明顯錯誤可能導致連線失敗;若伺服器端沒有同步修改,只更改協定名稱無法修復認證問題。

兩種協定都能連線,哪一種比較快?

在相近時間使用相同的測試目標,分別記錄連線建立時間、持續下載表現與失敗情況。只有線路、伺服器負載、傳輸方式及測試條件相近,結果才有比較意義;不能把不同伺服器的速度差異直接歸因於協定。

curl --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 -I https://example.com/

此指令假設本機確實在 127.0.0.1:10808 監聽 SOCKS 入站;若用戶端使用其他連接埠,請改成實際值。socks5h 會將目標網域交由代理端解析,--connect-timeout 10 將連線階段的逾時秒數設為 10,-I 則會要求回應標頭。這是連線測試,不是頻寬測試;請求進入核心後,仍會依照目前的路由規則處理。

選擇建議:保留可用節點,依伺服器端組合設定

選擇協定不等於升級名稱。現有 VMess 節點運作穩定,就不必只因為看到 VLESS 字樣而手動替換設定;伺服器端提供完整的 VLESS+TLS 或 REALITY 節點時,也不必為了「相容」改成 VMess。真正需要配合的是兩端的協定實作與整套連線參數。

沿用完整且已驗證的訂閱設定

建議做法

保留伺服器端提供的協定、傳輸方式與安全層,確認核心支援後直接測試連線。將更新訂閱與調整路由分開進行,減少排錯時需要考慮的變因。

適用情境:日常使用、跨裝置匯入、已有可用節點

沿用 VMess,配合現有部署

伺服器端已部署 VMess,且用戶端支援其認證與傳輸方式時,請保留原設定。發生問題時,先檢查時間、UUID 與傳輸欄位。

適用情境:現有 VMess 服務、以已知相容設定排除問題

依需求使用 VLESS 安全組合

伺服器端明確提供 TLS 或 REALITY 參數時,請選擇支援該組合的核心。只有伺服器端要求時才填入 Vision flow,不要自行加入其他參數。

適用情境:已取得完整 VLESS 參數、已確認核心支援範圍

下載 v2rayN平台與安裝套件選擇