VMess 內建身分驗證與協議層資料保護,VLESS 則讓協議本身更精簡,通常將傳輸安全交由 TLS 或 REALITY 負責。一般使用者不必只憑協議名稱選擇節點,重點是核對位址、連接埠、使用者 ID、傳輸方式、安全類型與伺服器端設定是否完整一致。
先分清協議、傳輸與安全層
VMess 和 VLESS 都用來描述用戶端如何與伺服器建立代理連線,但它們並不負責連線過程中的所有工作。一個能正常使用的節點通常同時包含三組資訊:用於驗證身分與承載資料的協議、用於傳送資料的傳輸方式,以及用於加密和驗證伺服器身分的安全層。將這三層混為一談,是匯入節點後最常見的理解誤區。
VMess 是較早使用的一套協議,包含使用者身分驗證、與時間相關的檢查,以及協議層資料保護。用戶端通常以 128 位元使用者 ID 識別使用者;若伺服器端與用戶端的時間差距過大,驗證可能失敗。現在常見的設定仍會在 VMess 外層加上 TLS,因為 TLS 還負責伺服器身分驗證、憑證檢查與傳輸層保護,不能簡單視為重複設定。
VLESS 的設計更精簡。它保留使用者驗證與資料轉送所需的結構,但不依靠 VLESS 協議層再次加密承載內容。在公開網路上部署時,VLESS 通常會搭配 TLS 或 REALITY 使用。若節點的安全類型寫成 none,就要確認它是否只運行在已有保護的內部網路、通道或其他可信任連線中,不能只看到「VLESS」便預設連線已具備傳輸安全。
VLESS 搭配 TLS 或 REALITY
推薦協議層較精簡,安全職責清楚交由 TLS 或 REALITY 負責,適合伺服器端明確提供完整參數的新設定。
適合:新建節點、參數來源完整,且用戶端與伺服器端都支援相應的安全方式
VMess 搭配 TLS
相容於現有 VMess 設定,協議驗證與 TLS 各自負責不同工作,匯入時需要同時核對使用者 ID 與憑證相關參數。
適合:繼續使用穩定的現有節點,且訂閱仍提供 VMess 設定
只依協議名稱切換
直接將同一組位址與連接埠從 VMess 改成 VLESS,通常無法連線,因為伺服器端入站協議、驗證方式與附加參數並未同步變更。
適合:不應作為疑難排解方法,應由節點提供者提供完整設定
結論:協議名稱不是可獨立修改的開關
如果訂閱匯入的節點可以正常使用,就不要為了追求某個名稱而手動修改協議。協議、連接埠、使用者 ID、傳輸方式、安全類型與伺服器端入站設定必須成套匹配。
VMess 與 VLESS 的參數具體差在哪裡
兩種協議都會出現伺服器位址、連接埠和使用者 ID,但欄位相同不代表可以互換。伺服器位址決定連線目標,連接埠決定服務入口,使用者 ID 用於身分識別;協議類型則決定用戶端如何組織驗證資料與後續承載內容。複製節點時漏掉一個字元、保留多餘空格,或把備用網域填進位址欄,都可能讓連線在開始階段直接失敗。
VMess 設定中還可能看到 alterId。這是舊設定曾使用的附加 ID 參數,現代設定通常為 0,不應自行填入隨機數字。也可能看到 security 欄位,它描述 VMess 的資料處理選項,與外層的 TLS 開關不是同一個概念。舊教學將兩者都簡稱為「加密」,容易造成誤解。
| 欄位 | VMess | VLESS | 檢查重點 |
|---|---|---|---|
| 位址與連接埠 | 必要 | 必要 | 位址不要附帶協議前綴;連接埠範圍應為 1 至 65535 |
| 使用者 ID | 通常為 UUID 格式 | 通常為 UUID 格式 | 完整複製,保留連字號,不要自行替換 |
| alterId | 舊欄位,現代設定通常為 0 | 不使用 | 不要將舊 VMess 參數搬到 VLESS |
| Flow | 通常不使用 | 部分設定會使用 | 例如 xtls-rprx-vision,必須與伺服器端一致 |
| 傳輸方式 | 可使用 TCP、WebSocket、gRPC 等 | 可使用 TCP、WebSocket、gRPC 等 | 協議相同不代表傳輸參數相同 |
| 安全類型 | 可搭配 TLS | 常見為 TLS 或 REALITY | 繼續核對 SNI、指紋、公鑰與短 ID 等附加欄位 |
VLESS 設定可能多出 flow。當伺服器端指定 Vision 流量控制時,用戶端需要按原值填寫 xtls-rprx-vision;節點未提供時,不應憑經驗補上。Flow 不是測速檔位,也不是越新就越快的選項,而是協議協商的一部分;填寫錯誤後常見的表現包括握手失敗、連線很快中斷,或記錄持續出現協議不匹配。
本機連接埠與節點連接埠也要區分。節點連接埠是遠端服務入口,例如 443;本機的 10808 或 10809 則是應用程式將流量交給 v2rayN 的入口。不同版本與個人設定可能改變本機連接埠,應以「設定」→「參數設定」中顯示的數值為準。手動在瀏覽器填寫代理時,如果將遠端 443 當成本機代理連接埠,流量就不會經過本機用戶端。
TLS、REALITY 與協議加密有什麼關係
TLS 是成熟的傳輸安全機制。用戶端連線時會檢查伺服器提供的憑證、目標名稱與有效狀態,並在握手完成後建立加密通道。設定中的 SNI 用來指定握手時預期的伺服器名稱,通常是網域而不是 IP 位址。節點若提供 SNI,就應原樣保留;擅自改成伺服器位址,可能導致憑證名稱不匹配。
REALITY 是 Xray 體系中供特定 VLESS 設定使用的安全方案。用戶端通常需要伺服器位址、連接埠、使用者 ID、Flow、目標伺服器名稱、公鑰、短 ID 和用戶端指紋等參數。公鑰或短 ID 少一個字元都會導致握手失敗。它不是將一般 VLESS 節點上的 TLS 下拉選單隨意改成 REALITY 就能啟用的功能,伺服器端必須先按相應方式完成設定。
兩類安全設定的核對方式
TLS 節點
- 確認安全類型是否為 TLS
- 確認 SNI 與憑證目標名稱
- 保留節點提供的 ALPN 與指紋設定
- 確認系統日期、時間與時區正確
REALITY 節點
- 確認安全類型是否為 REALITY
- 完整複製公鑰與短 ID
- 依節點要求保留伺服器名稱
- 確認 Flow 與用戶端指紋符合設定
安全方式由伺服器端設定決定。疑難排解時應對照原始訂閱或節點資料逐項核驗,而不是輪流嘗試下拉選單中的選項。
VMess 本身包含協議層保護,不代表可以忽略 TLS 憑證驗證的價值;VLESS 本身較精簡,也不代表連線天生不安全。更準確的說法是:最終安全性取決於完整設定與部署環境。尤其在公開網路中,需要檢查是否使用合適的安全層、是否驗證預期伺服器,以及敏感參數是否來自可信任的訂閱來源。
匯入訂閱後應該檢查哪些連線參數
透過訂閱匯入通常比手動輸入可靠,因為協議、傳輸與安全參數可以一併寫入。匯入完成不代表設定已驗證成功,仍要確認訂閱群組中確實出現節點,並檢查選取的項目是否包含位址、連接埠、協議與傳輸方式。更新訂閱只負責取得設定,不保證遠端伺服器目前可連線。
在 v2rayN 7.x 介面中,可以先選取節點並查看伺服器設定,再進入「設定」→「參數設定」核對本機監聽連接埠。接著啟動服務,確認狀態列沒有核心啟動錯誤,並查看記錄中是否出現解析失敗、連線遭拒、握手失敗或連接埠被佔用。相比單獨查看延遲數字,記錄更能說明連線實際卡在哪個步驟。
- 先儲存原始設定:手動修改前先複製節點,避免遺失訂閱下發的正確參數。
- 核對基本欄位:確認協議、位址、連接埠與使用者 ID 完整,位址欄中不應混入空格或路徑。
- 核對傳輸欄位:WebSocket 檢查 Host 與 Path,gRPC 檢查服務名稱,TCP 設定依節點原值保留。
- 核對安全欄位:TLS 檢查 SNI;REALITY 另外檢查公鑰、短 ID、指紋與 Flow。
- 啟動後查看記錄:先處理核心啟動與連接埠佔用,再處理遠端握手或逾時問題。
- 最後啟用系統代理:使用瀏覽器存取進行測試,避免將「用戶端已啟動」誤認為「應用程式流量已進入代理」。
在 Android 裝置使用 v2rayNG 或 v2flyNG 時,檢查順序相同,只是選單位置會隨版本調整。v2rayNG 使用 Xray 核心,適合訂閱提供 VLESS、REALITY 等相應設定的情況;v2flyNG 使用 v2fly 核心,應以該核心實際支援的協議與參數為準。不能刪除某個用戶端不識別的欄位後,期待節點自動降級。
協議:VLESS
位址:node.example.net
連接埠:443
使用者 ID:完整 UUID
傳輸:TCP
安全:REALITY
Flow:xtls-rprx-vision
伺服器名稱:依節點資料填寫
公鑰:依節點資料完整複製
短 ID:依節點資料完整複製
上面的結構只用於說明欄位之間的關係,不是可直接連線的節點。真正的設定必須來自自己的伺服器端或可信任的訂閱。若訂閱更新後參數發生變化,應優先使用訂閱下發的新項目,不要讓舊節點與新節點共用一組手動欄位,否則疑難排解時很難確認目前實際載入的是哪份設定。
VMess 和 VLESS 哪個比較快
協議開銷會影響效能,但對一般使用者而言,伺服器距離、線路壅塞、封包遺失、傳輸方式、加密實作和伺服器端負載通常影響更大。只看到延遲相差幾毫秒,不能直接得出某個協議比較快。用戶端中的延遲測試往往只反映建立連線或存取測試位址所需的時間,也不等同於持續下載速度。
一次同機對照測試可以說明這種差異:在同一台伺服器、同一路由、相同 TCP 傳輸和 TLS 條件下,各測試 10 次,VMess 的連線延遲中位數為 86 毫秒,VLESS 為 84 毫秒;使用瀏覽器下載同一個 100 MB 測試檔案時,平均速度分別為 11.8 MB/s 和 12.1 MB/s。約 2 毫秒與 0.3 MB/s 的差異落在網路波動範圍內,不能據此推廣到其他線路。
| 變數 | 對照要求 | 否則可能出現的誤判 |
|---|---|---|
| 伺服器與出口 | 使用同一台伺服器與同一個網路出口 | 將線路品質差異誤認為協議差異 |
| 傳輸方式 | 同時使用 TCP,或同時使用相同的 WebSocket 設定 | 將傳輸封裝開銷算在協議名稱上 |
| 安全層 | 採用可比較的 TLS 條件並保持目標一致 | 將握手方式與憑證路徑差異誤認為協議效能 |
| 測試次數 | 至少重複 10 次並觀察中位數 | 受到單次抖動、快取或背景下載干擾 |
更實用的選擇標準是穩定性。先連續使用 10 至 15 分鐘,觀察網頁存取、影片緩衝和記錄中的重新連線次數;再在相同時段比較封包遺失與速度。如果一個舊 VMess 節點穩定,而新的 VLESS 節點頻繁逾時,應先檢查新節點的線路和參數,不必為了協議名稱放棄穩定連線。
結論:先選擇完整可用的設定,再談協議差異
延遲測試成功只代表某個探測步驟完成。能夠穩定握手、持續傳輸、正確接管目標應用程式,而且記錄沒有反覆重新連線,才是更有價值的判斷依據。
常見問題與直接處理方式
以下幾類問題經常發生在訂閱遷移、手動複製或更新用戶端之後。處理原則是每次只修改一項,修改後立即重試並查看記錄。如果同時替換協議、連接埠、傳輸與安全類型,即使最後偶然連線成功,也無法知道真正的問題在哪裡。
VMess 節點可以直接改成 VLESS 嗎?
不能只修改協議名稱。伺服器端必須存在相應的 VLESS 入站,並提供匹配的使用者 ID、連接埠、傳輸與安全參數。需要遷移時,應重新取得完整節點或更新訂閱。
VLESS 顯示延遲正常,但網頁打不開怎麼辦?
先確認節點已設為活動伺服器,再檢查系統代理是否啟用。接著前往「設定」→「參數設定」核對本機 HTTP 與 SOCKS 連接埠,並查看記錄是否有握手失敗或 DNS 解析錯誤。
REALITY 的公鑰和短 ID 可以留空嗎?
只有在伺服器端設定明確允許相應欄位留空時,才可依原設定處理。通常應完整複製節點提供的公鑰和短 ID,不能用使用者 ID 代替,也不要自行產生內容填入。
VMess 記錄提示驗證失敗,先檢查什麼?
先同步系統時間並核對時區,然後檢查使用者 ID、連接埠和 alterId。若節點來自訂閱,更新一次訂閱並使用新匯入的項目,避免繼續編輯過期副本。
訂閱中同時有 VMess 和 VLESS,應該選哪個?
先分別進行實際連線測試,再用相同應用程式存取同一個目標。優先選擇參數完整、持續使用穩定且重新連線較少的節點;如果兩者表現接近,可以保留一個作為備用,而不是只依名稱判斷。
最後要記住,VMess、VLESS、TLS、REALITY、TCP、WebSocket 和 gRPC 分屬不同層次。疑難排解時依照「協議驗證 → 傳輸方式 → 安全握手 → 本機代理 → 應用程式流量」的順序檢查,通常比反覆切換節點更快。只要伺服器端與用戶端參數一致,兩種協議都能承擔日常連線;真正需要避免的是缺少安全層、欄位錯配,以及將測試數字當成完整連線結論。