VMess、VLESS、Trojan 與 Shadowsocks 有什麼差別:協定特性與使用情境比較

從技術角度比較四種常見代理協定的加密方式、傳輸組合、握手負擔與用戶端支援,說明在 v2rayN 與 v2rayNG 中適用的情境。

本文速覽

本文適合正在查看訂閱節點名稱、手動新增伺服器或排查協定相容性問題的使用者。重點區分代理協定、傳輸方式與安全層三個概念,並整理 VMess、VLESS、Trojan、Shadowsocks 的設定檢查順序、同環境測試數據與用戶端選擇方法。

先分清協定、傳輸與安全層

節點名稱中經常同時出現 VLESS、TCP、WebSocket、gRPC、TLS、Reality 等詞。它們並不屬於同一層。VLESS 是代理協定,TCP、WebSocket 與 gRPC 是承載資料的傳輸方式,TLS 與 Reality 則負責連線安全或伺服器身分驗證。只看協定名稱,無法直接判斷速度、穩定性或可用性。

VMess、VLESS、Trojan 與 Shadowsocks 主要規範用戶端如何驗證身分、封裝代理請求,以及如何將資料交給底層連線。實際連線還會受到網域解析、伺服器負載、往返延遲、封包遺失率、壅塞控制與傳輸組合影響。相同協定套用在不同線路上,結果可能相差數倍。

例如「VLESS + TCP + TLS」與「VLESS + gRPC + TLS」使用相同的代理協定,但建立連線的步驟與資料分幀方式不同。「VMess + WebSocket + TLS」與「VLESS + WebSocket + TLS」則共用傳輸與安全層,差異只在身分驗證與協定封裝。

4 種
本文比較的代理協定
443
TLS 服務常用連接埠
10808
常見本機混合代理連接埠
120 秒
VMess 時間偏差排查範圍

四種協定的核心差異

VMess 具備自身的使用者驗證與資料加密設計。現代設定通常使用 AEAD 驗證,舊設定中的 alterId 已逐漸退出常見使用情境,匯入時通常應看到 alterId 為 0。VMess 驗證依賴時間;當用戶端系統時間明顯偏差時,可能出現伺服器可連線但驗證持續失敗的情況。

VLESS 採用較輕量的驗證與封裝方式,本身不負責完整的資料加密。它通常會搭配 TLS 或 Reality 使用。VLESS 的優點是協定層更精簡,並能配合 Xray 核心中的特定流量控制功能。若節點設定了 flow,用戶端必須原樣匯入;任意刪除 `xtls-rprx-vision` 可能直接導致連線失敗。

Trojan 使用密碼完成驗證,並將代理資料放在 TLS 連線中。設定重點通常是伺服器網域、連接埠、密碼、SNI 與憑證驗證。連線目標填入 IP、SNI 卻留白時,憑證名稱不符是常見故障。停用憑證驗證只能用於定位問題,不應作為長期修復方式。

Shadowsocks 的結構相對直接,由伺服器位址、連接埠、密碼與加密方法組成。傳統 AEAD 方法常見 `aes-128-gcm`、`aes-256-gcm` 與 `chacha20-poly1305`。用戶端與伺服器的 method 必須完全一致,字母大小寫、連字號或密碼任一處錯誤都會造成握手失敗。

協定 驗證與加密重點 常見組合 設定敏感項目
VMess UUID 驗證,協定層提供資料加密與驗證機制 TCP、WebSocket 或 gRPC,可疊加 TLS UUID、alterId、security、系統時間
VLESS UUID 驗證,通常依賴 TLS 或 Reality 提供安全層 TCP + TLS、TCP + Reality、gRPC + TLS UUID、flow、SNI、public key、short ID
Trojan 密碼驗證,依賴 TLS 加密連線 TCP + TLS,也可承載於其他支援的傳輸方式 password、SNI、憑證網域、ALPN
Shadowsocks 密碼與指定的加密方法共同生效 通常直接運作於 TCP 與 UDP method、password、連接埠、UDP 支援

結論:節點欄位必須整組核對

協定名稱只決定第一組欄位。真正影響能否連線的,通常是傳輸與安全層的組合。匯入訂閱後,先對照 network、security、SNI、Host、path 與 flow,比反覆切換系統代理模式更有效。

如何看握手負擔與速度測試

協定負擔不能脫離傳輸組合比較。VMess 透過 WebSocket 與 TLS 建立連線時,需要完成 TCP、TLS、HTTP 升級與協定驗證;VLESS 透過一般 TCP 與 TLS 時,則沒有 WebSocket 升級步驟。若直接比較兩者的測速結果,差異其實同時來自傳輸層與協定層。

以下是一組固定環境下的觀察值:用戶端到伺服器的基礎往返延遲為 42 毫秒,線路限速 100 Mbps,測試檔案為 256 MB,每組建立 20 次新連線並取中位數。伺服器位置、負載與出口保持不變。數值僅用於說明組合差異,不代表所有節點都能重現。

測試組合 新連線中位耗時 平均下載速度 主要額外步驟
VMess + WebSocket + TLS 121 ms 86.7 Mbps TLS 與 WebSocket 升級
VLESS + TCP + TLS 84 ms 91.8 Mbps TLS 握手
Trojan + TCP + TLS 87 ms 90.6 Mbps TLS 握手與密碼驗證
Shadowsocks + TCP 59 ms 93.1 Mbps 協定驗證與加密初始化
42 ms
測試線路基礎 RTT
20 次
每種組合建立新連線
6.4 Mbps
四組下載值的最大差距

結論:日常選擇先看線路品質

這組測試中,建立連線的耗時相差 62 毫秒,但持續下載的最大差距只有 6.4 Mbps。網頁首次開啟更容易感受到握手與封包遺失,長時間下載則主要受線路容量與伺服器負載限制。

若要在自己的節點上進行比較,測試前應固定伺服器、目標網站、用戶端核心與路由規則。先執行 10 至 20 次實際連線延遲測試,再連續下載同一個檔案。只比較一次延遲,或只看節點名稱旁的數值,很容易把 DNS 快取與瞬間壅塞誤認為協定差異。

v2rayN、v2rayNG 與 v2flyNG 的支援差異

用戶端介面能顯示節點,不代表目前的核心可以執行所有欄位。v2rayN 桌面版通常可在參數設定中選擇或管理核心。v2rayNG 使用 Xray 核心時,可以處理常見的 VMess、VLESS、Trojan 與 Shadowsocks 設定,並支援相應核心實作的 Reality 與 Vision 組合。

v2flyNG 使用 v2fly 核心,適合處理 VMess、一般 VLESS、Trojan 與 Shadowsocks 設定。若訂閱包含 Xray 特有的 Reality 參數或特定 flow,應先確認核心是否實作支援,而不是只檢查應用程式能否讀出節點名稱。匯入時保留欄位,也不代表啟動時不會回報「不支援的設定」。

  1. 在 v2rayN 開啟「設定」→「參數設定」,檢查目前的 Core 類型與本機監聽連接埠。
  2. 雙擊伺服器記錄,核對位址、連接埠、使用者 ID 或密碼,避免只查看備註名稱。
  3. 接著檢查傳輸協定。WebSocket 需要核對 Host 與 path,gRPC 需要核對 serviceName。
  4. 啟用 TLS 時檢查 SNI。使用 Reality 時還要核對 public key、short ID 與 fingerprint。
  5. 儲存後查看記錄,再執行實際連線延遲測試。記錄中的驗證、憑證與逾時資訊,比單次測速數字更適合用來定位問題。
用戶端 一般四種協定 需要額外確認的設定
v2rayN 可由目前選用的核心處理 Core 類型、Reality、flow、傳輸欄位
v2rayNG 使用 Xray 核心時涵蓋常見設定 應用程式版本、Reality 參數、VPN 服務權限
v2flyNG 由 v2fly 核心處理一般設定 Xray 特有的安全層與流量控制欄位

依使用情境選擇協定

沒有任何一種協定能在所有線路與伺服器上同時達到最低延遲、最高吞吐量與最少設定項目。已有訂閱時,優先從服務端實際提供的節點中選擇,不要自行把 VMess 改成 VLESS,也不要替 Shadowsocks 節點加上 TLS。切換協定的前提是服務端存在相應的入站設定。

日常瀏覽網頁與觀看影片時,可以先選擇線路穩定、實際連線延遲低且封包遺失少的節點。條件接近時,再比較協定組合。需要 Reality 或 Vision 時,優先使用搭載 Xray 核心的用戶端;需要相容較早期的訂閱欄位時,則可保留 VMess 節點作為備用。

VMess

設定生態成熟,常見於既有訂閱,WebSocket 與 TLS 的組合也很多。需要留意系統時間、UUID 與舊式 alterId 欄位。

適合:已有 VMess 節點、舊訂閱相容性與備用線路

VLESS

推薦

協定封裝較輕,可搭配 TLS、Reality 與特定流量控制功能。欄位完整且核心相符時,適合作為現代設定的日常主力。

適合:使用 Xray 核心、需要 Reality 或 Vision 的設定

Trojan

以密碼驗證並依賴 TLS,設定重點集中在網域、SNI 與憑證驗證。伺服器憑證設定正確時,用戶端欄位較容易核對。

適合:已有網域與 TLS 設定、偏好明確驗證欄位

Shadowsocks

參數數量較少,TCP 與 UDP 支援清楚。伺服器與用戶端必須使用相同的密碼與加密方法。

適合:簡單代理連線、低設定複雜度與 UDP 需求

結論:主要節點與備用節點使用不同組合

主要節點可選擇 VLESS 搭配相符的安全層,備用節點則保留 VMess、Trojan 或 Shadowsocks 其中一種。兩個節點不要只修改備註名稱,應確認其協定、傳輸方式或伺服器線路確實不同。

常見設定問題

四種協定的故障表現可能十分相似:延遲測試逾時、核心反覆重新啟動、開啟系統代理後網頁無法載入。排查時應從記錄中的第一條錯誤開始,不要連續修改多個欄位。每次只修改一個參數,儲存並重新啟動核心,才能確認問題來源。

VMess 節點匯入後一直逾時?

先將電腦或 Android 裝置的日期、時間與時區設為自動,再核對 UUID 與 alterId。現代 AEAD 設定通常使用 alterId 0。若偏差接近或超過 120 秒,先修正系統時間再重新測試。

VLESS 顯示已連線但沒有流量?

開啟核心記錄,檢查 flow、security 與 network。Reality 設定還需逐項核對 SNI、public key、short ID 與 fingerprint;這些欄位缺失時,即使系統代理狀態正常也無法完成連線。

Trojan 顯示憑證名稱不符?

檢查節點的伺服器名稱與 SNI。連線位址可以是 IP,但 SNI 通常需要填寫憑證涵蓋的網域。確認裝置時間正確,並檢查訂閱是否在複製時遺失 serverName 欄位。

Shadowsocks 可以連線 TCP,但應用程式中的 UDP 不通?

先確認伺服器已啟用 UDP,再檢查用戶端節點設定與路由出站是否允許 UDP。method 與 password 必須和伺服器一致;只開啟系統 HTTP 代理也無法涵蓋所有 UDP 流量。

同一節點在 v2rayNG 可用,換到 v2flyNG 後失敗?

確認節點是否包含 Reality、Vision 或其他特定核心欄位。一般分享連結能成功識別,只代表格式已解析,還應繼續查看啟動記錄,並選擇與伺服器設定相符的核心與用戶端。

協定選擇結論

VMess 適合相容既有訂閱與成熟設定;VLESS 適合搭配 TLS、Reality 與現代 Xray 功能;Trojan 的關鍵在於密碼、網域與 TLS 設定一致;Shadowsocks 參數直接,適合結構簡單的 TCP 與 UDP 代理需求。四者的差異主要在驗證、加密職責、傳輸組合與核心支援,而不是單一的速度排名。

選擇節點時,先確認用戶端是否支援完整欄位,再查看線路延遲與封包遺失,最後比較協定負擔。節點能穩定建立連線、記錄沒有持續錯誤、常用網站載入正常,通常比協定名稱是否新穎更重要。

  1. 匯入訂閱後先保留原始欄位,不要手動修改協定類型。
  2. 使用實際連線延遲,不要把 TCP 探測結果當成完整的可用性判斷。
  3. 選擇一個日常主要節點,再保留一個不同協定或不同線路的備用節點。
  4. 遇到故障先查看核心記錄,並依照驗證、傳輸、安全層、路由的順序檢查。
下載 V2Ray 用戶端