2026-08-27 · 協定科普 · 約 9 分鐘

VMess、VLESS、Trojan、SS 橫向比較:握手開銷、延遲與場景選型

同一台伺服器換一種協定,首次開啟頁面的速度可能差上一截;差距往往不在協定名稱,而在握手趟數與加密層。以下把 VMess、VLESS、Trojan、Shadowsocks 四條路線拆開比較,再給出依網路環境挑選協定的順序。

本文速覽

從握手往返次數、加密層開銷、行動裝置耗電三個面向,橫向比較 VMess、VLESS、Trojan、Shadowsocks,再給出可直接套用的選型順序。適合已經在 v2rayNG 或 v2rayN 匯入訂閱、需要在同一台伺服器的多個協定連接埠之間取捨的使用者;讀完能判斷目前網路下該優先保留哪種協定的節點。

握手路徑:四種協定各多出幾趟往返

協定之間的差距,一半來自握手,一半來自加密層。握手決定「連上要幾趟往返」,加密層決定「每傳一個封包要多花多少 CPU 和多少位元組」。VMess 與 VLESS 出自同一套 Project V 體系:VMess 自帶認證與加密層,VLESS 把加密完全交給外層 TLS 或 REALITY,自身只保留一個極簡請求標頭。

Trojan 走的是偽裝路線,認證資訊放在 TLS 建立之後的第一段資料裡,握手成本大約等於一次普通 HTTPS 握手。Shadowsocks 是另一種思路:不套 TLS,直接用 AEAD 對整條資料流加密,客戶端連上就能傳資料。

把四種協定放進同一張表,差異集中在往返次數與標頭位元組這兩欄。

協定 握手組成 額外往返 標頭開銷(量級)
VMess(AEAD,alterId=0) TCP + VMess 認證標頭 0 約 40–50 位元組
VLESS TCP + 極簡請求標頭 0 約 20–40 位元組
Trojan TCP + TLS 握手 + 密碼驗證 1(TLS 1.3)/ 2(TLS 1.2) 約 60 位元組
Shadowsocks(AEAD) TCP + AEAD 加密酬載 0 約 30 位元組

表裡的額外往返以裸 TCP 情境計算,標頭開銷不含 TLS 記錄層,實際位元組數會隨位址類型(網域、IPv4、IPv6)浮動。一旦把 VMess 或 VLESS 套進 WebSocket + TLS,就要再加一到兩趟 TLS 往返——這也是同一條線路上,裸 TCP 的 VLESS 往往比 WebSocket + TLS 的 VMess 先送出第一個位元組的原因。

握手開銷如何換算成首位元組延遲

一次請求的總延遲,大致等於鏈路 RTT 乘以往返次數,再加上伺服器處理時間。跨境線路單程 80 ms 時,一趟往返就是 160 ms 左右;TLS 1.2 的握手比 TLS 1.3 多一趟,首位元組就多出一個往返,在上述線路上約 160 ms。

開啟一個頁面通常不是一次連線,而是十幾次。瀏覽器的連線重用能省掉一部分,但每個新網域、每次訂閱更新、每個獨立 App 的請求,都可能重新走一遍握手。協定之間的差距,就在這些「重新握手」的次數上被放大。

VLESS        TCP 1 趟 → 請求標頭隨首個封包送出,總往返 1
VMess        TCP 1 趟 → 認證標頭隨首個封包送出,總往返 1
Trojan       TCP 1 趟 → TLS 1.3 握手 1 趟,總往返 2
Shadowsocks  TCP 1 趟 → AEAD 酬載直送,總往返 1

把這張階梯套回四種協定:VLESS 與 Shadowsocks 只付 TCP 那一趟;VMess AEAD 同樣只多一個認證標頭,不額外佔用往返;Trojan 與套了 TLS 的 VMess、VLESS 則要多付一到兩趟。挑協定時先數往返趟數,再談其他參數。

結論:先看 TLS 版本,再看協定名稱

同一台伺服器上,VLESS 裸 TCP 與 Trojan 的首位元組差距,主要來自 TLS 1.2 與 1.3 的選擇;把伺服器端升級到 TLS 1.3 並開啟工作階段重用,收益比換協定更大。

行動裝置耗電:加密方式與連線次數

安卓端的耗電大頭不在協定名稱,而在兩件事:加密演算法有沒有硬體加速、單位時間內的連線次數。ARMv8 之後的手機 SoC 普遍帶 AES 指令集,VMess 與 Shadowsocks 選 aes-128-gcm 時 CPU 佔用低;只有較舊的 ARMv7 裝置上,chacha20-ietf-poly1305 的純軟體實作才更快。

連線次數與 Mux 多工複用有關。v2rayNG 的節點編輯頁裡有「啟用 Mux」開關,開啟後多條請求共用同一條連線,握手次數隨之下降,適合訊息類 App 這種高頻小請求;跑大型檔案下載時反而建議關掉,避免單條連線成為瓶頸。

不同鏈路品質下,這套本機參數的取捨並不一樣。

推薦方案:依鏈路品質分成兩套本機參數

行動網路(4G / 5G)
  • 優先選用 VLESS + REALITY 或 Trojan + TLS 節點
  • VMess 與 Shadowsocks 節點把加密方式設為 aes-128-gcm
  • 開啟 Mux,降低握手次數
固網寬頻(Wi-Fi / 有線)
  • VLESS 裸 TCP 與 Shadowsocks AEAD 都能跑滿頻寬
  • 大流量下載時關閉 Mux
  • 需要 UDP 的情境請確認伺服器端已開放 UDP 轉送

協定由伺服器端決定,客戶端能調的是加密方式、Mux 與路由模式這三項。

依情境挑協定:四種組合的適用範圍

協定要搭配傳輸方式,才是訂閱裡真正能用的節點形態。以下四種組合涵蓋了絕大多數訂閱中出現的節點類型。

VLESS + REALITY

推薦

握手等於一次 TLS 1.3,不需要自簽憑證,抗主動探測的表現最好;Xray 核心原生支援,流控填 xtls-rprx-vision。

適合:日常主力、跨境高延遲線路

Trojan + TLS

流量形態與一般 HTTPS 一致,節點參數只有位址、連接埠、密碼三項;前提是伺服器端持有可用憑證。

適合:已有網域與憑證的自架節點

VMess + WebSocket + TLS

相容性最好,可以套 CDN 中轉;代價是多一層 WebSocket 與 TLS,握手往返次數最多。

適合:舊節點、需要 CDN 中轉的線路

Shadowsocks AEAD

握手最輕、CPU 佔用最低,連線建立幾乎只有 TCP 那一趟;沒有 TLS 外殼,流量特徵更明顯。

適合:內網跳板、鏈路穩定的專線

四種組合沒有絕對優劣:VLESS + REALITY 把握手壓到最低,且不需要自簽憑證;Trojan 的設定項目最少;VMess + WebSocket 在需要 CDN 中轉時幾乎是唯一選擇;Shadowsocks 在鏈路本身乾淨時開銷最小。

結論:先排除鏈路問題,再談協定

握手次數固定後,同一台伺服器上四種協定的吞吐差距主要來自加密開銷,量級在 10% 以內;而換一條丟包率更低的線路,首位元組延遲的改善往往超過 40%。

客戶端核對:協定欄位對照表

協定選型落到客戶端,就是幾個欄位的核對。v2rayNG 裡長按節點進入「編輯」,能看到別名、位址、連接埠、使用者 ID、alterId、加密方式、流控、傳輸方式與偽裝網域;v2rayN 裡是「伺服器」選單選中節點後點「編輯」,欄位與安卓端一一對應。

不同協定用到的欄位並不相同,下面這張對照表可以當檢查清單用。

欄位 VMess VLESS Trojan Shadowsocks
使用者 ID / 密碼 UUID UUID 密碼 密碼
alterId AEAD 模式下填 0 不適用 不適用 不適用
加密方式 auto / aes-128-gcm 固定為 none 不適用 aes-128-gcm / chacha20-ietf-poly1305
流控 flow 不適用 xtls-rprx-vision 不適用 不適用
傳輸方式 tcp / ws / grpc tcp / ws / grpc tcp tcp
常見錯誤

把 VLESS 節點的「加密方式」改成 aes-128-gcm。VLESS 協定規定該欄位必須是 none,填其他值會在握手階段被伺服器端直接拒絕;需要更強的加密時,應該在外層選擇 TLS 或 REALITY。

連接埠方面,v2rayN 預設在本機開 10808(SOCKS)與 10809(HTTP),v2rayNG 的本機 SOCKS 連接埠同樣是 10808。這兩個連接埠只服務本機應用程式,和節點伺服器端的 443、8443 是兩回事,排查時別混淆。

改完參數回到節點列表,先做一次真連線延遲測試,再開啟頁面確認代理生效;如果測速正常但頁面打不開,優先檢查路由模式與分應用程式代理有沒有把目標 App 排除在外。

常見問題

同一節點換協定後速度差很多,是協定本身的問題嗎?

先核對兩件事:伺服器端 TLS 是 1.2 還是 1.3、節點有沒有套 WebSocket。協定自身的標頭只有幾十位元組,不足以造成成倍差距;差距通常來自這兩項,以及伺服器端到出口的那段線路。

安卓手機上哪種協定比較省電?

關鍵在加密方式而不是協定名稱。VMess 與 Shadowsocks 選 aes-128-gcm,ARMv8 裝置有 AES 硬體加速,CPU 佔用低;再開啟 Mux 減少握手次數。同一機型上換協定帶來的耗電差異,通常小於螢幕亮度的影響。

Shadowsocks 沒有 TLS,還能用嗎?

看鏈路環境。內網跳板或穩定專線上,Shadowsocks 的握手最輕、延遲最低;公網直連時沒有 TLS 外殼,流量特徵更明顯,被限速的機率更高,這種情境優先換成 VLESS 或 Trojan。

訂閱裡同一台伺服器提供多個協定連接埠,該留哪一個?

先用真連線延遲測試把每個連接埠都測一遍,保留首位元組最快的一個當主力。同一台伺服器的不同協定連接埠走的是同一台機器,差距通常來自握手方式,優先留 TLS 1.3 的 VLESS 或 Trojan 連接埠,其餘不用刪,方便隨時切換。

下載 v2rayNG 安卓版 內建 Xray 核心,VMess、VLESS、Trojan、Shadowsocks 四種協定的節點都能直接匯入與切換。
前往下載頁 看教學
下載 v2rayNG