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

比較 VMess、VLESS、Trojan 與 Shadowsocks 的加密方式、連線速度和耗電表現,並提供桌面、手機通勤及網路不穩時的選擇建議。

本文重點

協定名稱本身無法決定速度、安全性或耗電量。本文先說明協定、傳輸方式與安全層的差異,再比較四種協定的設定欄位,最後整理桌面辦公、手機通勤和網路不穩時的選擇步驟。適合已取得訂閱、想挑選常用節點的使用者;看完可依服務端設定和實際連線狀況做決定,而不是只看節點名稱。

協定、傳輸方式與安全層:先了解完整連線組合

v2rayN 是桌面用戶端,不是協定。它負責管理訂閱、產生設定並呼叫核心建立連線。Android 版 v2rayNG 使用 Xray 核心,v2flyNG 使用 v2fly 核心;不能只因名稱相近,就認定兩者支援完全相同的設定。尤其是 VLESS 的特定擴充功能和 REALITY,應逐項確認用戶端搭載的核心是否支援。

一個節點通常包含三個層次:代理協定決定身分驗證和資料組織方式,傳輸方式決定資料如何承載,安全層則負責連線加密與驗證。例如「VLESS + TCP + REALITY」和「VLESS + WebSocket + TLS」雖然都稱為 VLESS,握手流程、伺服器部署方式和故障點卻不相同。

四種協定比較:發展背景、加密方式與設定欄位

Shadowsocks 早期用於輕量加密代理,後來發展出 AEAD 和 2022 系列加密方式。VMess 源自 V2Ray 專案,整合身分驗證與資料加密。VLESS 採用較精簡的協定設計,通常交由外部安全層保護連線。Trojan 則透過 TLS 連線承載代理工作階段,仰賴正確的憑證驗證與伺服器設定。

協定 驗證與加密重點 匯入後優先確認 常見錯誤觀念
VMess 使用 UUID 識別使用者;現代設定採用 AEAD 驗證,並可選擇相應的資料加密方式。 UUID、加密選項、alterId、傳輸類型及 TLS 設定。 將舊設定中的非零 alterId 原封不動套用到新伺服器。
VLESS 使用 UUID 驗證;常見的 encryption=none 設定本身不會加密負載資料,通常會搭配 TLS 或 REALITY。 UUID、flow、安全層,以及 REALITY 所需的公鑰、shortId 等參數。 以為 none 代表整條連線必定是明文,或反過來忽略安全層。
Trojan 通常以密碼驗證,並使用 TLS 保護連線。 密碼、伺服器名稱、連接埠與憑證驗證設定。 長期使用「允許不安全連線」來略過憑證錯誤。
Shadowsocks 由個別加密方式規定金鑰與資料保護方式;不同方法對金鑰格式的要求也不同。 加密方式、密碼或金鑰、連接埠,以及是否需要額外的傳輸外掛。 把 2022 系列方法的金鑰當成一般可讀密碼輸入。

此處對 VLESS 的說明適用於常見的 encryption=none 部署,不代表所有核心版本和後續擴充都只有這種形式。Shadowsocks 的 AEAD 和 2022 系列也無法只改名稱就互通:用戶端核心、伺服器實作與金鑰格式都必須相符。

443
TLS 服務常用的連接埠,但不是協定的硬性要求
8388
Shadowsocks 常見的設定範例連接埠,可由伺服器變更
0
現代 VMess AEAD 設定使用的 alterId 值

連接埠號碼只用來識別設定,無法證明連線使用哪種協定或是否安全。443 也能執行非 TLS 服務;同樣地,設定正確的 TLS 服務也能監聽其他連接埠。請一律以訂閱提供的完整參數為準。

握手成本與速度:為什麼四種協定沒有固定排名

首次開啟網頁時,DNS 查詢、連線至伺服器、安全握手、代理請求及目標網站回應都可能影響等待時間。WebSocket 通常還會進行升級請求;若部署經過中繼轉送,連線路徑也會改變。因此,「協定標頭較短」不等於「首頁一定載入較快」。

持續下載則是另一種情況。連線建立後,出口頻寬、網路壅塞、封包遺失、伺服器負載和裝置加密效能通常更重要。VMess 額外套用 TLS 可能增加處理負擔,但不能因此斷定實際傳輸速度一定比 VLESS 慢。不同地區、不同服務商的節點,不能靠一次測速就得出協定結論。

  1. 固定測試條件:盡量挑選相同機房、出口相近,且傳輸方式與安全層一致的候選節點;若無法做到,應將結果標示為「節點比較」,而非「協定比較」。
  2. 分別記錄兩類指標:短連線記錄首次可用時間與失敗次數;持續連線則記錄下載是否中斷,以及傳輸速度是否穩定。
  3. 每個候選測試 3 次:使用相同目標並選在同一時段,交錯測試候選項目,避免把某一分鐘的壅塞誤認為協定差異。
  4. 最後回到實際使用情境:辦公時觀察網頁登入和會議重新連線;通勤時觀察切換網路後的恢復狀況,不要只留下一張單次峰值速度截圖。

結論:先排除線路差異,再比較協定成本

若無法取得同一台伺服器上的可比較設定,請依節點連線成功率和實際工作表現選擇常用項目;不要把兩個不同出口的測速結果歸因於 VMess 或 VLESS。

桌面辦公的協定選擇:先保留已驗證可用的組合

辦公環境最重要的是連線穩定可重現,且故障容易排查。已有穩定訂閱時,不必為了更換協定名稱而重新架設。若是全新部署,而且用戶端與伺服器都支援,可優先評估搭配安全層設定正確的 VLESS;若現有服務採用 VMess、Trojan 或 Shadowsocks,相容性與維護條件也應納入考量。

VLESS + TLS 或 REALITY

建議

可列為新部署的優先評估方案,前提是用戶端和伺服器支援相同的參數組合。TLS 必須正確驗證憑證;REALITY 則須確認公鑰、伺服器名稱、shortId 和適用的 flow,不能混用其他節點的資料。

適用情境:能確認伺服器參數,且使用相容核心的桌面辦公環境

Trojan + TLS

已有網域名稱與憑證管理流程時,較容易納入日常維護。設定通常以密碼和 TLS 參數為主,但密碼簡單不代表可以省略憑證驗證。

適用情境:已有可靠 TLS 服務及憑證維護流程的環境

VMess

若現有訂閱設定正確,且用戶端運作穩定,可以繼續使用。若連線失敗,先確認系統時間、UUID 和傳輸參數,不要立刻更換協定。

適用情境:已有 VMess 訂閱,且需要維持既有部署的相容性

Shadowsocks AEAD 或 2022 系列

直接部署時,設定項目相對集中。先確認兩端支援相同的加密方式,再核對金鑰;若伺服器還需要外掛,也要另外確認用戶端是否支援。

適用情境:設定流程明確,且希望減少額外傳輸層的場景

在 v2rayN 中,可先前往「設定」→「參數設定」確認本機監聽連接埠,再檢查主畫面的系統代理狀態。不同版本可能調整欄位分組,請以實際介面為準。系統代理只會影響遵循該設定的應用程式;若某個程式仍直接連線,不代表協定失效。

手機通勤與網路不穩:優先觀察重新連線、UDP 和耗電情形

手機耗電量不能只按協定排序。螢幕亮度、行動訊號強度、背景應用程式、路由範圍和連線保活都會影響結果。訊號微弱時反覆重新連線,可能比協定加密本身消耗更多電量;因此不應提出「VLESS 固定省電多少」這類缺乏測試條件的數字。

網路不穩也不代表換用某種協定就能消除封包遺失。本文提到的四種協定不等於四種壅塞控制演算法。需要分辨外層使用 TCP 或其他承載方式、伺服器是否支援 UDP 轉送,以及應用程式本身使用哪種傳輸方式。網頁能正常使用,不代表語音通話所需的 UDP 路徑也能運作。

比較方案:分別在固定網路與行動網路下驗證

桌面端:v2rayN
  • 固定使用一個候選節點,先測試登入、檔案上傳和會議連線。
  • 維持相同路由規則,避免把直連和代理混在同一次測試中。
  • 每輪記錄失敗次數,並保留一個已驗證可用的備用節點。
Android 端:v2rayNG
  • 分別在 Wi-Fi 和行動網路下測試,再測一次切換網路後的重新連線。
  • 依實際需求設定依應用程式代理,減少不必要的背景代理連線。
  • 使用系統電池用量統計,比較相同使用時間,並盡量維持相近的螢幕亮度和工作內容。

每次只變更節點或路由其中一項;兩端可以使用同一份訂閱,但仍須分別確認核心相容性和匯入結果。

若選用 v2flyNG,應依其搭載的 v2fly 核心實際功能挑選節點,尤其不要把為 Xray 特定功能產生的設定直接視為通用設定。行動裝置的選擇重點是連線能穩定恢復、支援所需應用程式,且相同工作下的耗電量可以接受。

匯入後無法連線:依錯誤層次逐步排查

排除問題時,先分清楚是「伺服器連線失敗」還是「本機應用程式未使用代理」。先確認節點位址和連接埠可連線,再檢查驗證、傳輸與安全層,最後確認本機系統代理、DNS 和分流設定。記錄中的連線逾時、驗證失敗和憑證錯誤分別指向不同問題,不宜同時修改多項設定。

VMess 可以匯入,卻一直連線失敗,怎麼辦?

先校正系統時間,再確認 UUID、alterId 和伺服器要求。現代 AEAD 設定通常使用 alterId=0;接著確認 WebSocket 路徑、Host 和 TLS 狀態。匯入成功只表示設定可解析,不代表參數與伺服器一致。

VLESS 節點有 UUID,為什麼還是驗證失敗?

UUID 並非全部參數。確認安全類型是 TLS 還是 REALITY,並逐項比對 flow、伺服器名稱、公鑰與 shortId。不要自行把 flow 改成其他值;請重新取得與伺服器一致的完整設定。

Trojan 出現憑證錯誤,可以直接略過驗證嗎?

不要把略過驗證當成長期解決方式。先確認裝置時間和伺服器名稱,再請伺服器維護者檢查憑證有效期限、憑證鏈及網域是否相符。即使直接使用 IP 連線,仍須使用正確的 TLS 伺服器名稱和驗證設定。

Shadowsocks 密碼沒填錯,為什麼還是無法連線?

同時確認加密方式和連接埠。2022 系列方法要求特定長度和格式的金鑰,不能任意改用一般密碼。若網頁可以使用,但通話失敗,請再檢查伺服器 UDP 轉送、防火牆和應用程式分流規則。

測速顯示可用,瀏覽器卻無法開啟網頁?

在 v2rayN 主畫面確認系統代理狀態,並前往「設定」→「參數設定」確認本機連接埠;手動設定代理的應用程式也必須使用相同連接埠。接著查看 DNS 和路由規則的套用情形,不要先更改可用節點的協定。

最終選擇清單:把協定名稱轉化為可驗證的條件

對一般使用者來說,最實用的選擇順序是:用戶端能完整支援、伺服器設定明確、實際工作可持續正常運作,最後才比較細微的效能差異。協定決定能力範圍,線路和部署方式則左右許多實際體驗;兩者都要一起考量。

下載 v2rayN