已有訂閱的使用者,建議優先選擇參數完整、且用戶端與伺服器端核心都支援的節點;自行架設伺服器的使用者,則可進一步比較驗證方式、安全層與傳輸組合。本文會先說明協定與核心的關係,再比較四種方案的實際差異,最後整理桌面端與 Android 的檢查步驟。看完即可判斷何時沿用 VMess、何時採用 VLESS + REALITY,以及 Trojan 和 Shadowsocks 各自適用的情況。
先分清協定、傳輸方式、安全層與用戶端
節點名稱中的「VLESS + TCP + REALITY」並非三種同類選項。VLESS 負責代理請求與使用者驗證;TCP 是底層傳輸方式;REALITY 則負責連線的安全握手與相關驗證機制。混淆這些層級,很容易誤以為「選了 VLESS 為什麼還是連不上」,或「改用 443 連接埠就會自動啟用 TLS」。
v2rayN、v2rayNG 和 v2flyNG 都是圖形化用戶端,並非這四種協定的別稱。v2rayN 的實際功能取決於所選核心與版本;v2rayNG 使用 Xray 核心;v2flyNG 使用 v2fly 核心。介面上有某個欄位,不代表舊版核心已支援相應組合;訂閱能匯入,也不代表所有參數都正確保留。
- 代理協定:VMess、VLESS、Trojan、Shadowsocks,決定請求格式與驗證方式。
- 傳輸方式:TCP、WebSocket、gRPC 等,決定代理資料如何在連線中傳送;支援範圍視具體實作而定。
- 安全機制:TLS、REALITY 或協定本身的加密,不能只憑節點名稱判斷。
- 連線與分流:系統代理、TUN、路由規則會決定哪些應用程式與目的地經由節點連線,不會自動變更節點協定。
四種協定比較:加密、驗證與 REALITY
下表討論常見且仍在使用的設定方式。VMess 以現代 AEAD 設定為前提;Shadowsocks 則需區分傳統 AEAD 與 2022 系列。即使協定名稱相同,採用的演算法與實作版本不同,支援情況也可能有差異。
| 協定 | 驗證與加密 | 常見傳輸方式 | 與 REALITY 的關係 | 主要檢查項目 |
|---|---|---|---|---|
| VMess | 以使用者 ID 驗證;常用 AEAD 加密資料,也可再搭配 TLS | TCP、WebSocket + TLS 等 | 一般不會與 REALITY 搭配使用 | UUID、加密選項、傳輸參數、系統時間 |
| VLESS | 常見設定以 UUID 驗證;傳統設定不會自行加密資料,需依賴外層保護 | TCP + TLS、TCP + REALITY、WebSocket + TLS 等 | Xray 中常見的組合,需確認兩端皆支援 | UUID、flow、安全層、服務名稱與公鑰相關參數 |
| Trojan | 以密碼驗證;一般設定依賴 TLS 保護資料 | 通常為 TCP + TLS,額外傳輸方式視實作而定 | 部分 Xray 設定可搭配使用,不能只憑名稱判定相容 | 密碼、TLS 服務名稱、憑證、傳輸方式 |
| Shadowsocks | 相容性由演算法與金鑰共同決定;常見選擇為 AEAD 或 2022 系列 | 原生支援 TCP、UDP;額外封裝需另行確認 | 並非協定原生功能,不應直接套用 VLESS 參數 | method、密碼或金鑰格式、UDP 支援 |
VMess 的 auto 是實作提供的加密選擇邏輯,並非獨立協定。現代設定通常使用 AEAD 驗證標頭;不確定舊版教學是否適用時,別隨意加上 alterId。使用時間驗證時,裝置時鐘也必須準確;先開啟系統自動校時,比反覆更換 UUID 更能對症處理。
VLESS 常見設定中的 encryption=none 不能脫離安全層解讀。這不代表整條連線必然以明文傳輸,也不表示 VLESS 會自動加密:外層採用 TLS 或 REALITY 時,會由相應機制提供保護。新版本加入的擴充功能需另外確認;本文不會將擴充欄位視為所有核心都具備的基本功能。
Shadowsocks 的 aes-128-gcm 和 2022-blake3-aes-128-gcm 不能互換使用。2022 系列有自己的金鑰長度與編碼要求:128 位元金鑰為 16 位元組,256 位元金鑰為 32 位元組,之後再依設定需求編碼。不能隨便填入一組短密碼,就期待用戶端自動轉換成正確金鑰。
握手與速度:為什麼不能只看協定名稱排名
首次連線所需時間包括名稱解析、連往節點的網路往返、安全握手、代理請求及目標網站回應。TCPing 通常只能確認節點連接埠是否能建立 TCP 連線,還沒驗證 UUID、密碼、憑證或 REALITY 參數,因此不能據此認定某種協定的完整連線速度較快。
在常見的 TCP 情境中,新建 TCP 連線通常需要一次往返;TLS 1.3 完整握手通常還需要一次往返。兩者是否能重疊、是否恢復工作階段,以及連線能否重複使用,都取決於具體實作。WebSocket 升級要求與額外的 HTTP 層也可能增加首次連線成本。遇到封包遺失時,這些成本會更加明顯,但不能直接相加,當成適用所有環境的延遲公式。
以上數字說明的是連接埠用途,不是測速結果。伺服器使用 443,不代表它一定具備瀏覽器可驗證的憑證;本機 SOCKS 使用 1080,也不代表遠端必須使用相同連接埠。先分清本機監聽連接埠與遠端入口,才能避免把本機連線設定錯誤誤判成協定效能問題。
- 固定比較條件:盡量選擇同一台伺服器、同一條線路與同一時段。不同地區的節點不能用來證明協定孰優孰劣。
- 分開測量延遲與吞吐量:先測試實際連線延遲,再下載同一個目標檔案測速;連續測試 5 次,記錄中位數與失敗次數。
- 記錄裝置指標:觀察處理器使用率、溫度與電量變化。Android 長時間下載造成的發熱,可能比幾十毫秒的握手差異更影響使用體驗。
- 一次只調整一個項目:先維持連線重複使用、路由與 DNS 設定不變,再比較傳輸方式與安全層,否則難以判斷差異來源。
依伺服器條件選擇:四種方案的適用範圍
沒有任何一種協定能脫離伺服器線路、參數管理與本機核心而成為通用最佳選擇。以下建議以「能管理伺服器並持續維護」為前提;若只有訂閱使用權,應以服務提供者給出的完整設定為準,別為了追求較新的名稱而自行拼湊參數。
VLESS + REALITY
推薦當用戶端與伺服器端都使用相容的 Xray 核心,且能維護伺服器參數時,可優先測試此方案。採用常見的 Vision 組合時,需確認 xtls-rprx-vision、服務名稱、公鑰相關參數與 shortId,不能只複製 UUID。
適用情況:能管理伺服器,並可讓桌面與 Android 用戶端設定保持一致的使用者。
Trojan + TLS
已有網域名稱、憑證與續期流程時,設定關係較直觀。將憑證信任、服務名稱與密碼分開檢查,有助於找出問題;憑證到期或 SNI 不符,都可能在代理請求送出前中斷連線。
適用情況:已有 TLS 維運條件,且希望沿用標準憑證驗證流程的環境。
VMess + WebSocket + TLS
已有可用的反向代理與 VMess 節點時,可以繼續沿用。若透過 CDN 連線,必須確認 CDN 支援相應的 WebSocket 轉發、連接埠與流量用途;路徑、Host 和 TLS 服務名稱是不同欄位。
適用情況:現有訂閱或服務架構已穩定使用 VMess。
Shadowsocks AEAD / 2022
原生設定項目較集中,主要檢查位址、連接埠、演算法與金鑰。支援的演算法、UDP 轉發及額外封裝都必須分別確認;不能因為「欄位少」,就認定它在所有網路環境中都更穩定。
適用情況:伺服器明確提供相應演算法,且需要確認原生 TCP 與 UDP 轉發的環境。
v2rayN 與 v2rayNG:匯入後逐項檢查
訂閱是散布節點參數的方式,並非第五種代理協定。同一條訂閱在兩個用戶端顯示相同的節點名稱,只能說明名稱一致,不能證明 flow、傳輸路徑與安全層都已正確解析。首次匯入後,請開啟節點編輯頁,逐項比對服務提供者給的資訊。
檢查方式:在桌面與 Android 分別測試同一個節點
桌面端:v2rayN
- 先確認目前實際使用的核心及其版本,而不只是記錄介面版本。
- 開啟節點編輯視窗,檢查協定、位址、遠端連接埠與安全層。
- 依實際本機連接埠進行連線測試,再確認系統代理或 TUN 設定是否符合用途。
- 連線失敗時,查看執行記錄,區分連線逾時、驗證失敗與憑證錯誤。
Android 端:v2rayNG
- 確認內建的 Xray 版本是否支援服務端提供的完整組合。
- 檢查節點的傳輸協定、TLS 或 REALITY 設定,以及服務名稱。
- 啟動連線,並確認已授予系統 VPN 權限。
- 暫時停用應用程式排除規則,避免測試用的應用程式未經代理連線。
更新訂閱只會同步其中包含的節點欄位;本機路由、DNS、系統代理與應用程式分流設定仍需個別檢查。
VLESS + REALITY 最容易漏掉服務名稱、公鑰相關參數、shortId 與 flow;VMess + WebSocket 常漏掉路徑與 Host;Trojan 常見問題是密碼或憑證服務名稱不符;Shadowsocks 則應先檢查 method 與金鑰格式。欄位名稱可能因用戶端版本而異,應依欄位用途比對,不要只看介面位置。
- 位址與服務名稱分開填寫:連線位址可以是伺服器 IP,但 TLS 服務名稱通常仍須符合憑證或伺服器允許的名稱,不應一律填入 IP。
- 保留憑證驗證:遇到憑證錯誤時,先檢查時間、服務名稱、信任鏈與憑證有效期限,不要把略過驗證當成長期做法。
- 個別測試 UDP:網頁能開啟不代表 UDP 可用;還要檢查協定實作、伺服器轉發、防火牆與用戶端連線模式。
- 妥善保管認證資訊:訂閱網址、UUID、密碼、金鑰與完整分享連結都屬敏感資料,不應直接放進公開截圖。
協定選型常見問題
VLESS 一定比 VMess 快嗎?
不一定。VLESS 常見設定減少了協定本身的資料加密處理,但實際使用時仍可能搭配 TLS 或 REALITY。請先固定伺服器與測試目標,分別進行 5 次實際連線測試與下載測試,再比較中位數、失敗率及處理器使用率。不同線路的測試結果不能歸因於協定名稱。
節點標示 REALITY,為什麼匯入後還是連線逾時?
先確認伺服器位址與遠端連接埠是否可連線,再開啟節點編輯頁檢查服務名稱、公鑰相關參數、shortId 與 flow。接著確認兩端的 Xray 版本。TCPing 正常只能證明連接埠可連線,不能證明 REALITY 握手成功;若記錄中出現握手錯誤,需依實際參數逐一排查。
Shadowsocks 可以開啟網頁,遊戲卻連不上,該怎麼辦?
先確認遊戲流量是否經由代理連線,再檢查伺服器端與用戶端是否啟用並支援 UDP。只設定瀏覽器或系統 HTTP 代理,通常無法接管遊戲的 UDP 流量。即使協定支援 UDP,伺服器防火牆或目前使用的網路也可能阻擋相關流量。
v2flyNG 可以直接使用同一個 REALITY 節點嗎?
不要只因為訂閱可以匯入,就認定節點可用。v2flyNG 使用 v2fly 核心,而本文討論的常見 REALITY 方案是以 Xray 實作為基礎。需要使用這類節點時,請先確認核心支援情況;Android 端可用 v2rayNG 測試服務提供者給的組合,修改節點名稱並不能讓它相容。
改用 Trojan 後,原本的路由規則還有效嗎?
如果規則使用的出口標籤維持不變,而且新節點已正確綁定該出口,規則就可以繼續使用;若規則依賴節點名稱、群組或特定出口,則需重新檢查。先測試一個應直連的目的地和一個應經代理的目的地,再查看記錄中的實際出口;不能只看用戶端顯示「已連線」。