VMess 與 VLESS 有何不同?1 分鐘看懂差異

快速了解 VMess 與 VLESS 在加密、時間驗證及傳輸組合上的差異,以及透過用戶端匯入節點時該檢查哪些設定。

本文重點

VMess 與 VLESS 是代理協定,不是用戶端,也不是節點速度等級。VMess 可在協定層加密負載,並要求裝置時間準確;常見的 VLESS 設定則由 TLS 或 REALITY 負責傳輸保護。已有可用訂閱時,沿用服務端提供的協定與參數即可;手動匯入時,請確認 UUID、傳輸方式、安全層與伺服器名稱。

1 分鐘比較:協定、加密與時間

v2rayN、v2rayNG 是管理設定並呼叫核心建立連線的用戶端;VMess、VLESS 則是連線使用的協定。一筆節點設定還包括伺服器位址、連接埠、傳輸方式與安全參數,因此只看到「VLESS」這個名稱,還無法判斷它能否在目前的用戶端執行。

比較項目VMessVLESS
身分驗證參數通常使用 UUID,目前常見設定採用 AEAD 驗證通常使用 UUID,服務端仍會驗證使用者身分
負載加密可使用協定本身的負載加密常見設定使用 encryption=none,由外層提供保護
時間要求驗證依賴時間,通常要求與服務端的誤差不超過約 120 秒沒有 VMess 式的時間戳驗證要求,但外層憑證驗證仍仰賴正確時間
常見組合VMess + WebSocket + TLSVLESS + WebSocket + TLS,或 VLESS + TCP + REALITY
匯入時的檢查重點UUID、加密方式、傳輸參數及舊設定的相容性UUID、TLS 或 REALITY、flow 及相應的傳輸參數

表中的組合是常見用法,並非固定綁定。WebSocket 是傳輸方式,TLS 是安全層,REALITY 是另一種安全機制,不能把三者視為同一類選項任意替換。服務器支援哪些組合,用戶端就必須採用相應設定。

檢查順序:先確認完整組合

開啟節點編輯頁面,先記下「協定 + 傳輸 + 安全層」三項,再檢查 UUID 與其他參數。只比較 VMess 和 VLESS 兩個標籤,無法找出連線失敗的原因。

加密差異:VLESS 的 none 代表什麼?

VMess 的驗證機制和負載加密是不同概念。用戶端中的 AEAD 通常指現代 VMess 的驗證方式;負載加密選項則可能顯示為 auto、aes-128-gcm 或 chacha20-poly1305。不要把「使用 AEAD」理解成必須手動指定某一種負載加密演算法。

常見 VLESS 節點中的 encryption=none,表示 VLESS 這一層不負責負載加密,不代表整條連線必定以明文傳輸。使用 TLS 時,TLS 會保護用戶端與服務端之間的資料;使用 REALITY 時,則必須正確設定該機制要求的參數。也別因此認定所有 VLESS 節點都自帶保護,請以實際設定為準。

時間驗證:VMess 連線逾時,先校正系統時間

VMess 驗證與時間有關。手機或電腦的時間若相差幾分鐘,即使位址和 UUID 正確,也可能無法通過驗證。約 120 秒是理解其時間範圍時的常見參考值,不應當作手動「卡邊界」的目標;請開啟裝置的自動校時,讓時間盡可能準確。

  1. Android:前往系統「設定」→「系統」→「日期與時間」,開啟自動設定時間;部分裝置會將此選項放在「其他設定」中。
  2. Windows:前往「設定」→「時間與語言」→「日期與時間」,開啟「自動設定時間」,再選擇「立即同步」。
  3. 重新測試:校正時間後,停止並重新啟動用戶端連線,確認是否仍出現驗證或交握錯誤;不必先刪除整組訂閱。

時區顯示不同,不一定代表系統時間錯誤;協定主要受實際時間戳影響。VLESS 沒有 VMess 相同的時間驗證機制,但裝置日期嚴重錯誤,仍可能導致 TLS 憑證顯示「尚未生效」或「已過期」。因此,「改用 VLESS 就不用校時」並不成立。

傳輸組合:保留可用設定,依支援範圍選擇

使用者無法只靠編輯協定下拉選單,把伺服器上的 VMess 服務直接轉成 VLESS。用戶端與服務端必須使用相同協定。若訂閱提供多個連線入口,應比較完整組合與實際可用性,而不是先認定某個協定一定比較快。

訂閱中已確認可用的完整設定

建議

保留服務提供者產生的協定、傳輸與安全參數。VMess 節點已穩定可用時,不必只因協定名稱不同就更換;已有 VLESS 節點時,也不要刪除不熟悉的 flow 或 REALITY 欄位。

適用情境:已有訂閱、日常連線、減少手動輸入錯誤

VMess + WebSocket + TLS

逐項確認 WebSocket 路徑、Host 與 TLS 伺服器名稱。路徑通常區分大小寫;入口即使顯示一般網頁,也不代表代理交握設定正確。

適用情境:服務端已部署此組合,且需繼續使用既有入口

VLESS + TCP + REALITY

需要核心支援相應功能。若服務端要求 xtls-rprx-vision,flow 也必須一致;不要直接把這項設定複製到 WebSocket 節點。

適用情境:服務提供者明確提供完整參數,且用戶端核心支援此組合

v2rayNG 使用 Xray 核心;v2rayN 的實際功能取決於目前選用的核心。v2flyNG 使用 v2fly 核心,不要只因它能處理某類 VLESS 設定,就推論它支援 Xray 的所有擴充功能。判斷相容性時,必須一併確認協定、傳輸方式、安全機制與核心支援範圍。

用戶端匯入:逐項確認 UUID、SNI 與 flow

優先使用完整分享連結或訂閱匯入。VMess 分享連結通常以 vmess:// 開頭,常見形式是編碼後的設定;VLESS 分享連結以 vless:// 開頭,附加參數通常位於查詢部分。連結看起來很長,是因為其中不只有伺服器位址;不要只複製網域名稱和連接埠。

匯入檢查:桌面版與 Android 版

桌面版:v2rayN
  • 複製完整分享連結,選擇「從剪貼簿匯入分享連結」;常見快捷鍵為 Ctrl+V。
  • 訂閱網址應新增至「訂閱群組設定」,儲存後再更新訂閱,不要當成單一節點連結貼上。
  • 開啟節點編輯視窗,確認協定、連接埠與安全層;若使用 REALITY,請確認目前採用的核心支援此功能。
Android 版:v2rayNG
  • 點選右上角「+」→「從剪貼簿匯入」,或掃描包含完整設定的 QR Code。
  • 透過側邊選單的「訂閱群組設定」新增訂閱,再執行「更新訂閱」;選單文字可能因版本而異。
  • 編輯節點時確認 TLS 或 REALITY 參數;啟動連線後,依系統提示允許 VPN 連線。

同一份訂閱可用於兩端比對參數,但兩端清單是否相同,仍取決於服務提供者回傳的內容及各端相容性;不要為了表面一致而手動更改協定。

伺服器位址、SNI 與 WebSocket Host 是不同欄位。伺服器位址決定連線目標;SNI 通常是 TLS 交握時使用的伺服器名稱;WebSocket Host 則是 HTTP 請求相關參數。三者可能相同,也可能不同,應依服務提供者的設定填寫,不能一律替換成連線位址。

常見問題:連線失敗與速度判斷

VMess 可以連線,改成 VLESS 就連不上?

先還原原本設定。協定名稱不是用戶端的本機開關,服務端也必須部署 VLESS 並提供相應參數。需要更換時,請向服務提供者重新取得完整連結,再以另一筆節點匯入。

VLESS 顯示 none,是不是少填了密碼?

先確認這是 encryption 欄位,而不是安全層。常見 VLESS 設定使用 none,並以 UUID 驗證,再透過 TLS 或 REALITY 保護傳輸。確認安全層與原始連結一致,不要自行改成 VMess 的加密演算法。

匯入成功卻一直交握失敗,該先檢查什麼?

匯入成功只代表設定可以解析。先校正系統時間,再依序比對位址、連接埠、UUID、SNI 與傳輸參數;使用 REALITY 時,還要檢查公鑰與 short ID。若記錄指出憑證有問題,請修正伺服器名稱或服務端憑證,不要直接略過驗證。

VLESS 一定比 VMess 快嗎?

不能只憑協定判斷。使用相同網路、相近時段與同一個測試目標重複測試,再觀察網頁載入、連線穩定度與下載表現。伺服器負載、線路壅塞及傳輸組合,都可能比協定本身更影響結果;單次延遲較低,不代表持續傳輸量較高。

節點測試正常,瀏覽器還是打不開網頁?

先確認流量是否經過用戶端。v2rayN 請檢查系統代理設定;v2rayNG 請確認 VPN 服務已啟動,以及應用程式的適用範圍。接著檢查路由與 DNS;尚未確認流量接管範圍前,不要反覆更換 VMess 或 VLESS 參數。

排查原則:一次只更動一個變數

保留原節點,複製一份用於排查;每次只修正一項已確認不一致的參數,再重新測試。若服務端無法使用,請更新訂閱或聯絡服務提供者,不要不斷猜測加密、flow 與傳輸設定。

下載用戶端選擇作業系統與架構