本文摘要

VMess 與 VLESS 都會使用使用者 ID,但驗證機制和加密職責並不相同。本文從 UUID、alterId、security 和 flow 說明節點編輯頁中的欄位哪些屬於協定、哪些屬於傳輸層,並整理 v2rayN 的檢查順序。適合已取得訂閱,準備手動檢查節點參數的使用者。

VMess 與 VLESS 比較:先分清協定、傳輸與安全層

節點名稱中的「VMess + WebSocket + TLS」並不是三種同級協定。VMess 負責代理協定的驗證與資料封裝,WebSocket 是傳輸方式,TLS 則保護外層連線。理解 VLESS 時也要區分這三個層次。不能只在編輯頁把協定從 VMess 改成 VLESS,其他設定都不變,就期待伺服器接受連線。

下表以常見的 VMess AEAD 與傳統 encryption: "none" VLESS 設定為比較範圍。較新的核心可能擴充欄位或功能,實際使用仍應以伺服器提供的完整參數,以及雙方核心的支援情況為準。

比較項目VMessVLESS
使用者身分使用使用者 ID,通常以 UUID 表示通常也使用 UUID,但線上的驗證流程不同
alterId歷史遺留參數;現代 AEAD 設定通常為 0沒有這個欄位,不應從 VMess 設定複製過來
協定層加密可透過 security 選擇資料加密方式,例如 auto常見設定為 encryption: "none",由外層 TLS 或 REALITY 保護連線
時間要求驗證依賴時間範圍,應同步用戶端與伺服器時鐘基本驗證不採用 VMess 同類型的時間範圍,但憑證及所用安全層仍可能需要正確時間
常見組合TCP、WebSocket 等,可搭配 TLSTCP + 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 憑證。

36
標準 UUID 字串字元數,包含連字號
0
現代 VMess AEAD 常見的 alterId 值
443
常見 TLS 伺服器連接埠,並非協定強制值

alterId 在中文介面中常稱為「額外 ID」。它源自早期 VMess 的驗證設計,不是「額外建立幾個帳號」,數值越大也不代表越安全。現代 VMess 部署通常採用 AEAD,並填入 0;部分新版核心已不再接受舊式驗證。遇到舊教學中的 64,應先向節點提供者確認伺服器模式,不要把它當成通用建議值。

兩種協定都顯示 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,不要只因介面有選項就勾選。

  1. 先確認節點提供的外層安全類型:TLS、REALITY 或未啟用安全層。
  2. TLS 請確認 serverName、憑證網域與驗證結果;不要把略過憑證驗證當成一般修復方式。
  3. REALITY 請確認伺服器要求的公鑰、shortId、serverName 與 fingerprint,這些欄位不能互相取代。
  4. 最後確認協定內部欄位: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:// 代表不同協定;替換前綴並不會轉換內部結構。更新訂閱也可能覆蓋手動修改,排查時應先複製一份節點,避免測試參數與原始資料混在一起。

  1. 匯入節點:複製完整分享連結,在 v2rayN 中選擇「伺服器」→「從剪貼簿匯入批次 URL」。選單名稱可能因版本而異,請以目前介面中同名的匯入功能為準。
  2. 檢查核心參數:雙擊匯入的節點,確認協定、位址、連接埠和使用者 ID,再檢查傳輸與 TLS 或 REALITY 設定。VMess 請留意額外 ID;VLESS 請留意 flow。
  3. 確認目前節點:儲存後設為作用中伺服器,查看核心記錄,確認沒有欄位不支援、連接埠遭占用或啟動失敗等問題。
  4. 確認本機入口:在「設定」→「參數設定」中查看實際監聽連接埠。例如本機 SOCKS 入口可能是 127.0.0.1:10808,但請以介面顯示為準,不要照抄其他裝置的連接埠。
  5. 發出新請求:依目前使用方式啟用系統代理或設定應用程式代理,再開啟測試網站。既有連線不一定會在切換節點後立即變更,必要時請關閉並重新開啟應用程式。

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 和完整代理請求測量的環節不同,不能直接混在一起比較。

選擇順序可歸納為:先符合伺服器協定與核心能力,再完整配對驗證和傳輸參數,最後比較實際請求表現。對一般使用者來說,保留可追溯的原始訂閱,只修改已確認的欄位,比記住哪種協定比較「新」更有用。