本文適合正在查看訂閱節點名稱、準備部署伺服器端或排查協定相容性問題的使用者。重點是釐清協定、傳輸方式與安全層各自負責的功能,據此判斷 VMess、VLESS、Trojan、Shadowsocks 是否適合目前的裝置與網路條件。
先釐清協定、傳輸方式與安全層
VMess、VLESS、Trojan 和 Shadowsocks 首先都是用於在客戶端與伺服器端之間交換代理資料的協定。節點名稱中經常同時出現 WebSocket、gRPC、TCP、TLS、Reality 等欄位,但這些欄位並不全是協定名稱。WebSocket、gRPC 與 TCP 說明資料如何承載,TLS 與 Reality 負責連線安全或握手表現,而網域、連接埠與路徑則屬於連線參數。
同一種協定可以搭配不同的傳輸方式。例如 VMess 可以承載於 TCP 或 WebSocket 上,VLESS 則能與 TCP、gRPC 及不同安全層組合。比較協定時若忽略這些組合條件,很容易把 WebSocket 的額外封裝負擔算在 VMess 本身,或將某種安全層的特徵全部歸因於 VLESS。
Trojan 的典型部署依賴 TLS,握手失敗時通常應先檢查網域、伺服器時間、憑證狀態與連接埠,而不是立即判定節點失效。Shadowsocks 使用獨立的加密方法保護代理資料,但目標並非模擬完整的網站瀏覽流程。它的設定項目少、實作成熟,是否適用主要取決於伺服器端提供的加密方法,以及客戶端核心的支援情況。
| 協定 | 身分識別與握手重點 | 常見組合 | 排查時先檢查什麼 |
|---|---|---|---|
| VMess | 使用者識別碼、時間同步、AEAD 資料處理 | TCP、WebSocket、gRPC,可疊加 TLS | 使用者識別碼、系統時間、傳輸參數 |
| VLESS | 輕量身分驗證,協定本身不負責內容加密 | TCP、WebSocket、gRPC,可搭配 TLS 或 Reality | 安全層、流控值、伺服器端與核心支援 |
| Trojan | 密碼驗證與 TLS 連線 | 通常為 TCP 與 TLS | 網域、連接埠、TLS 握手、伺服器時間 |
| Shadowsocks | 預先共用密碼與指定的加密方法 | 通常直接執行於 TCP、UDP 上 | 加密方法、密碼、UDP 設定 |
四種協定的握手與相容範圍
VMess 在 V2Ray 生態系中使用與時間相關的驗證及使用者識別碼。現代設定通常採用 AEAD 模式,舊教學中將 alterId 設為較大數值的做法,已不適合作為新設定的基準。若客戶端記錄出現驗證失敗,而同一節點在其他裝置上也無法連線,應檢查伺服器端與終端裝置的系統時間是否有明顯偏差,並確認訂閱更新後使用者識別碼是否有所變更。
VLESS 簡化了協定層的資料處理,將安全責任交給外部安全層。這不等於「未加密連線」:實際安全性取決於完整的組合。使用公開網路連線時,應完整核對 TLS、Reality 或伺服器端指定的其他安全參數。只複製網址、連接埠與使用者識別碼,遺漏 serverName、publicKey、shortId 或 flow 等欄位,都可能導致握手失敗。
Trojan 的設定結構相對直觀,常見核心欄位包括伺服器位址、連接埠、密碼、網域與 TLS 相關選項。它對網域解析與 TLS 設定較為敏感。Shadowsocks 的關鍵欄位則是伺服器、連接埠、密碼與加密方法;只要客戶端或伺服器端其中一方不支援訂閱指定的方法,就可能啟動失敗或在連線後立即中斷。
VMess
在現有訂閱中的涵蓋範圍廣,適合繼續使用已穩定運作的 VMess 節點,不必只因協定名稱較早出現就遷移。
適合:既有服務、WebSocket 部署、延續相容性
VLESS
推薦協定層較精簡,能與 Xray 核心提供的安全層及流控能力組合,適合作為支援條件明確的新部署基準。
適合:新部署、參數可控、桌面與 Android 共用訂閱
Trojan
連線結構以 TLS 為核心,欄位較容易理解,但網域與 TLS 設定必須保持一致。
適合:已有網域與 TLS 環境、偏好簡潔設定
Shadowsocks
設定項目少、實作成熟,適合伺服器端明確提供受支援加密方法的輕量情境。
適合:資源受限裝置、簡單代理、UDP 需求明確
- v2rayN 桌面版通常使用 Xray 核心處理上述協定,實際可用欄位仍取決於目前的核心版本。
- v2rayNG Android 版採用 Xray 核心,適合同一訂閱中混合使用 VMess、VLESS、Trojan 與 Shadowsocks 節點的情況。
- v2flyNG Android 版採用 v2fly 核心,匯入新式 VLESS 組合前,應查看核心記錄,確認目前版本能識別安全層與流控欄位。
偽裝能力不能只看協定名稱
「哪種協定更像正常流量」不是一個脫離設定就能回答的問題。VMess 或 VLESS 透過 WebSocket 與 TLS 傳輸時,外部觀察到的是相應的 TCP、TLS 與 HTTP 升級行為;Trojan 的常見組合本身建立在 TLS 連線上;Shadowsocks 則更著重於加密代理傳輸。實際表現還會受到連接埠、網域、握手參數、伺服器回應與網路路徑影響。
連接埠號也不能單獨證明流量類型。443 常用於 TLS,但將任意協定改到 443 並不會自動取得正確的 TLS 握手。相反地,若伺服器端明確監聽 8443、2053 或其他連接埠,客戶端就必須使用訂閱提供的精確值。自行將連接埠改成 443,通常會導致連線遭拒或在握手階段中斷。
在受控的伺服器端環境中,部署者可以依現有條件選擇組合;訂閱使用者則應優先保留下發參數的完整性,不要為了「最佳化」而刪除路徑、網域、指紋、流控或安全層欄位。節點已經可用時,協定名稱通常不是第一個需要調整的項目;延遲、封包遺失、伺服器負載與線路繞行對使用體驗的影響更直接。
推薦方案:桌面與 Android 共用一條相容訂閱
桌面版(v2rayN)
- 使用訂閱指定的 Xray 核心設定
- 更新訂閱後執行一次真實連線延遲測試
- 在記錄中確認安全層與流控參數已載入
Android 版(v2rayNG)
- 匯入同一條訂閱並保留完整欄位
- 先測試同名節點,再比較行動網路結果
- 需要時依應用程式設定代理範圍
前提是訂閱服務同時向兩端回傳相容節點;同名節點在不同網路下仍可能出現不同的延遲與封包遺失率。
結論:先核對完整組合,再比較協定
協定名稱只決定連線的一部分。網域、連接埠、傳輸方式、安全層與核心版本只要有一項不相符,就足以讓原本可用的節點變成握手失敗。
效能負擔要在相同線路下測量
協定效能不能用一次測速就下結論。伺服器位置、入口頻寬、尖峰時段壅塞、TCP 壅塞控制、傳輸封裝與終端處理能力都會改變結果。要比較四種協定,至少應讓節點位於同一台伺服器或同一機房,保持出口線路、測試檔案與測速時段一致,並重複多輪後取中位數。
以下是一組用於說明測試方法的受控基準:客戶端透過有線網路連線,接入頻寬限制為 300 Mb/s,至伺服器的空載往返延遲為 41 ms,平均封包遺失率為 0.2%,每種協定連續傳輸 10 分鐘。測試組合分別為 VMess + WebSocket + TLS、VLESS + TCP + Reality、Trojan + TLS 以及 Shadowsocks 2022。
在此環境下,四組下載中位數分別為 268 Mb/s、286 Mb/s、281 Mb/s 與 289 Mb/s。這項結果只能說明在低封包遺失率、頻寬尚未飽和的特定環境中,四組設定都能接近接入上限;不能推導出 Shadowsocks 在其他線路上必然最快。VMess 組合中的 WebSocket 封裝、VLESS 組合中的安全層,以及不同的伺服器端實作,都會參與最終結果。
真實連線延遲也要與 ICMP Ping 區分。Ping 只反映網路層往返時間,真實連線延遲還包括代理握手、安全層協商與目標連線。某節點 Ping 為 45 ms、真實連線延遲為 92 ms 並不異常;若真實連線延遲持續超過 800 ms 或直接逾時,再結合核心記錄判斷問題出在握手、解析還是伺服器回應。
結論:差距小於網路波動時不必更換協定
同一線路重複三輪的吞吐量差異若低於 10%,應優先選擇連線穩定、客戶端完整支援且訂閱參數維護正常的節點,而不是依單輪峰值進行遷移。
依情境選擇,而不是按名稱排列優先順序
對於已穩定運作的訂閱,最直接的選擇方法是先更新訂閱,再對同一地區的節點執行真實連線延遲測試。若 VMess 節點連續多日可用、延遲穩定且頻寬符合需求,沒有必要只為了更換協定而調整。協定遷移通常還會涉及伺服器端、防火牆、網域解析與訂閱產生規則,變更成本也應納入判斷。
新部署且兩端都使用較新 Xray 核心時,可以優先評估 VLESS 與合適安全層的組合。已有規範的 TLS 環境時,Trojan 的參數結構便於核對。資源較有限、設定要求簡單,且伺服器端明確支援對應加密方法時,Shadowsocks 仍有適用空間。需要維持較早的 V2Ray 伺服器端設定時,VMess 更容易延續現有參數。
- 在 v2rayN 7.x 中更新訂閱群組,確認節點名稱、位址、連接埠與協定欄位已重新整理。
- 選擇同一地區的不同協定節點,分別執行真實連線延遲測試,每個節點至少重複三次。
- 開啟核心記錄,排除驗證失敗、TLS 握手失敗、網域解析失敗與連接埠遭佔用等問題。
- 使用同一個目標檔案進行持續下載,記錄 1 分鐘後的穩定速度,不採用啟動瞬間的峰值。
- 切換到日常使用的網路後再測試一次;固定寬頻與行動網路的路由不同,桌面版結果不能直接取代 Android 版結果。
本機 SOCKS 監聽:127.0.0.1:10808
本機 HTTP 監聽:127.0.0.1:10809
測試輪次:每個節點 3 次
單次逾時:10 秒
記錄項目:真實連線延遲、下載中位速度、斷線次數、核心記錄錯誤
本機連接埠應以目前客戶端介面顯示的值為準。若需要核對,可進入「設定」→「參數設定」查看本機監聽設定。10808 與 10809 是常見範例值,不同版本或既有設定可能使用其他連接埠。瀏覽器或系統代理填寫的連接埠,必須與客戶端實際監聽的值一致。
常見選擇與排錯問題
協定選擇最終應落實為可執行的檢查:客戶端能否解析訂閱欄位、核心是否支援該組合、目前網路能否完成握手,以及持續傳輸是否穩定。以下幾類問題,比「哪種協定最好」更接近日常使用中的實際判斷。
訂閱中四種協定都有,第一步該選哪個?
先依地區篩選,再從每種協定各選一個節點,執行三次真實連線延遲測試。排除逾時節點後,使用同一目標連續下載 3 分鐘,選擇延遲波動小、不中斷且速度符合用途的節點。
VLESS 節點匯入成功卻一直逾時,該怎麼辦?
展開節點設定,逐項核對連接埠、傳輸方式、安全層、serverName、publicKey、shortId 與 flow。接著查看核心記錄;若出現不支援參數,請更新客戶端核心;若出現握手失敗,則檢查伺服器時間與網域設定。
Trojan 可以連線,但瀏覽器網頁打不開?
先確認 v2rayN 的系統代理已啟用,再進入「設定」→「參數設定」檢查本機監聽連接埠。若記錄顯示 10808 或 10809 已被佔用,請關閉佔用程式或改用未被佔用的連接埠,然後重新啟動核心。
Shadowsocks 顯示不支援加密方法,該如何處理?
不要自行替換加密方法,因為伺服器端必須使用相同設定。先更新訂閱與客戶端核心;若仍無法識別,請改選訂閱中目前核心能處理的節點,或使用伺服器端明確提供的相容設定。
桌面版可用,Android 版的同一節點卻失敗?
確認兩端的訂閱更新時間一致,並比較節點的完整欄位。v2rayNG 與 v2flyNG 使用不同核心,新式安全層或流控參數可能存在版本支援差異;同時關閉行動網路的數據節省限制後再測試。
簡化後的選擇規則是:既有設定穩定就繼續使用;新部署先確認兩端核心能力;TLS 條件完整時評估 Trojan;設定輕量且加密方法明確時評估 Shadowsocks。任何協定都應透過真實連線延遲、持續下載與記錄三項結果共同確認,而不是只看節點名稱。