· 協定科普 · 約 9 分鐘

VMess 與 VLESS 有什麼差別?一般使用者選擇協定前必看的重點

快速了解 VMess 與 VLESS 在加密、時間驗證及傳輸方式上的差異,以及如何判讀和選擇用戶端中的節點。

本文重點

VMess 與 VLESS 都是代理協定,不是用戶端名稱。VMess 提供協定層的資料加密選項,並採用與時間相關的驗證機制;VLESS 基礎協定不提供負載加密,通常搭配 TLS 或 REALITY 使用。已有訂閱的使用者,應先確認用戶端能否辨識完整設定,再比較實際可用性,別只憑協定名稱判斷速度或安全性。

協定、傳輸方式與安全層的差異

選擇 V2Ray 協定時,首先要分清三個層次:VMess 或 VLESS 負責代理要求與使用者驗證;TCP、WebSocket、gRPC 等負責承載連線;TLS 或 REALITY 則提供相應的安全防護。同一個 VLESS 節點可以使用不同的傳輸方式與安全設定。協定相同,不代表其他參數也能共用。

V2Ray 用戶端是用來編輯設定、管理訂閱及控制連線的介面,真正執行代理協定的是核心。v2rayN 是桌面用戶端;v2rayNG 是使用 Xray 核心的 Android 用戶端;v2flyNG 使用 V2Fly 核心。能否連上某個節點,取決於核心是否支援整套設定組合,不能只看用戶端名稱裡有沒有「v2ray」。

設定層級常見顯示值需要確認的內容
代理協定VMess、VLESS協定類型、UUID,以及該協定要求的其他欄位
連線目標伺服器位址、連接埠位址與遠端監聽連接埠,例如服務提供者指定的 443
傳輸方式TCP、WebSocket、gRPCWebSocket 路徑與 Host,或 gRPC 服務名稱
安全設定TLS、REALITY伺服器名稱,以及相應的憑證或 REALITY 參數
流量控制設定空值、xtls-rprx-vision確認服務端是否要求設定,不要自行新增

例如「VLESS + TCP + REALITY + Vision」是一整套組合,其中 Vision 是流量控制設定,不是另一種與 VLESS 同級的協定。REALITY 也不是 WebSocket 的別稱。如果服務端提供的是這套設定,用戶端就不能把傳輸方式改成 WebSocket,卻沿用原本的參數。

VMess 與 VLESS 的主要差異

VMess 不只是替連線加上 UUID。它有自己的驗證與資料保護機制,常見的資料加密選項包括 auto、aes-128-gcm 和 chacha20-poly1305。實際設定也可能選擇不加密負載,因此「所有 VMess 資料都必然由協定層加密」同樣不正確。是否啟用外層 TLS,則要另外查看安全設定。

VLESS 基礎協定採用較精簡的要求結構,不提供負載加密。常見節點中的 encryption=none 是這類設定的正常欄位,不代表整條連線都是明文:外層 TLS 或 REALITY 可以提供安全防護。反過來說,如果沒有適當的安全層,也不能因為填了 UUID 就認定連線已加密。

比較項目VMessVLESS 基礎協定
使用者識別碼通常使用 UUID通常使用 UUID
負載加密有協定層加密選項,依設定而定不提供,通常仰賴外層安全設定
時間相關性驗證機制要求用戶端與服務端時間相近基礎驗證不採用 VMess 式的時間窗口
常見組合VMess + WebSocket + TLSVLESS + WebSocket + TLS,或 VLESS + TCP + REALITY
能否直接互換不能。服務端與用戶端的協定必須一致

現代 VMess 設定通常採用 AEAD 驗證,alterId 常見值為 0。網路上的舊教學若使用非零值,不應直接套用到新節點。VLESS 沒有對應的 alterId 設定欄位,也不應把 VMess 的加密選項搬過來。若訂閱已產生正確參數,保留原值比逐項猜測更可靠。

時間驗證:VMess 連線失敗時,先檢查系統時鐘

VMess 的驗證與時間有關。常見實作要求用戶端與服務端的時間誤差約在 120 秒以內,實際仍須依使用的核心而定。電腦休眠後時鐘偏移、裝置關閉自動校時,或服務端時間異常,都可能導致驗證失敗。這類問題不是把節點連接埠從 443 改成 80 就能解決。

  1. Windows:前往「設定」→「時間與語言」→「日期與時間」,開啟「自動設定時間」,按下「立即同步」後重新連線。只更改時區通常無法修正系統時間本身的誤差。
  2. Android:前往系統「設定」中的「日期與時間」,開啟自動設定時間;不同裝置可能將此選項放在「系統」或「其他設定」底下。
  3. 重新測試:中斷連線後,再連回原本的 VMess 節點,查看核心記錄中的驗證錯誤是否消失。如果其他 VMess 節點正常,只有單一節點連線失敗,請服務提供者確認該服務端的時間與帳戶設定。

VLESS 沒有相同的協定驗證時間窗口,但不代表系統時間可以任意設定。TLS 憑證有生效與到期時間,日期明顯錯誤仍會造成憑證驗證失敗。記錄檔若顯示憑證尚未生效或已過期,請先檢查日期,再判斷是本機時鐘錯誤還是服務端憑證有問題。

傳輸方式搭配:依完整節點設定選擇用戶端

VMess + WebSocket + TLS 與 VLESS + WebSocket + TLS 都需要確認路徑、Host 和 TLS 伺服器名稱。例如服務提供者指定路徑為 /proxy,就不應改成 /。連線位址、HTTP Host 與 TLS 伺服器名稱的用途不同,可能相同,也可能不同;請以節點設定為準,不要把三個欄位一律填成同一個位址。

REALITY 節點可能還需要公鑰、shortId 與伺服器名稱;啟用 Vision 的節點則需要相符的流量控制設定。欄位留空、填錯,或在訂閱轉換過程中遺失,都會影響連線。只看到 VLESS 這個協定名稱,無法證明目前使用的核心支援這些擴充組合。

Xray 核心與完整 VLESS 設定

建議

若服務提供者明確要求使用 REALITY 或 Vision,請優先確認 Xray 核心是否支援。桌面端使用 v2rayN 時,請確認選用的核心;Android 端可使用 v2rayNG,並保留訂閱中的傳輸、安全與流量控制參數。

適用情況:訂閱包含 VLESS + REALITY,或明確指定 Xray 擴充功能的使用者。

V2Fly 核心與相容的節點設定

若已有 VMess + WebSocket + TLS 節點,可依實際核心支援情況使用。Android 端的 v2flyNG 使用 V2Fly 核心;Xray 的擴充組合不一定相容,匯入後仍須確認欄位與記錄檔。

適用情況:服務提供者明確支援 V2Fly,且現有節點組合已確認可用的使用者。

判斷順序:完整設定比協定名稱重要

先確認協定、傳輸方式、安全層與流量控制設定都受支援,再測試連線。已有穩定可用的 VMess 節點,不必只為了協定名稱改用 VLESS;若訂閱明確要求 REALITY,則應先選擇相符的核心。

匯入訂閱:不要手動把 VMess 改成 VLESS

訂閱是批次發佈節點設定的方式,不是第三種代理協定。一份訂閱可以同時包含 VMess 與 VLESS,也可能只包含其中一種。匯入用戶端後,每個節點的協定、伺服器與傳輸參數都會分別儲存。更新訂閱時若出現「不支援」提示,應查看具體的節點組合,而不是直接修改協定下拉選單。

操作方式:分別確認同一訂閱在兩端的參數

桌面端:v2rayN
  • 在「訂閱群組設定」中填入別名與網址,儲存後執行更新訂閱。
  • 開啟節點編輯視窗,確認協定、遠端連接埠、傳輸方式與安全設定。
  • 確認目前使用的核心支援該節點組合,再將節點設為作用中伺服器。
Android 端:v2rayNG
  • 在 v2rayNG 側邊欄的「訂閱群組設定」新增網址,再從主畫面選單更新訂閱。
  • 確認 VLESS 節點的伺服器名稱、REALITY 參數與流量控制設定都完整。
  • 啟動連線並確認已授權系統 VPN,再開啟網頁測試。

兩端可以使用相同的訂閱網址,但解析能力與更新時間可能不同;節點清單是否一致,請以更新後的實際結果為準。

選單名稱會隨用戶端版本而異;找不到入口時,可搜尋「訂閱群組」和「更新訂閱」這兩項功能。若只想了解 v2rayNG 下載與首次連線步驟,可前往用戶端下載頁和入門指南,不必手動重建所有節點參數。

V2Ray 節點測速:比較實際連線,不比協定名稱

VMess 的協定處理方式與 VLESS 的精簡結構確實不同,但實際體驗也會受到線路、伺服器負載、傳輸方式、網路封包遺失及本機裝置影響。兩個節點的地區、入口或安全層不同,就不能把測速差異全歸因於 VMess 與 VLESS。本文不提供缺乏測試條件的速度百分比。

  1. 固定環境:使用相同裝置、相同網路與相同測試目標;關閉正在占用頻寬的下載工作。
  2. 固定路徑:確認測試要求確實由目前節點轉送,而不是依路由規則直接連線。TCP 連接埠可連通,只能證明能連上入口,不代表代理驗證成功。
  3. 重複測試:每個節點至少測試 3 次,記錄成功次數、第一個位元組的回應時間及持續下載表現。不要用一次較低的延遲掩蓋多次失敗。
  4. 查看記錄檔:分別記錄驗證失敗、TLS 錯誤與要求逾時;先修正設定錯誤,再比較效能。

若要排除瀏覽器代理設定的干擾,可明確指定本機 SOCKS 代理。以下的 127.0.0.1:10808 僅為本機監聽範例;請替換成用戶端顯示的實際 SOCKS 或混合連接埠。這不是節點的遠端 443 連接埠。

curl --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 30 --output /dev/null --write-out "HTTP=%{http_code} first_byte=%{time_starttransfer}s total=%{time_total}s\n" https://example.com/

此命令適用於已安裝 curl 的類 Unix 終端機;Windows 可使用 curl.exe,並將輸出目標 /dev/null 改為 NUL。socks5h 會透過 SOCKS 代理解析目標網域。10 秒連線逾時與 30 秒總逾時只是本次測試的時間上限,不是協定效能指標;範例網站也只用來檢查要求,不作為頻寬基準。

選擇原則:優先保留穩定連線的節點

對同一目標重複發出要求後,優先保留成功率穩定且記錄檔沒有驗證或憑證錯誤的節點;只有這些條件相近時,再比較延遲與傳輸量。測試時一次只修改一個參數,才能找出問題所在。

常見問題:協定正常,應用程式仍可能沒有走代理

節點連線成功,不代表應用程式的流量也進入代理。系統代理主要影響遵循系統代理設定的軟體;v2rayN 的 TUN 模式透過虛擬網路介面接管流量,實際涵蓋範圍仍會受路由與排除規則影響。切換 VMess 或 VLESS 不會自動修正瀏覽器擴充功能、終端機環境變數或個別應用程式的代理設定。

VLESS 顯示 none,代表沒有加密嗎?

先開啟節點編輯視窗查看安全設定。VLESS 基礎協定中的 encryption=none 不代表外層沒有防護;若設定要求 TLS 或 REALITY,請確認相關欄位完整,不能只憑 none 判斷。

VMess 突然完全連不上,要先換協定嗎?

先同步系統時間,再重試原本的節點並查看記錄檔。如果所有 VMess 節點同時失敗,其他連線卻正常,應優先排查時間問題;不要直接把原節點改成 VLESS,服務端設定不會因此改變。

VLESS 可以匯入,但一連線就失敗,該怎麼辦?

逐項比對訂閱中的伺服器連接埠、傳輸方式、TLS 伺服器名稱、REALITY 公鑰、shortId 與流量控制設定。確認核心支援這套組合後,再查看記錄檔;「可以匯入」只代表解析完成,不代表參數有效。

命令列可以連線,瀏覽器卻無法開啟網頁?

若明確指定 SOCKS 的要求能成功,請先檢查瀏覽器代理擴充功能與用戶端的系統代理狀態。接著確認路由規則是否將目標設為直連;不要因為單一應用程式失敗,就認定 VMess 或 VLESS 無法使用。

啟用 TUN 後一定要選 VLESS 嗎?

不必。TUN 是在本機接管流量的方式,不會限制遠端協定。先使用已確認可用的節點,再檢查虛擬介面、權限、DNS 與路由;啟用前記下原本設定,若有異常就關閉 TUN 重新測試。

日常選擇可依序檢查:先確認用戶端與核心相容,再核對訂閱中的完整參數,接著檢查時間與憑證,最後測試應用程式是否確實走代理。了解 VMess 與 VLESS 的差異有助於排查問題,但不能取代這套檢查流程。若要進一步檢查輸出標籤、DNS 與路由比對,可參閱完整設定指南。

下載用戶端查看四個平台的下載入口