VMess 和 VLESS 是代理協定,不是用戶端,也不是傳輸方式。要判斷訂閱中的節點能否使用,必須一併確認協定、傳輸方式、安全層與實際使用的核心。本文適合正在匯入訂閱、核對節點參數,或挑選桌面與 Android 用戶端的使用者;看完即可分辨 UUID、TLS、REALITY 與 flow 各自的用途,並依欄位找出連線失敗的環節。
VMess 與 VLESS:先釐清認證、加密與傳輸方式
節點不只有「VMess」或「VLESS」這個標籤。完整連線通常還包含伺服器位址、連接埠、使用者憑證、傳輸方式與安全層。協定負責表示代理請求及識別使用者;TCP、WebSocket 等負責承載資料;TLS 或 REALITY 則負責相應的安全交握與連線保護。
VMess 本身具備資料加密能力,現代設定通常採用 AEAD 認證機制。VLESS 的常見設定則將 encryption 設為 none,由 TLS、REALITY 等外層機制負責保護連線。本文討論的是常見訂閱設定,不代表所有新擴充功能或核心實作都完全相同。
| 比較項目 | VMess | VLESS |
|---|---|---|
| 使用者憑證 | 使用 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 只保護相應的應用層內容,不能因此認定整條代理通道都已加密。一般使用者不應為了排除問題而任意關閉安全層,也不應把停用憑證驗證當成長期解決方法。
- VMess 的 UUID:是認證憑證,不是伺服器憑證。即使 UUID 正確,也無法修正錯誤的 TLS 伺服器名稱。
- VMess 的
security:在 VMess 使用者設定中通常指資料加密選項;請勿與傳輸層設定中的同名欄位混淆。 - VLESS 的
encryption:常見值為none;節點是否有外層保護,還需檢查 TLS 或 REALITY。 - TLS 的 SNI:是交握中的伺服器名稱資訊,通常也會用來核對憑證名稱。連線位址可以是 IP,但不應因此任意清空伺服器名稱。
- REALITY 參數:除了 UUID,還要核對伺服器端提供的公鑰、伺服器名稱、shortId,以及用戶端要求的指紋等欄位。
傳輸組合:WebSocket、TLS、REALITY 與 Vision
WebSocket 不是加密協定,TLS 也沒有規定必須搭配哪一種代理協定。因此,VMess+WebSocket+TLS 與 VLESS+WebSocket+TLS 的傳輸形式相似,但認證與協定處理方式不同。即使位址和連接埠相同,也不能只切換用戶端中的協定選項。
| 組合 | 重要欄位 | 常見誤解 |
|---|---|---|
| VMess+WebSocket+TLS | UUID、加密選項、WebSocket Path、Host、TLS 伺服器名稱。 | 把 WebSocket Host 和 TLS 伺服器名稱當成同一個設定欄位。 |
| VLESS+WebSocket+TLS | UUID、encryption、Path、Host、TLS 參數。 | 照抄其他節點的路徑,或多填了不適用的 flow。 |
| VLESS+TCP+TLS | UUID、TLS 伺服器名稱;若伺服器端要求 Vision,也要符合 flow 設定。 | 以為所有 VLESS 節點都必須填入 xtls-rprx-vision。 |
| VLESS+TCP+REALITY | UUID、公鑰、shortId、伺服器名稱、指紋,以及伺服器端要求的 flow。 | 只匯入位址和 UUID,漏掉 REALITY 參數。 |
xtls-rprx-vision 是 flow 設定值,不是適用於任意傳輸方式的通用加速開關。常見 Vision 組合使用 TCP 搭配 TLS 或 REALITY;不要憑經驗在 WebSocket 節點上填入此值。伺服器端未要求的欄位,請優先保留訂閱原值。
以上數字用於辨識欄位用途,不代表所有節點都需要修改。遠端連接埠由伺服器端決定,本機連接埠則以用戶端目前的設定為準;遠端即使填了 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 也不代表完全沒有相容性問題:舊版分享格式、認證模式與傳輸欄位,同樣可能導致匯入後無法連線。
- 先透過用戶端的「關於」頁面或核心資訊,記下目前的應用程式與核心版本,再向服務提供者確認組合需求。
- 訂閱更新完成後,確認同名節點是否出現在多個群組,並明確指出正在測試哪一個。
- 保留完整錯誤資訊;若在啟動階段就結束,先檢查不支援的欄位,不要先調整路由分流。
匯入訂閱:依欄位找問題,不要只憑協定名稱判斷速度
常見 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 參數、已確認核心支援範圍
- 匯入前:確認訂閱來源、節點組合與用戶端核心需求。
- 啟動失敗:先檢查設定解析與不支援的欄位,再確認核心選擇。
- 交握失敗:檢查時間、認證憑證、伺服器名稱與安全層參數。
- 連線後無法正常瀏覽:再檢查 DNS、系統代理、TUN 與路由分流,不要反覆更換協定。