VMess 與 VLESS 有什麼差異?加密方式、效能與相容性一次看懂

從設計背景到加密、握手負擔與用戶端相容性,快速比較 VMess 和 VLESS,判斷節點該選哪一種。

本文重點

VMess 與 VLESS 都是代理協定,不是用戶端名稱。判斷節點是否合用,必須一併檢查協定、傳輸方式、安全層與核心支援情況。本文適合已會匯入訂閱,卻不清楚加密選項和節點差異的使用者:先了解各層的用途,再依實際設定確認相容性,最後透過可重複的測試決定是否切換。

一、VMess 與 VLESS 的設計重點

VMess 是 V2Ray 生態系較早採用的代理協定,將使用者驗證、請求封裝與可選的資料加密納入協定設計。現代設定應使用 VMess AEAD,不要沿用舊教學中的過時驗證方式。VMess 不等於特定傳輸方式,可搭配 TCP、WebSocket 等承載方式,也能在外層加上 TLS。

VLESS 後來採用更精簡的基礎協定設計,在代理層保留驗證與轉發封裝,並將更多安全保護交由外部機制處理。常見的傳統 VLESS 設定會使用 encryption=none,再搭配 TLS 或 REALITY。本文討論的是這類常見設定;若使用新增的加密擴充功能,應另外確認連線兩端核心的版本與欄位支援情況,不要直接套用舊設定的結論。

比較項目VMessVLESS 常見設定
驗證與封裝現代部署採用 AEAD 驗證機制以 UUID 識別使用者,基礎封裝較精簡
資料加密支援 AES-GCM、ChaCha20-Poly1305 等選項傳統設定使用 none,依賴外層安全機制
常見組合VMess + WebSocket + TLSVLESS + TLS,或 Xray 支援的 REALITY 組合
重要檢查項目UUID、安全選項、時間、傳輸參數UUID、flow、安全層、傳輸參數

因此,「VMess 是舊協定,所以一定不能用」和「VLESS 名稱較新,所以一定更快」都不是可靠的判斷方式。能否連線取決於設定是否相符;使用體驗也會受到伺服器負載、網路路徑與本機流量接管方式影響。

二、加密方式:none、TLS、REALITY 各自負責什麼

代理連線可分成三層理解:代理協定負責驗證與封裝目標請求;傳輸方式負責承載資料;安全層負責保護連線。VMess、VLESS 屬於第一層,WebSocket 是傳輸方式,TLS 則屬於安全層。把這些選項混為一談,容易忽略真正的問題。

同樣地,VMess 內建資料加密,不代表所有握手資訊和傳輸特徵都會自動隱藏。是否需要 TLS、採用哪種傳輸方式,應由完整的部署方案決定。匯入訂閱後,請保留服務提供者給的參數,不要只憑選項名稱自行「最佳化」。

三、效能差異:協定負擔不等於網路速度

VLESS 的基礎協定減少了部分處理,但實際連線仍可能包含 TCP 建立連線、TLS 握手、傳輸封裝與代理驗證。評估 VMess AEAD 時,也不能用早期舊式驗證方式的負擔來推算。連線是否重複使用、是否經過反向代理,以及伺服器 CPU 是否支援硬體加速,都會影響結果。

尤其要區分首次請求的等待時間與持續下載的傳輸量。握手最佳化可能讓短連線更快建立,卻不一定能提升大型檔案的下載速度。兩個節點即使分別標示 VMess 和 VLESS,也可能位於不同機房;直接比較只能反映這兩個節點的使用體驗,不能證明協定本身孰優孰劣。

  1. 固定測試條件:盡量使用同一台伺服器、同一個出口與相同時段,並維持路由和 DNS 設定一致。無法符合這些條件時,請將結果標記為節點比較。
  2. 分項記錄:分別記錄連線失敗次數、首次回應等待時間與持續傳輸表現。使用同一個可信任的目標進行測試,不要以用戶端清單中的單次延遲測試代表整體體驗。
  3. 重複測試:每種方案連續測試 3 次,再換個時段重新測試。這裡的次數只是操作建議,不代表任何節點的實測成績。
  4. 查看資源使用情況:若頻寬尚未用滿,但核心程序持續占用較高的 CPU,再考慮加密演算法、封裝方式和裝置效能;若兩種設定都只在晚間變慢,應先檢查網路壅塞。

判斷方式:先保留穩定節點,再用相同條件比較

現有 VMess 節點若能穩定連線,就不必只因協定名稱而更換。新增 VLESS 設定後,先單獨測試,不要覆蓋原有節點;只有在相同使用情境下持續改善,才調整預設連線。

四、用戶端相容性:核心與完整設定都要確認

v2rayN 是桌面用戶端;v2rayNG 是採用 Xray 核心的 Android 用戶端;v2flyNG 則採用 v2fly 核心。用戶端介面負責管理設定與啟動核心,實際協定功能仍受核心實作和版本限制。能匯入連結,只代表介面解析成功,不保證所有擴充功能都能正常運作。

依完整設定選擇核心

建議

若設定包含 REALITY 或 Vision 等 Xray 專屬功能,請先確認目前使用的 Xray 核心支援這些欄位。桌面端請確認 v2rayN 實際選用的核心;Android 端則檢查 v2rayNG 的設定與執行記錄。

適用情況:新匯入的 VLESS 節點、需要擴充參數的連線

保留已驗證的 VMess 設定

若已有 VMess + WebSocket + TLS 節點,使用 v2rayN、v2rayNG 或 v2flyNG 時,都應先確認對應核心與匯入結果。不能因為都顯示 VMess,就省略 Host、路徑或安全選項的檢查。

適用情況:已有穩定訂閱、優先維持設定一致的使用者

檢查方式:分別確認桌面與 Android 的執行設定

桌面端:v2rayN
  • 在節點清單中編輯目標節點,確認協定、連接埠、傳輸方式與 TLS 參數。
  • 在「設定」→「參數設定」中確認本機監聽設定;實際的分類名稱會依介面版本而異。
  • 啟動後查看記錄中的實際核心名稱與設定錯誤,不要只根據節點備註判斷。
Android 端:v2rayNG / v2flyNG
  • 編輯節點,對照原始參數確認 UUID、傳輸路徑與伺服器名稱。
  • 不要將 v2rayNG 的 Xray 擴充設定直接套用到 v2flyNG,兩者的欄位意義可能不同。
  • 首次啟動時確認已授予系統 VPN 權限,並區分權限問題與協定連線失敗。

同一份訂閱可以提供不同的組合;兩端都成功更新,不代表每個節點都具備相同的使用條件。

五、匯入後無法連線:逐項檢查設定欄位

VMess 分享連結常見格式是以 vmess:// 開頭的編碼內容;VLESS 分享連結則常見為以 vless:// 開頭的 URI。兩者不能只替換前綴就互相轉換。伺服器必須實際設定相應的協定入口;即使位址和 UUID 相同,也不代表另一種協定已啟用。

  1. 先確認連線入口:檢查伺服器位址、伺服器連接埠與 UUID。若範例設定使用伺服器端的 443,不要誤填本機代理的 10808;兩個連接埠的用途不同。
  2. 再確認傳輸設定:WebSocket 的 Host 和 path 必須符合伺服器或反向代理的要求。/ws 和 /proxy 是不同路徑,不要憑經驗自行替換。
  3. 檢查安全參數:TLS 請確認 serverName 和憑證;REALITY 請確認服務提供者給的參數;設定 flow 時,請先確認該組合確實需要此值。
  4. 檢查系統時間:VMess 驗證會受到時間條件影響,時間明顯不準可能導致連線失敗。開啟系統的自動設定日期與時間後重新連線,不要關閉安全選項來迴避問題。
  5. 最後檢查流量接管:若核心正常啟動但瀏覽器沒有透過代理連線,桌面端請檢查系統代理;Android 端請檢查 VPN 權限與分應用清單,接著確認 DNS 和路由規則。

將 VMess 改成 VLESS,為什麼馬上就連不上?

先還原原有節點,再建立獨立設定。向服務提供者確認 VLESS 實際使用的入口、UUID、安全層與傳輸參數;在用戶端修改協定類型,不會讓伺服器自動新增相應入口。

VLESS 的加密顯示為 none,需要手動修改嗎?

傳統 VLESS 設定通常就是這個值。先確認 TLS 或 REALITY 與伺服器設定一致;不要套用 VMess 的 AES 選項。若訂閱明確使用新的加密擴充功能,再確認連線兩端所需的版本。

節點測試正常,為什麼網頁還是打不開?

先查看記錄,確認測試連線和實際網頁請求是否都已進入核心。桌面端檢查系統代理;Android 端確認瀏覽器是否被分應用規則排除。接著檢查網域解析,以及目標網域的路由方向。

記錄顯示本機連接埠被占用,是協定不相容嗎?

通常不是。若手動設定的本機監聽連接埠是 10808,請關閉占用該連接埠的舊執行個體,或改用未占用的連接埠,並同步更新使用此連接埠的應用程式代理設定。不要因此修改伺服器端 443 等遠端參數。

六、如何選擇節點:先確認相容性,再比較體驗

對一般訂閱使用者來說,最實用的選擇順序是:服務提供者明確提供的完整設定、目前用戶端實際支援的組合,以及在自己的網路環境下是否穩定。VMess 和 VLESS 都無法單獨保證速度,也不能取代正確的 TLS、REALITY、DNS 與路由設定。

保存排查紀錄時,只記錄協定組合、錯誤類型與必要的設定差異。訂閱網址、UUID 和完整分享連結都可能包含存取憑證,向他人求助前請先移除這些資訊。

下載v2rayN查看支援平台與安裝檔