VMess 與 VLESS 有什麼差別?一般使用者一分鐘看懂該選哪個

從加密方式、傳輸負擔與伺服器端要求,說明 VMess 與 VLESS 的實際差異,提供一般使用者依訂閱資訊直接選擇的方法,不必理解底層協議細節。

一分鐘結論:訂閱提供什麼就用什麼

一般使用者面對 VMess 與 VLESS,最穩妥的做法不是手動修改協議,而是直接使用伺服器端或訂閱提供的設定。節點標示 vmess://,就在客戶端中依 VMess 匯入;節點標示 vless://,就依 VLESS 匯入。協議類型、連接埠、使用者識別碼、傳輸方式、安全層與路徑是一組相互配套的參數,只修改其中一個欄位通常無法建立連線。

如果同一服務同時提供 VMess 與 VLESS 兩組節點,可以依照以下順序判斷:

  1. 優先選擇與目前客戶端核心相容、能正常匯入的節點。
  2. VLESS 節點已搭配 TLS 或 REALITY,且客戶端支援相應參數時,可優先測試 VLESS。
  3. 舊裝置、舊設定或既有服務只提供 VMess 時,繼續使用 VMess 即可,不必因為協議名稱而主動遷移。
  4. 兩者都能連線時,分別測試延遲、持續傳輸,以及網路切換後的恢復情況,再保留實際較穩定的一組。
比較項目 VMess VLESS
協議定位 包含身分驗證與協議層資料保護機制 精簡身分驗證,安全性通常交由外層傳輸負責
常見安全組合 VMess 搭配 TCP、WebSocket、gRPC 與 TLS 等 VLESS 搭配 TLS,或在相容核心中搭配 REALITY
協議負擔 相對較高 相對精簡
相容性重點 注意時間、使用者識別碼與傳輸參數 注意安全層、flow、SNI 與傳輸參數
一般使用者操作 匯入訂閱後直接選擇 確認客戶端支援完整參數後直接選擇

VMess:協議內含身分驗證與資料保護機制

VMess 是 V2Ray 體系中較早被廣泛使用的協議。它透過使用者識別碼進行身分驗證,並在協議層處理請求資訊與資料傳輸。客戶端連線至伺服器端時,協議、位址、連接埠、使用者識別碼、傳輸方式與安全設定必須彼此對應。任何一項不一致,都可能表現為連線逾時、握手失敗,或建立連線後沒有資料。

VMess 設定中常見的使用者識別碼是 UUID。它用於識別獲准連線的使用者,但 UUID 本身不是伺服器位址,也不能單獨構成節點。一個可用節點還需要連接埠、傳輸類型及相關傳輸參數。例如 WebSocket 需要對應路徑,gRPC 需要對應服務名稱,TLS 還需要符合的伺服器名稱等資訊。

部分使用者會將 VMess 的協議層處理與 TLS 混為一談,兩者並非同一層級。VMess 自身定義身分驗證與資料處理方式,TLS 則是外層安全傳輸。伺服器端可依部署結構,將 VMess 放在 TCP、WebSocket 或 gRPC 等傳輸之上,再決定是否啟用 TLS。客戶端必須完整重現這套組合。

VMess 對系統時間較為敏感。裝置時間與標準時間相差明顯時,可能無法通過驗證。因此,當 VMess 節點突然全部失效,而伺服器位址與訂閱都沒有變更時,可以先檢查裝置的自動日期、自動時間與時區。單一節點失效則更可能是連接埠、服務狀態或節點參數發生變化。

VLESS:減少協議層負擔,依賴配套安全層

VLESS 的設計重點是精簡協議層。它保留使用者身分識別與連線目標傳遞,將資料安全性更多交由 TLS、REALITY 等外層機制處理。因此,VLESS 設定中常見的 encryption=none 並不表示整條連線必然以未受保護的形式傳輸,而是表示 VLESS 協議層本身不再重複執行一套內容加密。最終連線是否具備安全層,仍要查看 security、伺服器名稱、公鑰、短識別碼及其他配套欄位。

這也是 VLESS 最容易被誤解的地方。只看協議名稱,無法判斷完整的連線結構。一個 VLESS 節點可能使用 TCP 搭配 TLS,也可能使用 gRPC 搭配 TLS;在 Xray 核心支援的部署中,還可能使用 REALITY。不同組合需要不同的客戶端能力,參數之間不能互換。

VLESS 設定中還可能出現 flow 欄位。此欄位與特定傳輸流程及核心能力有關,不是所有 VLESS 節點都需要。訂閱未提供時不要自行新增;訂閱已提供時,也不應任意刪除。客戶端版本過舊、不識別對應的 flow 值時,常見結果是匯入後無法啟動節點,或在連線階段立即失敗。

在桌面端使用 v2rayN、Android 端使用 v2rayNG 時,實際協議能力取決於客戶端內建或呼叫的核心版本。v2rayNG 通常使用 Xray 核心,適合匯入帶有相應 Xray 參數的 VLESS 節點。v2flyNG 使用 v2fly 核心,匯入前應確認訂閱沒有依賴該核心尚未支援的擴充欄位。客戶端介面能顯示 VLESS,不代表所有 VLESS 組合都具備相同的相容性。

核心差異一:加密方式不在同一層

比較 VMess 與 VLESS 時,不能只用「一個加密、另一個不加密」來概括。更準確的說法是:VMess 在協議設計中包含身分驗證與資料保護機制;VLESS 則讓協議層更輕量,通常要求使用可靠的外層安全方案。最終網路連線由協議、傳輸與安全層共同決定。

可以將一組節點設定拆成三層理解:

  • 協議層:VMess 或 VLESS,負責使用者身分與目標連線資訊。
  • 傳輸層:TCP、WebSocket、gRPC 等,決定資料如何承載。
  • 安全層:TLS 或相容核心提供的其他安全方式,負責外層握手與傳輸保護。

例如,同樣是 VLESS,VLESS + TCP + TLSVLESS + gRPC + TLS 是兩套不同的組合。前者不需要 gRPC 服務名稱,後者通常需要;其中任一欄位填寫錯誤,都不能靠切換「協議加密」選項修復。VMess 也是如此,WebSocket 路徑、Host、TLS 伺服器名稱等資訊都必須與伺服器端一致。

一般使用者查看分享連結時,可以辨識幾個關鍵參數,但不建議直接編輯。以下結構僅用於說明欄位關係:

vless://使用者識別碼@伺服器位址:連接埠
?type=傳輸方式
&security=安全層
&sni=伺服器名稱
#節點名稱

分享連結中的節點名稱只用於在客戶端清單中顯示,不參與協議連線。伺服器位址、連接埠與查詢參數才會決定連線方式。複製連結時若遺漏問號後的參數,節點可能仍可匯入,但會因安全層或傳輸設定不完整而連線失敗。

核心差異二:VLESS 負擔更精簡,但速度不只由協議決定

VLESS 減少了協議層的重複處理,理論上具備更精簡的資料路徑。在處理器效能有限、連線數量較多或網路吞吐量較高的環境中,這種差異更容易被測量。但在一般網頁瀏覽、短影音或日常下載中,使用者感受到的速度往往主要由伺服器頻寬、線路壅塞、往返延遲、封包遺失率與傳輸方式決定。

因此,不能看到 VLESS 就直接判定它一定更快。一個線路穩定、負載較低的 VMess 節點,實際體驗可能優於線路壅塞的 VLESS 節點。反過來,在同一伺服器、同一路線與相近設定下,VLESS 通常更適合追求精簡協議處理的部署。

測試時應固定其他條件。先在同一網路下選擇 VMess 節點,記錄連線延遲、首次開啟頁面的時間與持續下載表現;再切換至同地區、同伺服器條件下的 VLESS 節點重複測試。不要同時更換網路、客戶端版本與路由規則,否則測試結果無法說明協議差異。

Mux 也不應被視為協議速度的固定開關。它會將多個邏輯連線多工至較少的底層連線,適合某些高延遲或大量短連線的情境,但在部分網路與服務設定下可能增加排隊,或影響長連線。VMess 與 VLESS 都應以訂閱提供者的建議及實測結果為準,不要因為某個節點速度較慢就連續修改多個進階參數。

核心差異三:客戶端與伺服器端必須同時支援

VMess 與 VLESS 並不是只能在客戶端切換的顯示選項。伺服器端監聽 VMess 時,客戶端必須發起 VMess 連線;伺服器端監聽 VLESS 時,客戶端也必須使用 VLESS。即使兩組設定使用相同的伺服器位址、連接埠與 UUID,協議不同仍然無法互通。

伺服器核心與客戶端核心還需要支援同一套傳輸與安全欄位。V2Ray、v2fly 與 Xray 在基礎概念上具有延續關係,但擴充能力與具體欄位並不完全相同。尤其是帶有 REALITY、特定 flow 或較新傳輸參數的 VLESS 節點,應使用明確支援這些設定的核心版本。舊版客戶端可能忽略欄位,也可能直接提示設定錯誤。

訂閱是減少手動填寫錯誤的主要方式。訂閱更新時,伺服器端可以同時調整連接埠、路徑、安全層與節點名稱。使用者只需在 v2rayN、v2rayNG 或 v2flyNG 的訂閱群組中執行更新,再選擇新的節點。手動複製舊節點並覆蓋個別欄位,容易留下已失效的參數。

v2rayN、v2rayNG 與 v2flyNG 如何選擇協議

v2rayN 桌面端

v2rayN 匯入訂閱後,會依節點內容辨識 VMess 或 VLESS。一般使用者不需要先建立空白設定。先新增訂閱位址並更新訂閱群組,再從伺服器清單選擇節點。節點能連線但瀏覽器沒有流量時,應繼續檢查系統代理模式,而不是立即修改協議。

如果訂閱同時提供多個協議,可以先依節點名稱或類型篩選。需要測試 VLESS 新設定時,應確保客戶端與核心均為目前可用版本。遇到不支援設定欄位的提示,先更新客戶端,再重新更新訂閱,避免在舊節點上逐項猜測。

v2rayNG Android 端

v2rayNG 可透過訂閱或分享連結匯入節點。匯入 VLESS 後,應查看節點詳細資訊中的傳輸方式、安全類型、伺服器名稱與 flow 是否完整。連線按鈕能啟動但沒有網路時,還要檢查分應用程式代理範圍、路由模式與系統網路切換情況。

從無線網路切換至行動網路後,既有連線可能需要重新建立。這種現象不代表 VMess 或 VLESS 設定錯誤。先中斷連線並重新連線,再判斷節點是否持續無法使用。如果所有節點都失敗,請檢查裝置時間、訂閱更新與本地網路;如果只有單一節點失敗,優先更換同一群組的節點。

v2flyNG Android 端

v2flyNG 使用 v2fly 核心時,適合處理該核心支援的 VMess、VLESS 與相關傳輸設定。匯入帶有擴充安全參數的節點前,應確認核心支援範圍。遇到無法辨識的欄位,不要刪除欄位後強行儲存,因為刪除後即使設定能夠啟動,也可能無法與伺服器端完成正確握手。

訂閱同時出現兩種協議時的選擇步驟

  1. 先更新訂閱。確保清單來自目前的訂閱內容,不使用長期保留的舊節點副本。
  2. 查看節點類型。確認客戶端辨識為 VMess 或 VLESS,不要根據節點名稱猜測。
  3. 檢查完整參數。重點查看位址、連接埠、傳輸方式、安全層、SNI、路徑、服務名稱與 flow。
  4. 先進行連線測試。選擇節點並啟動連線,確認網頁、長連線與持續傳輸都正常。
  5. 再比較實際表現。在相同網路下觀察延遲、封包遺失、速度與網路切換後的恢復情況。
  6. 保留備用節點。主要節點選擇實測穩定的一組,另一種協議可作為不同線路或服務狀態下的備用。

如果兩種協議來自不同伺服器,測試結果主要反映線路與伺服器差異,不能據此判定協議優劣。只有伺服器位置、線路、頻寬、傳輸方式與負載都相近時,對比才更具參考價值。

常見誤區與連線失敗排查

直接將 VMess 連結改成 VLESS

這種修改只改變客戶端發出的協議,伺服器端的監聽方式並不會同步改變。即使位址、連接埠與使用者識別碼保持不變,連線仍會失敗。協議遷移必須先由伺服器端建立對應的入站,再產生完整的新節點或新訂閱。

看到 VLESS 的 encryption=none 就刪除安全參數

encryption=none描述的是 VLESS 協議層設定,不代表 TLS、REALITY 等外層參數可以刪除。刪除 securitysni、公鑰或短識別碼後,客戶端將無法依照伺服器端要求完成握手。

匯入後只看延遲數值

客戶端的延遲測試通常只反映某個時間點的連線回應,不等於持續傳輸品質。節點可能延遲較低,但在尖峰時段出現封包遺失或速度波動。選擇協議與節點時,應同時測試網頁開啟、連續下載與連線維持情況。

連線失敗就反覆切換路由模式

路由分流決定哪些請求進入代理出站,無法修復協議握手錯誤。節點本身無法連線時,應先檢查協議、伺服器、連接埠、使用者識別碼、傳輸與安全參數。節點能夠連線但特定網站走錯出口時,才進一步排查路由規則。

訂閱更新後仍使用舊設定

部分客戶端更新訂閱後會保留手動複製的節點,清單中可能同時存在新舊版本。可根據訂閱群組、更新時間與節點參數確認目前選取的項目。不要只看相同的節點名稱,因為名稱不變時,連接埠與安全參數仍可能已經更新。

最終選擇:相容性優先,實測決定

VMess 的特點是協議內含較完整的身分驗證與資料處理機制,既有部署與客戶端相容經驗較多。VLESS 的特點是協議層更精簡,通常搭配 TLS 或相容核心提供的安全方式,在現代設定中更常見。兩者都不是僅憑名稱就能決定速度與穩定性的單一開關。

一般使用者只要記住三點:第一,協議必須與伺服器端一致;第二,訂閱參數應完整匯入,不要手動拼接;第三,在客戶端支援的前提下,透過實際線路測試決定主要使用的節點。訂閱只有 VMess 就使用 VMess;訂閱提供完整 VLESS 設定且客戶端相容,就可以優先測試 VLESS。能夠穩定連線、路由符合預期,且網路切換後能正常恢復的設定,就是目前環境下較合適的選擇。

下載v2rayN