VMess、VLESS、Trojan、Shadowsocks 差異與選擇:四種代理協定比較

從加密方式、傳輸負擔、偽裝能力與核心支援比較 VMess、VLESS、Trojan、SS,整理家用寬頻、行動網路及老舊裝置的協定選擇建議。

選擇代理協定時,不能只看節點名稱寫了什麼。協定負責驗證與資料封裝,TLS、Reality、WebSocket、gRPC、TCP 等則負責安全層或傳輸層;客戶端核心決定特定組合能否實際運作。同一條線路上的 VMess 與 VLESS,速度差距可能很小;相同協定放在封包遺失嚴重的行動網路上,連線穩定性卻可能明顯不同。

本文速覽

本文適合正在 v2rayN、v2rayNG 或 v2flyNG 中選擇節點協定的使用者。重點不是替四種協定排定固定名次,而是建立一套可執行的判斷順序:先確認客戶端核心相容,再核對安全層與傳輸設定,接著結合網路封包遺失、裝置效能與伺服器條件完成選擇。

先拆解四個容易混淆的技術層次

VMess、VLESS、Trojan 與 Shadowsocks 都能負責代理連線的驗證與資料轉送,但它們並不完全採用相同的設計路線。VMess 包含協定層級的驗證與加密機制;VLESS 主要處理輕量驗證與轉送,通常需要搭配 TLS 或 Reality;Trojan 的常見部署依賴 TLS;Shadowsocks 則使用指定的對稱式加密方法保護代理流量。

傳輸方式是另一個層次。節點寫成「VLESS + TCP + Reality」時,VLESS 是代理協定,TCP 是底層傳輸,Reality 是安全與握手方案。寫成「VMess + WebSocket + TLS」時,WebSocket 負責承載資料,TLS 負責加密,VMess 仍負責協定驗證。只比較 VMess 和 VLESS,卻忽略後面的組合,通常無法得出有效結論。

協定 協定本身特徵 常見安全組合 選擇時優先核對
VMess 具備驗證、時間校驗與協定層級加密 TCP、WebSocket 搭配 TLS 系統時間、UUID、傳輸參數
VLESS 驗證與封裝較輕,不負責完整的傳輸加密 TLS、Reality、Vision 核心支援、serverName、flow
Trojan 使用密碼驗證,常見部署建構在 TLS 之上 TCP + TLS、gRPC + TLS 憑證網域、SNI、密碼、連接埠
Shadowsocks 使用預先共用密碼與指定加密方法 AEAD 或 2022 系列方法 method、密碼、核心方法支援
443
TLS 服務常用連接埠
128-bit
UUID 識別碼長度
10808
v2rayN 常見本機 SOCKS 連接埠
10809
v2rayN 常見本機 HTTP 連接埠

結論:先比較完整協定堆疊,不比較孤立名稱

看到節點名稱後,至少記錄「協定、傳輸、安全層、核心」四項。VLESS + Reality 與 VLESS + WebSocket + TLS 是兩條不同的連線路徑,穩定性、伺服器要求和可用客戶端都可能不同。

VMess、VLESS、Trojan、Shadowsocks 分別適合哪些情況

VMess:相容舊設定與成熟訂閱

VMess 長期用於 V2Ray 系列設定,常見欄位包括位址、連接埠、UUID、傳輸類型、路徑與 TLS 參數。它要求裝置時間準確:當本機時間有明顯偏差時,驗證可能失敗。因此 VMess 節點突然全部無法使用,而網路本身正常時,應先將 Windows、macOS、Android 或 Linux 的日期、時間與時區設為自動同步。

對於已穩定運作的 VMess + WebSocket + TLS 訂閱,沒有必要只因出現較新的協定名稱就立即遷移。舊裝置、舊伺服器設定或需要維持既有入口時,VMess 的設定相容性通常比理論上些微的封裝差異更有價值。現代設定一般使用 UUID 並將 alterId 維持為 0;若訂閱仍帶有舊式參數,應由服務提供者更新,而不是在客戶端反覆嘗試修改。

VLESS:Xray 環境中的主力候選

VLESS 減少了協定本身承擔的加密工作,通常將傳輸安全交給 TLS 或 Reality。它不是「預設已加密」的連線,缺少正確安全層時,不能只憑協定名稱判斷連線安全性。VLESS 與 Reality、XTLS Vision 等組合通常依賴 Xray 核心,並要求客戶端與伺服器欄位嚴格對應,包括 UUID、serverName、公鑰、shortId、fingerprint 與 flow。

VLESS 的優勢主要來自組合彈性和較新的 Xray 功能支援,而不是在所有網路環境下都必然更快。家用寬頻封包遺失率低時,VLESS 與其他合理設定的協定通常都能跑滿線路允許的吞吐量;行動網路頻繁切換基地台,或在 Wi-Fi 與行動網路之間切換時,連線恢復能力更多取決於傳輸方式、逾時設定和客戶端背景狀態。

Trojan:已有憑證與標準 TLS 入口時便於維護

Trojan 使用密碼驗證,常見部署直接運作於 TLS 之上。客戶端必須核對伺服器位址、連接埠、密碼、SNI 與憑證網域。伺服器位址可以是 IP,但 serverName 通常應填寫憑證涵蓋的網域;如果兩者不一致且 SNI 留空,容易出現憑證名稱不符或握手遭終止。

Trojan 適合已具備網域、憑證和 443 連接埠入口的環境。它的設定欄位相對直觀,但「欄位少」不代表排除故障的項目少。憑證有效期限、裝置時間、SNI、ALPN、傳輸類型和中間網路都可能影響握手。客戶端中的 allowInsecure 應保持關閉,憑證錯誤應從時間、網域與憑證鏈方向修正。

Shadowsocks:輕量裝置與明確加密方法

Shadowsocks 設定的核心是伺服器、連接埠、密碼與加密方法。傳統 AEAD 方法與 2022 系列方法不是可以任意互換的別名,客戶端和伺服器必須使用相同的 method。若匯入訂閱後提示「不支援的加密方式」,先檢查核心版本與方法支援,不要將 method 改成另一個看似相近的值,否則驗證一定無法通過。

在 CPU 與記憶體資源有限的裝置上,設定合理的 Shadowsocks 往往較容易部署和維護。但連線表現仍會受到加密方法、伺服器實作和網路品質影響。選用它時應優先確認訂閱提供的是完整設定,並在實際網路下測試網頁建立連線、持續下載和長連線維持,而不是只看一次延遲數字。

VMess

成熟設定較多,適合繼續使用現有 WebSocket 或 TCP 節點;排除故障時應優先檢查系統時間。

適合:舊訂閱、既有設定、延續相容性

VLESS

推薦

在 Xray 核心中可組合 TLS、Reality 與 Vision,適合作為新設定的主力候選。

適合:新部署、桌面與安卓主力連線

Trojan

依賴正確的 TLS、憑證網域與 SNI,欄位直觀,適合已有標準 TLS 入口的環境。

適合:憑證管理明確、443 連接埠入口

Shadowsocks

設定精簡,必須嚴格符合加密方法,適合資源有限的裝置與結構簡單的轉送需求。

適合:老舊裝置、輕量設定、備用連線

依網路與裝置情境選擇協定

家用寬頻通常具備較穩定的出口位址與較低的封包遺失率,選擇協定時應優先考慮長期維護。新建 Xray 伺服器時,可以先評估 VLESS + Reality 或 VLESS + TLS;已有 VMess、Trojan 節點穩定運作時,則應保留可回退的設定。單純為了更換協定而同時修改連接埠、傳輸和安全層,會讓故障發生後難以定位變因。

行動網路的核心問題通常不是峰值頻寬,而是連線抖動、休眠回收與網路切換。v2rayNG 使用 Xray 核心時,可以執行常見的 VMess、VLESS、Trojan 與 Shadowsocks 設定,但背景連線還會受到 Android 省電策略影響。若關閉螢幕數分鐘後斷線,應先將 v2rayNG 加入系統電池最佳化白名單,再測試協定差異。

推薦方案:主力協定與相容協定並存

穩定的家用寬頻
  • 主力使用 VLESS + TLS 或 Reality
  • 保留一個 VMess 或 Trojan 節點作為回退
  • 使用 443 等伺服器實際開放的連接埠
  • 每次只變更一個協定堆疊欄位
行動網路與老舊裝置
  • 先測試 Shadowsocks 或既有 VMess 設定
  • 安卓端關閉針對客戶端的電池限制
  • 記錄首次連線與關閉螢幕後的恢復結果
  • 避免同時疊加複雜傳輸與頻繁重新連線

訂閱中至少保留兩種可獨立驗證的協定組合,主連線故障時先切換節點,再檢查伺服器設定。

老舊裝置不要只追求最新組合

低效能裝置的瓶頸可能在 TLS 握手、加密運算或圖形客戶端本身。判斷時可以連續執行三類任務:開啟多個小型資源網頁、下載一個較大的檔案、維持 10 分鐘長連線。若延遲正常但持續下載時 CPU 長時間滿載,表示裝置的運算能力可能成為限制;若 CPU 使用率不高但連線頻繁重建,應轉向檢查網路封包遺失與傳輸參數。

  • 家用寬頻:優先選擇長期易於維護的 VLESS 或 Trojan 組合,同時保留相容節點。
  • 行動網路:先處理背景限制與網路切換,再比較協定的連線恢復表現。
  • 老舊裝置:優先選擇欄位較少、核心明確支援的設定,不要疊加不必要的傳輸層。
  • 舊訂閱遷移:保留原有節點,複製一份新設定進行對照,不要直接覆蓋唯一可用的入口。

客戶端核心決定哪些設定可以匯入和執行

v2rayN 是桌面圖形客戶端,常見的 7.x 介面可使用 Xray 核心執行四類協定。v2rayNG 是 Android 圖形客戶端,使用 Xray 核心,適合需要 VLESS、Reality 等組合的行動裝置。v2flyNG 使用 v2fly 核心,適合 V2Fly 設定體系;遇到 Xray 專屬欄位時,不應假設只靠修改分享連結名稱就能相容。

匯入訂閱只是將節點記錄寫入客戶端,不代表所有節點都能由目前的核心執行。訂閱中的連結可能包含客戶端無法辨識的 flow、安全類型或加密方法。若同一份訂閱在 v2rayN 與 v2rayNG 中可用,但在 v2flyNG 中失敗,應先比較協定擴充欄位與核心能力,而不是先懷疑訂閱位址損壞。

  1. 在 v2rayN 7.x 中進入「訂閱分組」→「訂閱分組設定」,確認訂閱位址完整且分組已啟用。
  2. 返回主介面,執行「訂閱分組」→「更新全部訂閱」,觀察節點數量與更新時間是否變化。
  3. 選取節點後執行「伺服器」→「測試伺服器真實連線延遲」,不要只用 ICMP 類延遲判斷代理是否可用。
  4. 進入「設定」→「參數設定」,核對本機 SOCKS 與 HTTP 監聽連接埠;常見預設值分別為 10808 和 10809,實際設定以目前介面為準。
  5. 在 v2rayNG 1.10.x 中進入左上角選單的「訂閱設定」,儲存位址後返回主介面並執行「更新訂閱」。
  6. 連線前開啟節點編輯頁面,逐項核對位址、連接埠、使用者識別碼或密碼、傳輸方式、TLS、SNI 與 flow。
協定記錄範例
協定: VLESS
傳輸: TCP
安全: Reality
核心: Xray
連接埠: 伺服器實際開放的連接埠
核對項目: UUID / serverName / publicKey / shortId / fingerprint / flow

應如何比較速度、延遲與偽裝能力

協定速度測試必須控制變因。應在同一台裝置、同一個網路、同一條伺服器線路和相近時段完成測試,並讓四個節點盡量使用相同出口。若 VMess 節點位於一個地區、VLESS 節點位於另一個地區,測試結果主要反映線路差異,不能用來證明協定優劣。

延遲也要區分類型。TCP 建立連線延遲只表示客戶端到目標連接埠完成連線所需的時間;真實連線延遲還會經過代理握手;網頁載入則同時受到 DNS、TLS、並行連線和目標網站回應影響。v2rayN 中的測試結果為 80 ms,不代表網頁每個資源都會在 80 ms 內完成。

建議執行三輪可重現的測試

  1. 首輪建立連線:每個節點測試 5 次真實連線延遲,刪除最高與最低結果,再比較中間 3 次是否穩定。
  2. 持續傳輸:使用同一個固定測試檔案持續下載 60 秒,觀察速度是否頻繁歸零,不要以瞬時峰值作為結論。
  3. 長連線:維持網頁工作階段或終端機連線 10 分鐘,記錄是否重新連線,以及是否在裝置關閉螢幕後中斷。
  4. 故障重新測試:切換網路後重複一次,例如從家用 Wi-Fi 切換到行動網路,比較恢復時間,而不只看頻寬。

「偽裝能力」也不應只歸因於協定。VMess 搭配裸 TCP 與 VMess 搭配 WebSocket + TLS 的外部特徵不同;VLESS 搭配 Reality 與 VLESS 搭配一般 TLS 也不同;Trojan 的部署品質取決於 TLS 與伺服器入口設定。協定只是完整連線中的一層,網域、憑證、SNI、傳輸與伺服器回應共同決定握手表現。

結論:速度接近時,優先選擇故障面較小的設定

若兩種協定在 5 次真實連線測試和 60 秒持續傳輸中的表現接近,優先保留欄位較容易核對、客戶端核心明確支援、伺服器更新流程更清楚的一種,而不是繼續疊加傳輸層。

匯入失敗、握手失敗與連線後無流量的排查順序

協定選擇最終必須落實為可連線狀態。匯入失敗通常屬於連結格式或客戶端識別問題;握手失敗通常涉及驗證、時間、安全層或傳輸欄位;顯示已連線但沒有流量,則要繼續檢查系統代理、路由規則、DNS 與本機監聽連接埠。將三類問題分開,可以減少無效變更。

  1. 確認核心:先確認目前使用的是 v2rayN、v2rayNG 還是 v2flyNG,以及節點是否包含該核心不支援的擴充欄位。
  2. 核對系統時間:VMess 與 TLS 類連線都可能受到錯誤時間影響,應啟用自動日期、自動時間與自動時區。
  3. 核對驗證欄位:VMess/VLESS 檢查 UUID,Trojan 檢查密碼,Shadowsocks 檢查密碼與 method。
  4. 核對安全欄位:TLS 檢查 serverName 與憑證網域,Reality 檢查公鑰、shortId、fingerprint 與 flow。
  5. 核對傳輸欄位:檢查 TCP、WebSocket、gRPC 等類型,以及路徑、服務名稱、Host 是否與伺服器一致。
  6. 查看核心日誌:重點區分 timeout、connection refused、authentication failed、certificate 與 unsupported method。
  7. 檢查本機出口:確認系統代理已開啟,應用程式使用的連接埠與 v2rayN 目前監聽的連接埠一致。

協定選擇常見問題

VLESS 一定比 VMess 快嗎?

不一定。在相同線路、相同傳輸和低封包遺失的條件下,兩者差距可能小於網路波動。請各測試 5 次真實連線延遲,再執行 60 秒持續傳輸;若結果接近,優先選擇伺服器與客戶端都較容易維護的設定。

Trojan 出現憑證錯誤時,應該開啟 allowInsecure 嗎?

不應將它作為一般處理方式。先同步裝置時間,再核對節點的 serverName 是否為憑證涵蓋的網域,並確認連線連接埠與伺服器 TLS 入口一致。修正憑證鏈路後,保持 allowInsecure 關閉。

Shadowsocks 匯入後提示不支援加密方式,該怎麼辦?

開啟節點編輯頁面記錄完整的 method,確認客戶端核心是否支援該方法。不要擅自改成 aes-128-gcm 等其他值;加密方法和密碼必須與伺服器完全一致,必要時請訂閱端下發相容設定。

同一個節點在 v2rayN 能使用,在 v2flyNG 卻不能使用,原因是什麼?

先檢查節點是否包含 Reality、Vision 或其他依賴 Xray 的欄位。桌面端能匯入並執行,不代表 v2fly 核心具備相同能力。可在 v2flyNG 中改用伺服器正式提供的 VMess、Trojan 或相容的 Shadowsocks 節點。

四種協定應保留幾個作為備用?

通常保留兩種經過實際驗證的不同組合即可,例如以 VLESS + Reality 作為主力,以 VMess + TLS 或 Shadowsocks 作為回退。兩者都應分別完成建立連線、60 秒傳輸和 10 分鐘長連線測試。

最終選擇可以濃縮成一句操作順序:先確認核心支援,再確認完整協定堆疊,最後在實際網路中測試穩定性。新建 Xray 設定時,VLESS 是常見的主力候選;需要延續舊訂閱時保留 VMess;具備規範 TLS 入口時可使用 Trojan;裝置資源有限或需要簡潔的備用設定時,可評估 Shadowsocks。任何選擇都應以伺服器實際提供的參數為準。

下載 v2rayN