VMess 與 VLESS 都會使用使用者 ID,但驗證機制和加密職責並不相同。本文從 UUID、alterId、security 和 flow 說明節點編輯頁中的欄位哪些屬於協定、哪些屬於傳輸層,並整理 v2rayN 的檢查順序。適合已取得訂閱,準備手動檢查節點參數的使用者。
VMess 與 VLESS 比較:先分清協定、傳輸與安全層
節點名稱中的「VMess + WebSocket + TLS」並不是三種同級協定。VMess 負責代理協定的驗證與資料封裝,WebSocket 是傳輸方式,TLS 則保護外層連線。理解 VLESS 時也要區分這三個層次。不能只在編輯頁把協定從 VMess 改成 VLESS,其他設定都不變,就期待伺服器接受連線。
下表以常見的 VMess AEAD 與傳統 encryption: "none" VLESS 設定為比較範圍。較新的核心可能擴充欄位或功能,實際使用仍應以伺服器提供的完整參數,以及雙方核心的支援情況為準。
| 比較項目 | VMess | VLESS |
|---|---|---|
| 使用者身分 | 使用使用者 ID,通常以 UUID 表示 | 通常也使用 UUID,但線上的驗證流程不同 |
| alterId | 歷史遺留參數;現代 AEAD 設定通常為 0 | 沒有這個欄位,不應從 VMess 設定複製過來 |
| 協定層加密 | 可透過 security 選擇資料加密方式,例如 auto | 常見設定為 encryption: "none",由外層 TLS 或 REALITY 保護連線 |
| 時間要求 | 驗證依賴時間範圍,應同步用戶端與伺服器時鐘 | 基本驗證不採用 VMess 同類型的時間範圍,但憑證及所用安全層仍可能需要正確時間 |
| 常見組合 | TCP、WebSocket 等,可搭配 TLS | TCP + TLS、WebSocket + TLS、TCP + REALITY 等,視核心支援情況而定 |
| flow | 不使用 VLESS Vision 的 flow 設定 | 僅在伺服器要求且組合支援時填寫,例如 xtls-rprx-vision |
結論:依伺服器提供的組合匯入,不要只看協定名稱改造節點
先確認協定、傳輸和安全層這三項,再處理 UUID 與選填欄位。VLESS 不會自動讓同一條線路變快;實際體驗仍取決於節點出口、壅塞情況與伺服器負載。
UUID 與 alterId:身分憑證不等於加密強度
UUID 是常見的使用者識別碼格式,例如 9d34742b-7f0c-4ca6-9f51-bb35d8a6d127。通常由十六進位字元與連字號組成,標準格式共 36 個字元。伺服器會透過設定中的使用者資料識別連線;用戶端則需填入相符的 ID。它不是伺服器位址,也不是 TLS 憑證。
alterId 在中文介面中常稱為「額外 ID」。它源自早期 VMess 的驗證設計,不是「額外建立幾個帳號」,數值越大也不代表越安全。現代 VMess 部署通常採用 AEAD,並填入 0;部分新版核心已不再接受舊式驗證。遇到舊教學中的 64,應先向節點提供者確認伺服器模式,不要把它當成通用建議值。
- 收到新的 VMess 節點:保留訂閱提供的 ID 與驗證參數,優先確認是否採用 AEAD。
- 收到 VLESS 節點:填入該節點的使用者 ID,不要新增
alterId;並檢查 TLS 或 REALITY 的相關欄位。 - 自行產生 UUID:伺服器與用戶端都必須同步修改。只改用戶端會導致驗證失敗。
- 向他人求助:請隱藏完整 ID、訂閱網址和分享連結。這些內容可能直接授予他人使用節點的權限。
兩種協定都顯示 UUID,不代表同一個 UUID 能跨協定通用。即使伺服器設定了相同字串,VMess 與 VLESS 的封包格式仍不同,必須連線至相對應的入站連接埠和協定。
如何選擇加密方式:security、encryption 與 TLS 不在同一層
「VLESS 的加密設定為 none,代表傳送明文嗎?」要看完整的連線堆疊。傳統 VLESS 設定中的 encryption: "none" 表示這個協定層不會額外加密承載資料;若外層啟用了正確設定的 TLS 或 REALITY,用戶端至相應伺服器之間的連線仍受加密保護。若外層也沒有安全層,就不能把 VLESS 本身視為保密通道。
VMess 使用者設定可能會有 security: "auto"、aes-128-gcm 或 chacha20-poly1305 等值。這裡的 security 與 streamSettings.security 是不同欄位:前者屬於 VMess 使用者參數,後者描述傳輸安全層。以下僅示意設定位置,並非可直接連線的完整設定。
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": "example.net",
"port": 443,
"users": [
{
"id": "9d34742b-7f0c-4ca6-9f51-bb35d8a6d127",
"alterId": 0,
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"tlsSettings": {
"serverName": "example.net"
},
"wsSettings": {
"path": "/proxy"
}
}
}
VLESS 對應的使用者物件通常會寫成 "encryption": "none"。只有伺服器明確使用 Vision,且目前的傳輸組合與核心都支援時,才加入 "flow": "xtls-rprx-vision"。一般 VLESS + WebSocket + TLS 節點通常不需填寫這個 flow,不要只因介面有選項就勾選。
- 先確認節點提供的外層安全類型:TLS、REALITY 或未啟用安全層。
- TLS 請確認
serverName、憑證網域與驗證結果;不要把略過憑證驗證當成一般修復方式。 - REALITY 請確認伺服器要求的公鑰、
shortId、serverName與fingerprint,這些欄位不能互相取代。 - 最後確認協定內部欄位:VMess 的 security,或 VLESS 的 encryption 與選填 flow。
選擇用戶端與核心:依節點功能配對,不要只看名稱
v2rayN 是桌面用戶端,圖形介面負責管理節點、訂閱與系統代理,實際協定連線則由所選核心執行。Android 版 v2rayNG 使用 Xray 核心,v2flyNG 使用 V2Fly 核心。用戶端名稱相似,不代表每個版本都支援相同的傳輸方式或擴充功能。
Xray 核心方案
建議若需使用 VLESS + REALITY 或 XTLS Vision,請選擇支援相應功能的 Xray 版本,並確認用戶端與核心的設定能力相符。桌面端可使用 v2rayN,Android 端可使用 v2rayNG。
適用情況:伺服器明確提供 REALITY 或 Vision 參數的節點
V2Fly 核心方案
若已有 VMess 節點,且提供者依 V2Fly 設定維護,可繼續使用相符版本。桌面端可在 v2rayN 中確認核心選擇,Android 端可使用 v2flyNG;不要直接照抄 Xray 專用的擴充欄位。
適用情況:現有 VMess 設定,且部署明確依 V2Fly 驗證
若現有 VMess 訂閱運作穩定,不必只為更換協定而重建環境。若同一提供者同時提供 VMess 與 VLESS,可固定伺服器地區、測試目標和時段,再觀察連線成功率與下載表現。不同出口之間的速度差異,不足以證明協定本身的效能差異。
兩類節點的參數檢查方案
VMess + WebSocket + TLS
- 確認 ID 與現代 AEAD 設定,alterId 通常為 0。
- 確認伺服器連接埠、WebSocket path 與所需的 Host。
- 檢查 TLS serverName 與憑證驗證。
- 不要加入 VLESS 的 Vision flow。
VLESS + TCP + REALITY
- 確認 ID 和 encryption 值。
- 依伺服器設定填入公鑰、shortId 與 serverName。
- 使用相容的 fingerprint 設定。
- 伺服器要求 Vision 時,再設定相符的 flow。
分別確認兩種組合;不能只切換協定下拉選單就完成轉換。
v2rayN 實際檢查順序:從匯入到確認請求經過代理
請優先匯入提供者提供的完整分享連結或訂閱,不要逐項照著截圖輸入。分享連結中的 vmess:// 與 vless:// 代表不同協定;替換前綴並不會轉換內部結構。更新訂閱也可能覆蓋手動修改,排查時應先複製一份節點,避免測試參數與原始資料混在一起。
- 匯入節點:複製完整分享連結,在 v2rayN 中選擇「伺服器」→「從剪貼簿匯入批次 URL」。選單名稱可能因版本而異,請以目前介面中同名的匯入功能為準。
- 檢查核心參數:雙擊匯入的節點,確認協定、位址、連接埠和使用者 ID,再檢查傳輸與 TLS 或 REALITY 設定。VMess 請留意額外 ID;VLESS 請留意 flow。
- 確認目前節點:儲存後設為作用中伺服器,查看核心記錄,確認沒有欄位不支援、連接埠遭占用或啟動失敗等問題。
- 確認本機入口:在「設定」→「參數設定」中查看實際監聽連接埠。例如本機 SOCKS 入口可能是
127.0.0.1:10808,但請以介面顯示為準,不要照抄其他裝置的連接埠。 - 發出新請求:依目前使用方式啟用系統代理或設定應用程式代理,再開啟測試網站。既有連線不一定會在切換節點後立即變更,必要時請關閉並重新開啟應用程式。
TCPing 成功只代表目標連接埠有回應 TCP 連線,不代表 UUID、TLS、flow 或代理出口都設定正確。若「連接埠通,但實際連線失敗」,應優先檢查驗證與交握記錄。若核心連線正常,只有部分網站無法使用,再檢查 DNS 與 routing,不要先隨意更換 UUID。
常見問題:修改參數前,先判斷故障屬於哪一層
VMess 的 alterId 設為 0,為什麼還是連不上?
0 只符合現代 AEAD 設定中的一項條件。請開啟節點編輯頁,繼續確認 ID、連接埠、傳輸方式、路徑與 TLS serverName,並確認系統時間已同步。如果使用的是舊節點資料,請向提供者確認伺服器是否仍採用舊式驗證,不要反覆嘗試 16、32、64。
VLESS 的加密顯示為 none,需要改成 auto 嗎?
傳統 VLESS 節點應保留提供者給的 encryption 值,不要套用 VMess 的 auto。接著確認傳輸安全設定是否為 TLS 或 REALITY,並檢查相應欄位;協定層的 none 不等於整條連線都沒有加密。
同一個 UUID,可以直接把 VMess 改成 VLESS 嗎?
不能只修改用戶端。伺服器也必須設定對應的 VLESS 入站,並提供正確的連接埠與安全參數。取得新的完整分享連結後再匯入,並檢查協定;不要保留原 VMess 物件中的 alterId 與 security 使用者欄位。
有 flow 選項,就要一律選 xtls-rprx-vision 嗎?
請先查看提供者提供的節點參數。一般 WebSocket + TLS 節點通常留空;只有明確提供 Vision 的節點才填入相應值,並使用支援此功能的核心。修改後請儲存並重新載入核心,再以新請求驗證。
換成 VLESS 後延遲變高,是協定比較慢嗎?
先確認是否使用相同出口、相同測試目標和相同測試方式。兩個節點都進行多次實際連線測試,記錄失敗次數與中位數,再以相同資源測試傳輸量。TCPing 和完整代理請求測量的環節不同,不能直接混在一起比較。
選擇順序可歸納為:先符合伺服器協定與核心能力,再完整配對驗證和傳輸參數,最後比較實際請求表現。對一般使用者來說,保留可追溯的原始訂閱,只修改已確認的欄位,比記住哪種協定比較「新」更有用。