VMess、VLESS、Trojan、Shadowsocks 協定比較:依使用情境選擇

從加密方式、傳輸負載、偽裝能力與客戶端相容性,拆解四種常見協定,並將協定名稱轉換成可直接執行的選擇條件。

本文速覽

這篇比較適合正在整理訂閱、手動新增節點或準備更換協定的使用者。重點不是替四種協定排出固定名次,而是確認目前客戶端能否完整支援節點參數、網路環境是否穩定,以及伺服器端提供哪種傳輸層組合。

先看結論:協定名稱不是唯一的選擇條件

VMess、VLESS、Trojan 和 Shadowsocks 都能承載代理流量,但解決問題的方式不同。VMess 將身分驗證、時間檢查與資料加密放在協定內部;VLESS 讓協定層更精簡,主要將機密性交給 TLS、REALITY 等外層安全機制;Trojan 從設計之初便以 TLS 連線為基礎組織驗證與資料傳輸;Shadowsocks 則以結構簡單、實作成熟和資源佔用較低見長。

一般使用者看到訂閱中同時出現四種節點時,不必只憑協定名稱判斷速度。實際體驗還會受到線路頻寬、往返延遲、封包遺失、傳輸方式、TLS 交握、伺服器負載與客戶端核心影響。同一台伺服器上,協定層負載通常只佔總耗時的一部分;如果線路本身延遲達 180 毫秒或持續遺失封包,單純將 VMess 換成 VLESS 並不會自動改善線路品質。

VMess

協定內含驗證與加密機制,歷史設定較多,在舊訂閱與既有部署中的支援範圍較廣。

適合:繼續使用穩定的既有節點、相容舊設定

VLESS

推薦

協定層較精簡,常與 TLS 或 REALITY 搭配;參數組合清楚時,適合作為新設定的主要方案。

適合:使用 Xray 核心、重視新傳輸組合

Trojan

依賴 TLS 提供加密,常使用標準 TLS 連接埠;部署時需要正確處理憑證、網域與交握參數。

適合:已有穩定網域與 TLS 部署條件

Shadowsocks

設定欄位較少,AEAD 加密方式成熟,在低規設備與結構簡單的接入情境中容易維護。

適合:輕量接入、低資源佔用、簡單設定

如果只需要一個容易執行的起點,可以先依客戶端核心篩選:v2rayN 搭配 Xray 核心時,優先檢查 VLESS、VMess 與 Trojan 節點;v2rayNG 同樣以 Xray 核心處理常見協定;使用 v2flyNG 搭配 v2fly 核心時,則應以目前核心實際支援的協定與傳輸參數為準。節點能夠匯入,不代表目前核心能辨識所有擴充欄位,連線前仍應查看日誌。

四個面向逐項比較:加密、負載、傳輸與相容性

VMess 使用使用者識別碼與時間資訊完成驗證,並在協定內部處理資料保護。它對系統時間較敏感,裝置時間偏差過大時可能導致驗證失敗。VLESS 使用 UUID 等資訊識別使用者,但本身不負責完整的內容加密,因此不能脫離安全傳輸層只看協定名稱;實際設定通常還需同時確認 security、flow、TLS 或 REALITY 等欄位。

Trojan 的驗證與資料承載建立在 TLS 連線之上,伺服器憑證、網域是否相符及系統時間都會影響交握。Shadowsocks 使用預先共用的密碼與指定加密方法,現代設定應採用 AEAD 或 Shadowsocks 2022 系列方法,客戶端與伺服器端的加密方法名稱必須完全一致。舊式方法即使仍出現在歷史設定中,也不適合作為新部署的預設選項。

比較項目 VMess VLESS Trojan Shadowsocks
協定層加密 包含驗證與資料保護機制 主要依賴外層 TLS 或 REALITY 依賴 TLS 由所選 AEAD 方法提供
常見身分資訊 UUID、alterId 等歷史欄位 UUID、flow 密碼 密碼與加密方法
常見傳輸組合 TCP、WebSocket、gRPC TCP、WebSocket、gRPC、REALITY TCP 上的 TLS,也可搭配特定傳輸 原生 TCP/UDP,擴充能力取決於實作
設定複雜度 中等,歷史欄位較多 中等,需要核對安全層參數 中等,需要處理 TLS 條件 較低,核心欄位較少
時間敏感項目 驗證依賴正確時間 TLS 或 REALITY 交握受時間影響 憑證驗證受時間影響 通常不依賴憑證時間
典型優勢 舊設定相容範圍較廣 協定層簡潔、組合彈性高 TLS 部署路徑明確 輕量、參數少、資源負載低

結論:先核對完整參數,再比較協定名稱

一個 VLESS 節點至少要整體檢查位址、連接埠、UUID、傳輸方式、安全層與 flow;Shadowsocks 節點則必須同時符合連接埠、密碼與加密方法。欄位缺漏導致的連線失敗,遠比協定之間幾個百分點的理論負載差異更常見。

桌面、行動與低規設備如何選擇

桌面辦公通常會同時執行瀏覽器、同步工具與即時通訊程式,連線持續時間較長,穩定性比短時間測速更重要。若訂閱提供 VLESS 搭配 TLS 或 REALITY,且 v2rayN 目前使用 Xray 核心,可以先將它作為主要連線;保留一條 VMess 或 Trojan 節點作為同線路對照。切換時不要同時變更伺服器地區、傳輸方式與協定,否則無法判斷是哪項變化影響結果。

Android 裝置經常在無線網路與行動網路之間切換,重新連線速度、耗電量與 UDP 可用性,比單次峰值速度更值得關注。v2rayNG 可處理常見的 Xray 節點,適合接收包含 VLESS、VMess 或 Trojan 的統一訂閱;使用 v2flyNG 時,應選擇訂閱中符合 v2fly 核心能力的節點。兩端共用訂閱可以同步節點清單,但路由規則、分應用程式代理與本機連接埠屬於客戶端本地設定,不會自動隨訂閱轉移。

推薦方案:主要協定與備用協定分工

桌面端(v2rayN)
  • 主要連線使用參數完整的 VLESS 節點
  • 保留 VMess 或 Trojan 作為對照
  • 在日誌中觀察交握與重新連線記錄
Android 端(v2rayNG 或 v2flyNG)
  • 透過同一份訂閱保持節點名稱一致
  • 依目前核心篩選可辨識的節點
  • 分別測試無線網路與行動網路

先固定伺服器地區與線路,再單獨切換協定;連續使用一段時間,比只看一次測速更容易找出穩定組合。

低規設備或需要大量並行小連線時,可以優先測試 Shadowsocks。它的核心設定通常只有伺服器、連接埠、密碼與加密方法,排錯流程較短。若業務必須使用複雜路由、特定流量控制或 REALITY,則應改用支援相應能力的 Xray 組合,而不是為了少幾個欄位,硬套不相容的協定。

  1. 辦公主力:優先比較 VLESS 與 Trojan 的長時間連線穩定性,再用 VMess 節點作為相容性備援。
  2. 頻繁切換網路:記錄切換網路後首次恢復所需時間,並確認 UDP 應用程式是否正常運作。
  3. 低規設備:先測試 Shadowsocks 的 CPU 使用率與持續吞吐量,再決定是否需要更複雜的傳輸層。
  4. 既有訂閱:穩定的 VMess 節點不必只因協定較早便立即替換,先評估線路與伺服器端的維護狀態。

用可重複測試取代單次測速

協定測試應固定伺服器、出口線路、目標檔案與測試時段。可執行的基本條件是:客戶端到伺服器的往返延遲約 50 毫秒、閒置時封包遺失率低於 1%、本地接入頻寬為 100 Mbps;每個節點連續測試 3 次,並在測試前關閉背景同步工作。以下數字用於示範測試記錄方式,不代表不同網路中的固定排名。

100 Mbps
固定本地接入頻寬
50 ms
範例往返延遲
3 次
每個節點重複測試
10 分鐘
持續連線觀察時間

測試結果至少記錄四項:首次連線耗時、持續下載速度、10 分鐘內重新連線次數,以及 UDP 是否可用。峰值速度只能反映某個瞬間,無法說明協定在切換網路或弱網環境下是否穩定。若四種節點並非位於同一台伺服器,就應將結果標記為「線路綜合表現」,不能歸因於協定本身。

還可以進行簡單的交叉驗證:先依 VLESS、VMess、Trojan、Shadowsocks 的順序測試,再反向重複一次。如果最先測試的節點總是較快,可能代表背景工作、伺服器短時負載或網路壅塞正在變化。只有正向與反向結果接近,才適合進一步比較平均值。

結論:穩定性指標應排在峰值速度之前

在 100 Mbps 接入環境中,連續 10 分鐘不重新連線、切換網路後能恢復,且 UDP 行為符合預期,通常比某次測試多出 5 Mbps 更有實際價值。

在 v2rayN 與 Android 客戶端中檢查協定參數

在 v2rayN 中,先從伺服器清單的類型欄確認節點是 VMess、VLESS、Trojan 還是 Shadowsocks,再開啟對應的伺服器設定。VLESS 需重點核對位址、連接埠、使用者 ID、傳輸協定、TLS 或 REALITY、安全流量控制;VMess 需重點核對使用者 ID、傳輸方式與安全設定;Trojan 檢查密碼、伺服器名稱及憑證相關選項;Shadowsocks 則核對密碼與加密方法。

本機代理連接埠也需要與瀏覽器或系統設定一致。常見設定會使用 SOCKS 連接埠 10808、HTTP 連接埠 10809,但這些數字可以由使用者修改,不能將範例值視為所有安裝環境的固定值。遇到應用程式無法連線時,應開啟「設定」→「參數設定」,查看目前本機監聽連接埠,再與應用程式中的代理位址逐項比對。

Android 端的排查順序類似。在 v2rayNG 中先開啟節點編輯頁面檢查協定欄位,再查看執行日誌中的 DNS、交握與連線錯誤;v2flyNG 則要額外確認節點使用的功能是否包含在目前 v2fly 核心中。若同一份訂閱在桌面可用、Android 端不可用,應優先比較兩端的核心與節點欄位,而不是立即認定伺服器故障。

常見誤區與最終選擇清單

「VLESS 一定比 VMess 快」是最常見的簡化判斷。VLESS 的協定層較精簡,但在實際連線中,TLS、傳輸封裝、網路往返與伺服器負載往往佔更大比例。另一個誤區是把 Trojan 等同於一般網頁流量;它確實建立在 TLS 之上,但實際網路特徵還會受到交握參數、傳輸行為與部署方式影響,不能只憑協定名稱得出絕對結論。

Shadowsocks 也不代表只能用於簡單的網頁存取。是否支援 UDP、並行連線與特定路由,取決於客戶端、伺服器端及設定組合。反過來說,設定欄位較多也不代表連線自然更可靠。任何協定都需要正確的伺服器端參數、可用線路與相符的核心。

訂閱中有四種協定,應該先測哪一個?

先選擇同一地區、同一電信線路的節點,依 VLESS、Trojan、VMess、Shadowsocks 各測試 3 次。若伺服器不同,就先依延遲與封包遺失率篩選線路,再比較協定。

VMess 節點還能繼續使用嗎?

可以。只要客戶端核心能辨識設定、伺服器仍在維護且連線穩定,就沒有只因協定名稱而更換的必要。新部署則可依安全層與維護條件評估 VLESS 等方案。

VLESS 匯入成功但無法連線,該怎麼辦?

依序檢查連接埠、UUID、傳輸方式、security、flow 與伺服器名稱。使用 REALITY 時,還要核對 publicKey、shortId 與指紋參數,並從核心日誌定位交握階段。

Trojan 使用 443 連接埠就代表設定一定正確嗎?

不是。443 只是常見連接埠,還要確認密碼、伺服器名稱、TLS 交握與伺服器端監聽狀態。若連接埠被其他服務佔用,日誌通常會出現連線遭拒或交握失敗。

Shadowsocks 為什麼連得上卻沒有流量?

先比對加密方法與密碼,再檢查本機 SOCKS 或 HTTP 連接埠。若只有特定應用程式失敗,繼續查看系統代理、分應用程式代理與路由規則是否涵蓋該應用程式。

最終選擇可以濃縮成三步:第一步確認目前客戶端與核心是否完整支援節點欄位;第二步在線路固定的條件下測試連線、重新連線與 UDP;第三步保留一個不同協定的備用節點。桌面主力可以優先評估 VLESS 搭配 Xray 核心,已有穩定的 VMess 節點則可繼續使用;TLS 部署條件成熟時可以選擇 Trojan;低規與簡單接入情境可以優先測試 Shadowsocks。

協定並不是選定一次後便永久不變的設定。訂閱提供者調整伺服器端、客戶端核心升級或網路環境改變後,原本的最佳組合可能會變動。保留測試記錄並在相同條件下重新測試,比追逐單一協定名稱更可靠。

下載 V2Ray 客戶端 依平台選擇 v2rayN 或 Android 客戶端