協定名稱本身無法決定速度、穩定度或耗電量。本文適合已取得訂閱、正在挑選節點的使用者,先釐清代理協定、傳輸方式與安全層,再比較四種協定的驗證方式及連線成本。選擇時先確認用戶端核心是否支援,再檢查 TLS、傳輸與 UDP 設定,最後在相同網路條件下測試。
協定、傳輸方式與安全層
VMess、VLESS、Trojan、Shadowsocks 是代理協定名稱;v2rayN 是桌面用戶端,不是第五種協定。用戶端負責管理節點、訂閱、系統代理與路由,實際連線則由核心處理。Android 版 v2rayNG 使用 Xray 核心,v2flyNG 使用 v2fly 核心。不能只憑介面相似,就推斷兩者支援的功能相同。
查看節點詳細資料時,需一併確認三個層面。協定定義驗證方式與代理要求;傳輸方式決定資料如何承載,例如 TCP 或 WebSocket;安全層則負責保護連線,例如 TLS。REALITY 是 Xray 的安全機制,不是與 VMess 並列的代理協定,也不是能套用在任意節點上的一鍵加速功能。
- 協定欄位:確認是 VMess、VLESS、Trojan 或 Shadowsocks,且須與伺服器設定一致。
- 傳輸欄位:確認 TCP、WebSocket 等傳輸類型;使用 WebSocket 時,也要核對路徑與 Host。
- 安全欄位:確認 TLS、伺服器名稱與憑證驗證;REALITY 還需要伺服器提供的公鑰等參數。
- 用戶端設定:系統代理與 TUN 決定哪些流量會交由核心處理,不會改變遠端協定的種類。
四種協定的背景與加密範圍
VMess 源自 V2Ray 專案,內含使用者驗證與資料保護機制。VLESS 最初採用較精簡的協定設計,以減少重複處理;常見設定會交由 TLS 或 REALITY 保護連線。Trojan 透過 TLS 通道承載代理要求。Shadowsocks 則採用相對精簡的加密代理設計,實際功能取決於使用的方法與實作。
| 協定 | 驗證與資料保護 | 匯入後優先核對 |
|---|---|---|
| VMess | 以 UUID 識別使用者;現代設定使用 VMess AEAD,載荷加密方式由 security 等設定決定,也可另外搭配 TLS。 | UUID、alterId、security、傳輸類型;現代 AEAD 設定通常將 alterId 設為 0。 |
| VLESS | 以 UUID 驗證;常見 encryption 為 none 的部署,會仰賴外層 TLS 或 REALITY 保護連線。 | UUID、encryption、flow、安全層;擴充加密功能須視連線兩端的核心版本是否支援。 |
| Trojan | 以密碼驗證,通常透過 TLS 保護代理要求與載荷;密碼驗證不能取代伺服器憑證驗證。 | 密碼、連接埠、伺服器名稱、憑證驗證與傳輸方式。 |
| Shadowsocks | 資料由所選加密方法保護;傳統 AEAD 與 Shadowsocks 2022 在金鑰及協定細節上有所不同。 | method、密碼或金鑰格式、UDP 支援;不能只看節點名稱中的「SS」。 |
「VLESS 不加密」只適用於描述常見的 encryption: none 協定層設定,不能據此判斷整條連線是否加密。反過來說,啟用 TLS 也不代表參數可以任意填寫:伺服器名稱、憑證鏈與伺服器端設定仍須相符。請勿以關閉憑證驗證來掩蓋設定錯誤。
握手成本:區分初次連線與持續傳輸
握手成本影響連線剛建立時的等待時間,與下載頻寬不同。以一般 TCP 搭配 TLS 1.3 的新連線為例,TCP 建立連線通常需要 1 次往返,完整 TLS 握手通常還需要 1 次往返;DNS、代理要求與目標網站連線則另計。TLS 工作階段恢復、連線共用及網路丟包都會改變實際結果,因此不能直接把往返次數相加,當成網頁載入時間。
- VMess:需要處理協定驗證與載荷保護;若外層還有 TLS、WebSocket,也會增加相應的處理與封包成本。
- VLESS:要求標頭精簡,不代表整條連線不需要握手。TLS、REALITY、傳輸方式與 flow 的實際組合都會影響連線流程。
- Trojan:一般部署會先建立 TLS 通道,再傳送代理要求。能否使用 TLS 工作階段恢復,取決於實作方式與連線條件。
- Shadowsocks:典型 AEAD TCP 連線可直接傳送加密的要求資料,不需要額外的 TLS 握手;但仍須建立 TCP 連線,也不保證端對端延遲較低。
WebSocket 的 HTTP 升級程序會增加額外步驟。連線共用可讓多個邏輯連線使用同一條底層連線,但也會改變壅塞狀況與故障影響範圍。因此,比較「VMess 搭配 WebSocket 與 TLS」和「Shadowsocks 直接使用 TCP」,比較的是整套連線設定,而不只是協定標頭大小。
結論:先檢查傳輸組合,再評估握手成本
若短連線首次開啟速度慢,先檢查 DNS、TLS 建立連線的時間,以及是否頻繁重新連線;若大型檔案持續傳輸緩慢,則先檢查線路頻寬、丟包與伺服器負載。這兩類問題不宜用同一個「延遲」數值解釋。
行動裝置耗電:無線網路喚醒比協定名稱更關鍵
目前沒有一致且可信的「最省電協定」排名。加密會消耗 CPU 資源,但裝置的 AES 硬體加速、ChaCha20 實作與傳輸負載都會影響結果。在行動網路上,反覆喚醒無線模組、維持連線、訊號弱時重傳,以及應用程式在背景同步,也可能是主要耗電來源。
TUN 接管的流量通常比單一應用程式代理涵蓋更多,DNS 要求、UDP 與背景連線也可能經過核心處理。因此,耗電變化不能全歸因於 VLESS 或 Trojan。測試時也應避免同時開啟詳細記錄、頻繁測速或大量探測節點,否則測到的會包含額外工作的成本。
- 固定裝置、網路類型與螢幕亮度,先記錄測試前的電量、訊號狀態及背景執行的應用程式。
- 每輪採用相同的 20 分鐘操作,例如瀏覽 10 分鐘、播放固定畫質影片 5 分鐘、螢幕關閉待機 5 分鐘。這是測試方案,並非本站實測結果。
- 保持 TUN 或應用程式代理方式、DNS 與路由規則一致;每輪只更換一種協定設定,並記錄實際流量。
- 每個候選設定重複測試 3 輪,查看系統電池用量及核心記錄中的重新連線狀況。若差異小於電量顯示精度,不應直接下結論。
依現有節點與用戶端選擇
以下的「建議」僅適用於已具備相應伺服器參數、使用相容 Xray 核心的日常連線情境,並非協定排名。若訂閱只提供一種可用協定,優先使用已驗證的設定,不必為了更換協定名稱而重建整條連線。
VLESS:已有完整的安全層參數
建議使用伺服器提供的完整 TLS 或 REALITY 設定,並確認 flow 與核心支援情況。參數不齊時,請勿反覆切換選項猜測。
適用情境:使用 Xray 核心,且已有相符的 VLESS 伺服器設定
VMess:保留已驗證可用的連線
現有 VMess AEAD 節點運作正常時,可以繼續使用。排解問題時優先檢查系統時間、UUID、alterId 與傳輸參數,不必先更換協定。
適用情境:現有訂閱以 VMess 為主,且已有穩定的連線紀錄
Trojan:已有 TLS 部署
依照密碼、伺服器名稱與憑證設定連線。TLS 是連線安全的重要部分,須維護憑證有效期限,並確認連線兩端的名稱一致。
適用情境:伺服器已設定可驗證的 TLS 通道
Shadowsocks:確認加密方法與 UDP 需求
先確認加密方法與金鑰格式,尤其要區分傳統 AEAD 與 2022 方法。遊戲、語音等情境也要另外確認 UDP 轉送是否可用。
適用情境:參數明確,且用戶端支援相應方法的 TCP 或 UDP 代理
在 v2rayN 中選取節點後,開啟節點編輯視窗檢查協定與傳輸參數;介面欄位可能因版本而異。Android 端使用 v2rayNG 或 v2flyNG 時,應先確認核心支援該協定、加密方法與安全擴充功能,不能假設相同訂閱在兩種核心上的表現必然一致。
在相同條件下測試:別只看 Tcping
Tcping 主要反映指定連接埠的 TCP 可連線性與建立連線所需時間。它無法驗證 UUID、密碼、TLS 名稱及代理要求是否正確,也不能代表 UDP 可用。實際連線測試更接近真實代理要求,但結果仍受測試目標、DNS、路由與連線共用情況影響。
- 固定連線入口:在 v2rayN 使用相同的系統代理或 TUN 狀態,並確認本機監聽連接埠與應用程式設定一致。例如本機連接埠設為
10808時,應用程式不能仍指向舊連接埠;這只是設定範例,不代表所有版本的預設值。 - 確認路由規則生效:確保測試流量確實經過選取的代理出口。若路由規則將目標設為直連,測試結果便無法反映該節點的表現。
- 分項測量:分別記錄首次要求、連續要求、大型檔案傳輸及 UDP 應用程式的結果,不要將不同項目合併成單一分數。
- 交錯重測:依 A、B、A、B 的順序測試,每個候選至少提出 5 次要求,記錄中位數與失敗次數,以降低不同時段網路變化的影響。
結論:先選擇可用設定,再比較重複測試結果
先排除驗證失敗、憑證錯誤與路由未命中的候選設定,再比較相同工作的重複測試結果。若不同協定使用不同伺服器,結果應記為「節點比較」,不要當成協定效能結論。
協定選擇常見問題
將 VMess 節點改成 VLESS,就能直接連線嗎?
不行。伺服器也必須提供 VLESS 入站,且 UUID、安全層與傳輸參數都要相符。請匯入伺服器提供的 VLESS 設定,而不是只更改用戶端的協定下拉選單。
Trojan 的 Tcping 正常,為什麼實際連線仍失敗?
先開啟用戶端記錄,判斷是連線逾時、TLS 驗證失敗還是驗證失敗。接著依序核對連接埠、密碼、伺服器名稱、裝置時間與憑證有效期限;TCP 連接埠可連線,不代表 TLS 與代理驗證已通過。
Shadowsocks 可以開啟網頁,為什麼遊戲還是連不上?
先確認遊戲是否使用 UDP,再檢查應用程式流量是否經過代理、伺服器是否允許 UDP,以及目前的加密方法與核心是否支援相應轉送。網頁的 TCP 要求成功,不能證明 UDP 路徑正常。
換成 VLESS 後手機更耗電,需要立刻換回去嗎?
先比較切換前後的 TUN、路由、背景限制與記錄等級,並查看是否持續重新連線。使用相同流量負載重複測試;若同時更換線路與傳輸方式,暫時無法將耗電變化歸因於 VLESS。