VMess、VLESS、Trojan、Shadowsocks 協定比較:不同情境該怎麼選

比較四種常見代理協定的加密方式、傳輸負載、偽裝能力與客戶端支援,並依家庭寬頻、行動網路和低效能裝置說明選擇方向。

本文速覽

本文適合正在設定 v2rayN、v2rayNG 或 v2flyNG,卻不確定該選 VMess、VLESS、Trojan 還是 Shadowsocks 的使用者。判斷重點不是協定名稱的新舊,而是伺服器端核心、傳輸層、安全層、裝置效能與網路波動是否相符;讀完後可依情境縮小選擇範圍,也能辨識訂閱中影響實際表現的關鍵欄位。

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

VMess、VLESS、Trojan 和 Shadowsocks 首先處理的是客戶端與伺服器端如何驗證、封裝及轉送流量。TCP、WebSocket、gRPC 等屬於傳輸方式,TLS 與 REALITY 則屬於連線安全或握手方案。若將這些層次混為一談,就容易誤判為「某個協定天生適合某個連接埠」或「改用 WebSocket 就一定更隱密」。

例如,VLESS 本身不負責加密業務資料,通常必須搭配 TLS 或 REALITY;Trojan 的常見部署則直接依賴 TLS;VMess 內建驗證與加密機制,但仍可再疊加 TLS;Shadowsocks 使用預共享金鑰與對稱式加密方法。協定相同但傳輸層不同時,建立連線所需時間、額外標頭與故障表現都可能不同。

4 類
本文比較的代理協定
443
TLS 服務常用連接埠
10808
v2rayN 常見本機 SOCKS 連接埠
10809
常見本機 HTTP 代理連接埠

連接埠號只代表服務的監聽位置,不決定協定強弱。443 常用於 TLS 服務,是因為符合標準 HTTPS 連接埠的慣例;Shadowsocks、VMess 或其他設定也能使用不同連接埠。v2rayN 的本機連接埠同樣可以修改,檢查時應以「設定」→「參數設定」中顯示的目前值為準,而不是機械式套用 10808 或 10809。

協定 驗證與加密重點 常見安全組合 主要注意事項
VMess 使用使用者 ID、時間校驗與協定本身的驗證加密 VMess + TCP + TLS,或 VMess + WebSocket + TLS 客戶端與伺服器端時間差距過大時可能驗證失敗
VLESS 驗證與資料轉送保持精簡,不內建資料加密 VLESS + TLS,或 VLESS + REALITY + Vision 必須正確理解 security、flow 與傳輸欄位
Trojan 以密碼驗證,並依賴 TLS 保護連線 Trojan + TCP + TLS 憑證、網域與系統時間都會影響 TLS 握手
Shadowsocks 預共享金鑰與 AEAD 或 2022 系列加密方法 AES-GCM、ChaCha20-Poly1305 或 2022 方法 兩端必須使用完全一致且都受支援的方法

四種協定的核心差異

VMess 是 V2Ray 生態系中較早普及的協定,在成熟訂閱中仍十分常見。它包含驗證、時間校驗與加密流程,伺服器端與客戶端通常透過 UUID 識別使用者。VMess 的優勢是既有設定涵蓋廣,v2rayN、v2rayNG 與 v2flyNG 都能處理常見組合;代價則是協定邏輯與封裝比 VLESS 複雜。

VLESS 採用精簡的驗證與轉送設計,使用者識別碼通常為 UUID,二進位長度為 16 位元組。由於 VLESS 不會自行加密資料層,部署時不能省略安全設計。Xray 核心常見的 VLESS + REALITY + XTLS Vision 組合,重點在於讓安全握手與流量控制協同運作,而不是單靠「VLESS」四個字。

VMess

相容於現有 V2Ray 訂閱及傳統 WebSocket、TCP 設定,遷移舊服務時需要修改的地方較少。

適合:已有穩定 VMess 節點,需要相容既有設定

VLESS

推薦

協定層精簡,可搭配 Xray 的 REALITY、XTLS Vision 等功能,參數界線清楚。

適合:新建 Xray 服務,作為桌面與 Android 日常主力

Trojan

以 TLS 為基礎,設定重點集中在網域、憑證、密碼與伺服器端監聽關係。

適合:已有規範的 TLS 部署,希望維持直觀的設定結構

Shadowsocks

協定實作相對精簡,選擇受支援的加密方法後,可降低低效能裝置的處理負擔。

適合:簡單轉送、資源受限裝置,以及能明確控管兩端版本的情境

Trojan 的常見形式建立在標準 TLS 連線之上,驗證資訊位於 TLS 保護的連線內部。它的排錯流程相對明確:先檢查網域解析,再確認憑證有效性與系統時間,接著核對密碼、連接埠和傳輸設定。若 TLS 握手尚未完成,繼續調整路由規則通常無法解決問題。

Shadowsocks 的效能直接取決於所選的加密方法、處理器指令集與實作版本。支援 AES 硬體加速的桌面處理器通常適合 AES-GCM;缺少相應加速的裝置則可比較 ChaCha20-Poly1305。2022 系列方法進一步規範金鑰與重放防護,但客戶端和伺服器端必須同時支援,不能只修改其中一端。

結論:協定名稱不能取代完整設定

看到 VLESS 時,還要檢查 security、flow、network 與 serverName;看到 Shadowsocks 時,則要檢查 method 與金鑰。訂閱中只要缺少任一關鍵欄位,就可能比協定本身的理論負載更影響連線結果。

家庭寬頻、行動網路與低效能裝置該怎麼選

家庭寬頻通常連線穩定、封包遺失率低,可選範圍最大。若伺服器端使用 Xray 且參數完整,可優先評估 VLESS + REALITY + XTLS Vision;已有 VMess + TLS 節點長期穩定時,沒必要只為了更換名稱而重建。Trojan 適合已正確維護網域與 TLS 服務的環境,Shadowsocks 則適合結構簡單、雙方版本可控的轉送需求。

行動網路會遇到基地台切換、位址變更與短暫抖動。此時應先減少不必要的傳輸層疊加,再比較協定。WebSocket 方便透過既有 HTTP 基礎設施轉送,但會增加 HTTP 標頭與訊框封裝;直接使用 TCP 結構簡單,卻要確認伺服器端入口與網路環境允許穩定連線。不存在適用於所有行動網路的固定最佳答案。

推薦方案:依穩定網路與波動網路分別建立測試組

家庭寬頻桌面端
  • v2rayN 使用 Xray 核心
  • 優先比較 VLESS 與現有 VMess
  • 系統代理連接埠以參數設定為準
  • 固定使用同一台伺服器,排除線路差異
Android 行動網路
  • v2rayNG 使用 Xray 核心
  • 分別測試無線網路與行動網路
  • 保留一個結構簡單的備用設定
  • 切換網路後重新檢查連線記錄

比較協定時必須維持伺服器、出口線路與測試時段一致,否則測到的主要是線路差異,而不是協定差異。

低效能裝置的關鍵在於加密運算與封裝層數。若處理器具備 AES 指令加速,Shadowsocks 的 AES-128-GCM 通常可作為評估起點;若沒有,則可在雙方實作都支援的前提下比較 ChaCha20-Poly1305。VLESS 的協定層較輕,但疊加的 TLS、REALITY 或複雜傳輸仍需要運算資源,因此不能只因協定層精簡,就斷言整條鏈路的負載最低。

  1. 先記錄伺服器端協定、核心、安全層、傳輸方式與連接埠,不要只記節點名稱。
  2. 在同一個網路、同一台伺服器上分別連線候選設定,避免把不同線路混入比較。
  3. 觀察首次連線是否穩定、連續瀏覽是否中斷,以及裝置是否出現明顯發熱或耗電變化。
  4. 行動網路測試至少要涵蓋一次網路切換,確認切換後客戶端能否恢復連線。
  5. 保留一個已驗證可用的設定作為回復項目,再逐步調整單一參數。

在 v2rayN、v2rayNG 與 v2flyNG 中核對設定

桌面端使用 v2rayN 時,先更新訂閱並開啟節點編輯介面,核對位址、連接埠、使用者 ID 或密碼、傳輸協定、安全類型、SNI 或 serverName。接著進入「設定」→「參數設定」,確認本機 SOCKS 與 HTTP 監聽連接埠。若瀏覽器或其他應用程式手動指定了 10808,客戶端修改連接埠後也要同步修改呼叫端。

VLESS + REALITY 設定還要檢查 publicKey、shortId、serverName、fingerprint 與 flow。常見的 flow 值為 xtls-rprx-vision,但是否啟用必須與伺服器端一致。REALITY 不使用傳統網站憑證檔案來完成相同的部署流程,因此不能照搬 Trojan 的憑證排錯方式。

  1. 在 v2rayN 中選擇目標伺服器,開啟編輯視窗,確認協定欄位沒有被訂閱解析成其他類型。
  2. VMess 主要核對 UUID、alterId、security、network 與 TLS;現代設定中的 alterId 通常為 0。
  3. VLESS 主要核對 UUID、encryption、flow、security、network 與 serverName,常見的 encryption 值為 none。
  4. Trojan 主要核對密碼、連接埠、TLS、serverName,以及與憑證相符的網域。
  5. Shadowsocks 主要核對 method、密碼與連接埠,方法名稱必須與伺服器端完全一致。
協定排錯記錄範例
協定:VLESS
位址與連接埠:已與伺服器端核對
傳輸:tcp
安全層:reality
flow: xtls-rprx-vision
serverName:已與伺服器端核對
本機 SOCKS:10808
本機 HTTP:10809

Android 端若需要 Xray 的 REALITY 與 Vision 功能,應使用搭載 Xray 核心的 v2rayNG,並確認匯入後相關欄位沒有遺失。v2flyNG 採用 v2fly 核心,適合處理該核心支援的 VMess、VLESS、Trojan 與 Shadowsocks 設定,但某些 Xray 專屬組合不能只憑分享連結名稱推斷是否可用。

成功匯入訂閱只代表客戶端能辨識文字,不代表伺服器端參數正確。連線失敗時應開啟客戶端記錄,區分 DNS 解析失敗、連線遭拒、TLS 握手失敗、驗證失敗與本機連接埠遭佔用。不同錯誤需要處理不同層級,反覆切換協定通常只會掩蓋真正的問題。

常見選擇問題與具體處理方式

家庭寬頻直接選 VLESS 就可以嗎?

先確認伺服器端使用 Xray,並提供完整的 VLESS 參數。若現有 VMess 節點穩定,不需要只為了協定名稱而遷移;新建設定時可優先評估 VLESS + REALITY + XTLS Vision。

VMess 匯入後一直顯示驗證失敗,該怎麼辦?

先開啟系統自動校時,再核對 UUID、alterId 與 security。VMess 驗證依賴時間,裝置與標準時間差距過大時,即使位址和連接埠正確也可能失敗。

Trojan 密碼正確,但 TLS 握手失敗,該怎麼辦?

依序檢查網域解析、443 或實際監聽連接埠、serverName、與憑證相符的網域及裝置時間。TLS 尚未建立時,修改 Trojan 密碼無法修復憑證或網域問題。

Shadowsocks 該選 AES 還是 ChaCha20?

桌面處理器支援 AES 硬體加速時,可先嘗試 AES-128-GCM;低效能裝置則可比較 ChaCha20-Poly1305。最終方法必須由伺服器端提供,並確認客戶端核心明確支援。

更換協定後速度沒有變化,正常嗎?

正常。頻寬瓶頸經常位於伺服器出口、跨網路線路或本地無線網路。維持同一台伺服器和同一時段,只替換協定設定,才有條件判斷封裝與加密造成的差異。

協定選擇清單

如果目標是新建 Xray 設定,且桌面端使用 v2rayN、Android 端使用 v2rayNG,可先考慮 VLESS 與 Xray 支援的安全組合。如果已有大量 VMess 設定且運作穩定,繼續使用並維護正確參數更實際。具備規範的 TLS 網域與憑證管理條件時,Trojan 的結構清晰;裝置資源有限且伺服器端支援相符方法時,Shadowsocks 值得單獨測試。

最終判斷:穩定且可重現優先於理論排名

同一個協定在不同線路、核心與傳輸組合下,可能呈現完全不同的表現。保留完整參數記錄,使用同一台伺服器逐項比較,並選擇能在日常網路中穩定恢復、方便排錯的組合。

下載v2rayN