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、gRPC | WebSocket 路徑與 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 就認定連線已加密。
| 比較項目 | VMess | VLESS 基礎協定 |
|---|---|---|
| 使用者識別碼 | 通常使用 UUID | 通常使用 UUID |
| 負載加密 | 有協定層加密選項,依設定而定 | 不提供,通常仰賴外層安全設定 |
| 時間相關性 | 驗證機制要求用戶端與服務端時間相近 | 基礎驗證不採用 VMess 式的時間窗口 |
| 常見組合 | VMess + WebSocket + TLS | VLESS + WebSocket + TLS,或 VLESS + TCP + REALITY |
| 能否直接互換 | 不能。服務端與用戶端的協定必須一致 | |
現代 VMess 設定通常採用 AEAD 驗證,alterId 常見值為 0。網路上的舊教學若使用非零值,不應直接套用到新節點。VLESS 沒有對應的 alterId 設定欄位,也不應把 VMess 的加密選項搬過來。若訂閱已產生正確參數,保留原值比逐項猜測更可靠。
時間驗證:VMess 連線失敗時,先檢查系統時鐘
VMess 的驗證與時間有關。常見實作要求用戶端與服務端的時間誤差約在 120 秒以內,實際仍須依使用的核心而定。電腦休眠後時鐘偏移、裝置關閉自動校時,或服務端時間異常,都可能導致驗證失敗。這類問題不是把節點連接埠從 443 改成 80 就能解決。
- Windows:前往「設定」→「時間與語言」→「日期與時間」,開啟「自動設定時間」,按下「立即同步」後重新連線。只更改時區通常無法修正系統時間本身的誤差。
- Android:前往系統「設定」中的「日期與時間」,開啟自動設定時間;不同裝置可能將此選項放在「系統」或「其他設定」底下。
- 重新測試:中斷連線後,再連回原本的 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。本文不提供缺乏測試條件的速度百分比。
- 固定環境:使用相同裝置、相同網路與相同測試目標;關閉正在占用頻寬的下載工作。
- 固定路徑:確認測試要求確實由目前節點轉送,而不是依路由規則直接連線。TCP 連接埠可連通,只能證明能連上入口,不代表代理驗證成功。
- 重複測試:每個節點至少測試 3 次,記錄成功次數、第一個位元組的回應時間及持續下載表現。不要用一次較低的延遲掩蓋多次失敗。
- 查看記錄檔:分別記錄驗證失敗、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 與路由比對,可參閱完整設定指南。