VMess、VLESS、Trojan 與 Shadowsocks 有何不同?四種代理協定的加密方式與適用情境

比較 VMess、VLESS、Trojan 與 Shadowsocks 的認證、加密、傳輸及效能,整理家用、行動網路與多裝置的選擇方向。

本文重點

先確認伺服器提供的完整組合,再確認用戶端核心是否支援。VMess 內建協定層加密;常見 VLESS 設定則由 TLS 或 REALITY 負責保密,Trojan 仰賴 TLS,現代 Shadowsocks 使用預共享金鑰加密。本文適合正在比較訂閱節點、準備自建服務,或需要多裝置共用設定的讀者;看完即可分辨協定、傳輸方式與安全層,避免只改協定名稱而導致連線失敗。

一、先分清協定、傳輸方式與用戶端

VMess、VLESS、Trojan 與 Shadowsocks 是代理協定,不是四種用戶端。v2rayN 是桌面用戶端,負責儲存節點、管理訂閱、設定代理並呼叫核心;v2rayNG 在 Android 上使用 Xray 核心,v2flyNG 則在 Android 上使用 v2fly 核心。介面上能新增某種節點,不代表目前使用的核心支援該節點的所有傳輸方式與安全選項。

拆解節點的各個層次,比記住「哪種協定最好」更實用。訂閱中的協定名稱只是第一層,伺服器位址、連接埠、傳輸方式、安全層與認證欄位都必須互相搭配。尤其是 VLESS 節點,不能只因名稱相同,就認為能在不同核心之間直接套用。

二、四種協定的認證與加密差異

先確認「由哪一層負責加密」,再比較設定複雜度。下表討論目前常見的部署方式:VMess AEAD、使用 encryption=none 的 VLESS、標準 Trojan,以及現代 Shadowsocks AEAD 系列。歷史設定與新增擴充功能,不能只憑協定名稱套用結論。

協定 認證依據 保密性來源 設定重點
VMess UUID 與協定認證機制 協定層可使用 AEAD 加密,也可再加上 TLS UUID、加密選項、系統時間、傳輸參數
VLESS 通常使用 UUID 常見的 none 設定仰賴 TLS 或 REALITY 等安全層 安全層、服務名稱、flow 與核心支援情況
Trojan 共用密碼,經協定處理後進行認證 TLS 連線 密碼、憑證驗證、伺服器名稱
Shadowsocks 共用密碼或符合指定格式的預共享金鑰 所選加密方式提供的認證加密 加密方式、金鑰格式、雙方實作的相容性

VMess:留意 AEAD 與時間同步

VMess 不代表「一定得用舊設定」。目前常見設定使用 AEAD,傳統 VMess 設定中的 alterId 通常設為 0。不要為了解決連線問題而任意調高這個值。VMess 認證會考量時間因素;裝置時間若有明顯誤差,即使 UUID 正確也可能無法通過認證。請先開啟作業系統的自動校時,再檢查其他欄位。

VLESS:none 不代表整條連線都未加密

常見 VLESS 設定中的 encryption=none,表示這一層不會加密載荷,不代表外層 TLS 或 REALITY 沒有加密。反過來說,若協定層沒有加密,也沒有可靠的安全層,就不能因為名稱是 VLESS 而認定連線受到保護。若使用其他加密擴充功能,請另外確認兩端的實作方式與版本,不能直接套用 none 模式的判斷。

Trojan 與 Shadowsocks:密碼欄位相似,機制不同

Trojan 的保密性仰賴 TLS,正常部署時必須正確驗證伺服器憑證。Shadowsocks 則由所選的加密方式直接保護代理資料,基本部署不需要網域憑證。傳統 AEAD 方法與 Shadowsocks 2022 的金鑰要求並不相同;例如 2022-blake3-aes-128-gcm 需要符合指定長度的金鑰,不能直接把任意密碼當成有效設定。

三、TLS、REALITY 與 WebSocket 如何搭配

「VLESS + REALITY」和「VMess + WebSocket + TLS」描述的是不同層次的組合。REALITY 是 Xray 提供的安全機制,不是獨立的代理協定;WebSocket 是傳輸方式,本身不能取代 TLS。一般 CDN 反向代理通常需要使用其支援的 HTTP 類傳輸方式,不能只把任意 TCP 節點的位址改成 CDN 網域,就期待連線成功。

443
使用 HTTPS 常見連接埠,不代表一定啟用了 TLS
TLS 1.3
採用現代 TLS 版本,實際協商結果取決於連線雙方
16 位元組
UUID 的二進位長度,不代表密碼強度

連接埠號碼只代表監聽位置。伺服器即使使用 443 連接埠,也可能執行不相符的服務;其他連接埠同樣可以部署 TLS。驗證連線時,應查看實際設定與交握記錄,而不是只看連接埠號碼。使用一般 TLS 時,連線位址可以是 IP,但用於憑證驗證的伺服器名稱仍須與憑證相符。

  1. 一般 TLS:確認伺服器名稱、憑證有效期限、憑證鏈與裝置時間。不要把「允許不安全連線」當成一般解決方式。
  2. WebSocket:確認路徑與 Host,並確認反向代理確實將要求轉送至對應入口。路徑大小寫或結尾斜線不同,都可能影響比對。
  3. gRPC:確認服務名稱及伺服器端支援 HTTP/2,不要直接沿用 WebSocket 的路徑欄位。
  4. REALITY:確認伺服器端提供的公鑰、shortId、伺服器名稱及配套參數。UUID 正確,不代表這些欄位也會自動正確。

VLESS 的 flow 也不是可以任意填寫的加速選項。只有伺服器端採用相應流程,而且用戶端核心與傳輸組合都支援時,才應設定例如 xtls-rprx-vision。匯入完整訂閱通常比手動拼湊欄位更可靠,但仍須確認訂閱來源可信。

四、如何有效比較效能

沒有適用所有線路的固定速度排名。同一台伺服器上的不同協定,可能受到不同入口、反向代理或限速策略影響;不同地區的兩個節點,更不能靠一次下載結果證明哪種協定較快。加密運算、交握、傳輸封裝與網路封包遺失都可能成為瓶頸,最後仍須以裝置和線路的實際表現為準。

可重複使用的比較步驟

  1. 盡量使用同地區、同伺服器、相同頻寬限制的入口;記錄用戶端版本、核心版本、協定組合與測試時間。
  2. 關閉背景下載,固定使用同一個目標資源,先預熱一次,再分別測試三次。記錄結果的中位數,不要只保留最高值。
  3. 分別觀察網頁首次載入、持續下載與即時通訊。用戶端的延遲測試只能反映特定探測結果,不能取代完整的實際使用測試。
  4. 行動裝置還要觀察背景執行與耗電狀況。切換網路後重新測試,不要把無線訊號變化誤判為協定問題。

五、如何選擇家用、行動網路與多裝置方案

以下「建議」僅適用於具備配套伺服器端、且連線兩端都支援的常見 Xray 部署方式,不代表所有網路的速度排名。已有穩定節點時,優先保留完整設定;新建入口時,再依憑證管理、核心相容性與裝置數量評估取捨。

VLESS + 配套安全層

建議

新建 Xray 部署時可優先評估。依實際條件選擇 TLS 或 REALITY,並確實配對安全參數;若需要相容其他核心,先驗證具體組合,不能只確認協定名稱是 VLESS。

適用情境:可管理伺服器端,且桌面與 Android 裝置都使用相容核心

VMess AEAD

既有 VMess 訂閱能正常使用,就沒有必要只為了協定名稱而遷移。保留正確的傳輸參數、處理時間同步問題,並確認沒有沿用不適用的舊認證設定。

適用情境:已有穩定節點,需要沿用現有設定

Trojan + TLS

採用密碼認證與 TLS,設定重點在憑證與伺服器名稱。適合能持續維護網域、憑證及入口轉送的環境;不應透過略過憑證驗證來減少維護工作。

適用情境:已有網域與憑證維護流程的部署環境

Shadowsocks AEAD 系列

基本設定欄位較少,通常不需要憑證。跨裝置使用時,確認加密方式與金鑰格式一致;選用 2022 系列前,先確認所有裝置與伺服器端都支援。

適用情境:欄位較少的直連部署,或已確認相容的多裝置環境

家用網路可優先留意晚間穩定性與多裝置同時連線的狀況;行動網路則需額外考量網路切換、UDP 可達性及背景管理。Android 裝置的省電限制可能中斷代理程序,換協定不一定能解決問題。請先判斷是程序遭系統停止,還是核心仍在執行但連線逾時。

多裝置方案:使用同一訂閱,分別確認各裝置支援情況

桌面端:v2rayN
  • 記錄實際啟用的核心與版本,不要只記用戶端版本。
  • 先用瀏覽器確認系統代理,再視需要設定終端機或 TUN。
  • 保留一個已驗證的節點,更新後方便比對。
Android:v2rayNG 或 v2flyNG
  • v2rayNG 依 Xray 的支援情況確認節點,v2flyNG 則依 v2fly 的支援情況確認。
  • 首次啟動時確認 VPN 權限,並檢查分應用程式設定是否包含目標應用程式。
  • 分別在行動網路與家用無線網路下測試,不要共用同一份測試結論。

同一份訂閱不保證所有裝置都能使用完全相同的節點;遇到 REALITY、flow 或特定加密方式時,應以連線兩端的實際支援情況為準。

六、匯入後無法連線?依欄位逐層排查

選好協定後,最常見的問題不是「協定不好」,而是設定只符合部分條件。請先備份原始節點,每次只修改一個欄位,並記下記錄時間。公開求助時,請隱藏訂閱網址、UUID、密碼與私鑰;記錄中的真實節點位址也應視需要遮蔽。

VLESS 的 UUID 沒錯,為什麼還是連不上?

依序檢查位址與連接埠、安全層、伺服器名稱、傳輸方式與 flow。使用 REALITY 時,還要確認公鑰與 shortId 來自同一個伺服器端入口。不要混用 TLS 節點與 REALITY 節點的欄位。

Trojan 必須關閉憑證驗證才能使用,該怎麼辦?

恢復憑證驗證,檢查裝置時間與伺服器名稱,再從伺服器端確認憑證有效期限及完整憑證鏈。使用 IP 連線時,也要保留正確的驗證名稱;「成功交握」不代表已通過身分驗證。

Shadowsocks 更換加密方式後,密碼相同也無法連線?

用戶端與伺服器端必須使用相同的加密方式。若切換至 2022 系列,還須依該方式重新產生符合長度與編碼要求的金鑰。不能只改用戶端的下拉選單,也不能把舊密碼直接當成新金鑰。

節點延遲測試成功,瀏覽器卻無法開啟網頁?

先確認核心已啟動,且瀏覽器確實使用目前的本機代理連接埠,再檢查 DNS 與路由。若入站監聽位址是 127.0.0.1:10808,應用程式就必須使用該入站支援的代理類型連線;連接埠僅供示範,請以實際設定為準。

訂閱中的 VMess 節點突然全數失效,需要更換協定嗎?

先開啟系統自動校時,再更新訂閱,並檢查節點是否到期或入口是否變更。若記錄顯示認證失敗,請核對 UUID 與認證相關設定;若是連線逾時,先檢查位址、連接埠與網路是否可連通,不要同時修改多個協定欄位。

最後,請從完整組合來理解:協定決定認證與封裝方式,安全層決定相應的保密與身分驗證方式,傳輸方式與線路則會影響連線能力和使用體驗。選擇用戶端時可參閱用戶端比較;想了解 DNS、路由與系統代理之間的關係,可參閱使用說明。先讓一份設定穩定運作,再逐項調整,比同時更換協定、核心與路由更容易找出問題。

下載v2rayN