四種代理協定怎麼選

比較 VMess、VLESS、Trojan 與 Shadowsocks 的加密、傳輸方式和用戶端支援,並依日常瀏覽、行動網路及舊裝置等情境提供選擇建議。

本文重點

VMess、VLESS、Trojan、Shadowsocks 並非四種速度等級,而是採用不同的驗證、加密與轉送方式。已有訂閱的使用者,應先確認伺服器端參數與用戶端核心相符;準備建立新連線時,再依傳輸需求和裝置效能選擇。下文將分別說明協定、TLS 與傳輸方式,並提供桌面版和 Android 的檢查步驟。

先分清協定、傳輸方式與核心

節點名稱中的「VLESS + WebSocket + TLS」包含三個層次:VLESS 負責代理協定的驗證與請求格式,WebSocket 負責承載資料,TLS 則為這組設定提供加密通道與伺服器身分驗證。只記得「VLESS」,卻漏掉另外兩項,通常無法還原出可用的連線。

v2rayN 是桌面用戶端,介面可用來匯入設定、選擇節點及設定系統代理,實際連線則由核心負責。Android 上的 v2rayNG 使用 Xray 核心,v2flyNG 則使用 v2fly 核心。用戶端能辨識某種分享連結,不代表目前使用的核心一定支援連結中的所有擴充參數。

四種協定的加密與驗證差異

比較時,先確認「加密由哪一層提供」,再看「伺服器端如何辨識使用者」。UUID 或密碼是驗證資訊,不等於完整的安全設定;連接埠設為 443,也不會讓未啟用 TLS 的連線自動受到 TLS 保護。

四種協定的常見部署方式比較
協定 驗證與加密 常見組合 檢查重點
VMess 以 UUID 識別使用者;支援協定本身的資料加密,現代設定採用 AEAD 驗證機制。 TCP,或 WebSocket + TLS 等組合。 UUID、加密選項、傳輸方式,以及裝置系統時間。
VLESS 以 UUID 驗證;常見設定不使用協定本身的資料加密,而是透過 TLS 或 REALITY 等方式保護連線。 WebSocket + TLS,或在支援相關功能的 Xray 設定中採用 TCP + REALITY。 安全層、伺服器名稱、傳輸欄位、flow,以及 REALITY 相關參數。
Trojan 以密碼驗證;常見的標準部署仰賴 TLS 提供加密與伺服器身分驗證。 通常使用 TCP + TLS;其他傳輸組合則視實作而定。 密碼、憑證效期、伺服器名稱及傳輸支援。
Shadowsocks 使用約定的加密方法與金鑰材料;傳統 AEAD 與 Shadowsocks 2022 的格式和要求不同。 直接承載 TCP、UDP 流量;額外封裝須由連線兩端共同支援。 method、密碼或金鑰格式,以及 UDP 支援。

VMess 的 AEAD 驗證與 Shadowsocks 所指的 AEAD 加密方法,並不是同一個設定欄位。舊教學中的 VMess alterId 也不應直接照抄;現代 VMess AEAD 設定通常為 0,既有節點仍應以伺服器端的實際要求為準。

Shadowsocks 也不能只憑「密碼正確」就判定設定完整。例如 aes-128-gcm 和 2022-blake3-aes-128-gcm 是不同的加密方法,後者另有專用的金鑰格式要求。改用另一種加密方法,不會讓伺服器端自動跟著變更。

依使用條件選擇,不要只看名稱排名

以下建議適用於「可自行選擇伺服器端方案」的情況。如果服務提供者只提供其中一種協定,應先確認它能在目前裝置上正常運作,而不是在用戶端強行改成另一種。四種協定沒有脫離線路、設定和裝置條件的固定速度排名。

VLESS:優先確認新設定是否相容

建議

若伺服器端提供完整的 TLS 或 REALITY 參數,且用戶端核心支援對應組合,可優先考慮用於新設定。建議的依據是部署條件相符,不代表它在所有網路環境下都更快。

適合:確認核心支援,且需要使用相應傳輸方式與安全層的新連線。

VMess:沿用成熟設定

若現有 VMess 訂閱穩定可用,沒必要只因協定名稱較舊就更換。重點是採用相符的現代驗證設定、確保系統時間準確,並確認伺服器端使用的傳輸方式。

適合:已有可用訂閱,或伺服器端現有服務以 VMess 為基礎的使用者。

Trojan:沿用現有 TLS 部署

如果伺服器端已有有效憑證、明確的伺服器名稱,也支援 Trojan,就可以沿用現有的 TLS 環境進行設定。使用 TLS 不代表可以忽略憑證驗證。

適合:伺服器端已提供完整 Trojan 參數,且想沿用 TLS 部署的使用者。

Shadowsocks:確認加密方法相符

設定欄位相對集中,適合伺服器端已提供明確 method 和金鑰的連線。要選傳統 AEAD 還是 2022 方法,須確認連線兩端都支援,不能只看用戶端是否列出 Shadowsocks 選項。

適合:已有 Shadowsocks 服務,或想比較不同加密方法在裝置上所耗資源的使用者。

如何判斷日常瀏覽、行動網路與舊裝置的需求

日常瀏覽網頁更容易受到線路往返時間、DNS 解析和伺服器負載影響。若切換協定時也更換地區與服務商,就無法判斷差異究竟來自哪個因素。比較時應盡量固定伺服器、測試目標和網路環境。

在用戶端確認設定的四個步驟

桌面端可以先用 v2rayN 驗證完整設定,再處理路由和應用程式流量接管。以下選單路徑適用於常見的中文桌面介面;不同版本的文字可能略有差異,請依選單功能判斷,不要為了尋找同名選項而修改無關設定。

  1. 匯入完整連結

    複製服務提供者給的完整分享連結,在 v2rayN 主視窗按 Ctrl + V 匯入。不要把訂閱網址當成單一節點連結,也不要將一條節點連結拆成數段分別貼上。

  2. 檢查節點欄位

    按兩下節點開啟編輯視窗,依序檢查位址、連接埠、使用者 ID 或密碼、傳輸協定及 TLS 設定。使用 WebSocket 時,檢查路徑和 Host;使用 REALITY 時,依伺服器端要求確認公鑰、shortId、伺服器名稱及 flow。

  3. 啟動並查看記錄

    將目標節點設為作用中伺服器,查看主介面的記錄區,先確認核心能否啟動。若出現「不支援的傳輸方式」或設定解析錯誤,應優先檢查核心相容性,而非不斷更換本機監聽連接埠。

  4. 接管應用程式流量

    在系統匣圖示的右鍵選單中選擇「系統代理」→「自動設定系統代理」,再用瀏覽器測試。若要確認本機監聽設定,請前往「設定」→「參數設定」查看實際連接埠;手動設定代理的應用程式,應填入相符的位址和連接埠。

Android 端應先分辨使用的核心:v2rayNG 的 Xray 功能和 v2flyNG 的 v2fly 功能不能直接視為相同。尤其是 VLESS 的某些擴充功能、安全層和 flow,必須確認應用程式目前搭載的核心是否支援。匯入成功後仍須實際啟動連線;節點出現在清單中,只代表解析完成。

別混淆連接埠、網域名稱與安全選項

遠端連接埠是伺服器接收連線的位置,本機連接埠則是應用程式連接用戶端的位置。以下三個數字僅為方便說明的設定範例,不是四種協定的固定連接埠,也不是 v2rayN 通用的預設值。

443
TLS 服務常用的遠端連接埠範例
1080
本機 SOCKS 監聽連接埠範例
8388
Shadowsocks 伺服器連接埠範例

例如,瀏覽器手動使用 127.0.0.1:1080 作為 SOCKS 代理,前提是用戶端確實在該位址提供 SOCKS 服務。即使遠端節點填寫的是 example.com:443,也不應將瀏覽器的代理連接埠改成 443;此處的 example.com 僅用來說明欄位之間的關係。

協定選擇常見問題

訂閱只有 VMess,需要改用 VLESS 嗎?

不必只為了更換協定名稱而修改。先啟動現有節點並確認能否連線;若服務提供者另有 VLESS 連結,再將它作為獨立節點匯入比較。直接在編輯視窗更改協定類型,不會讓伺服器端同步切換。

匯入 VLESS 後,一啟動就出錯是什麼原因?

先查看記錄中的第一則設定錯誤,再檢查傳輸方式、安全層和 flow。Android 使用者應確認使用的是 v2rayNG 還是 v2flyNG,並檢查對應核心是否支援;不要只因連結以 vless:// 開頭,就認定所有欄位都能正常運作。

Trojan 顯示憑證錯誤,關閉驗證可以嗎?

先校正裝置時間,再確認節點中的伺服器名稱是否與憑證涵蓋的網域相符。若憑證已過期或憑證鏈不完整,應由伺服器端修復。關閉驗證會降低伺服器身分確認的安全性,不適合作為長期解決方式。

網頁能開啟,語音卻一直連不上?

先確認應用程式流量是否進入代理,再檢查該設定是否支援 UDP,以及伺服器端防火牆設定。系統 HTTP 代理通常無法接管任意應用程式的 UDP 流量;必要時可使用用戶端實際提供的 TUN 或系統隧道功能,並重新檢查路由規則。

更換協定後仍然逾時,接下來該檢查什麼?

依序檢查本機監聽、應用程式代理、核心記錄、遠端位址和伺服器端是否可連線。先確認請求確實進入用戶端,再判斷交握是否失敗;如果連線根本沒有到達用戶端,修改 UUID 或加密方法通常無濟於事。

最後的選擇取決於三件事:伺服器端提供哪一套完整方案、裝置上的核心能否執行,以及實際網路環境是否穩定。已有可用節點就先保留,將新方案另行匯入比較;協定相符後,再處理系統代理、DNS 和路由分流,排查會更清楚。

下載v2rayN依作業系統選擇用戶端