已有訂閱時,先選擇用戶端核心能完整辨識的節點,不要只看協定名稱判斷速度。自行設定時,再比較驗證方式、加密層與傳輸條件。本文適合想了解 VMess、VLESS、Trojan、Shadowsocks 差異的使用者;閱讀後可核對重要欄位、判斷是否需要 TLS,並依桌面與 Android 平台的實際支援情況選擇協定。
先分清協定、傳輸方式與加密層
VMess、VLESS、Trojan、Shadowsocks 是代理協定,不是用戶端名稱。v2rayN 是桌面用戶端,v2rayNG 使用 Xray 核心,v2flyNG 使用 V2Fly 核心。用戶端負責編輯、匯入及執行設定;實際建立連線的是所選核心。介面能匯入連結,不代表核心支援連結中的每種組合。
一個節點至少包含伺服器位址、連接埠、驗證資訊與傳輸設定。協定定義驗證方式及目標位址的表示方式;TCP、WebSocket 等傳輸方式負責承載連線;TLS 或 REALITY 等安全層則保護相應的傳輸過程。排除問題時,應將這幾個層面分開檢查,避免把 WebSocket 路徑錯誤誤判為協定不相容。
- 協定層:確認使用的是 VMess、VLESS、Trojan 還是 Shadowsocks,不能只變更介面上的協定下拉選單。
- 驗證層:VMess、VLESS 通常使用 UUID;Trojan 使用密碼;Shadowsocks 的憑證要求則視加密方式而定。
- 傳輸層:確認 TCP 或 WebSocket 等選項。使用 WebSocket 時,路徑與請求標頭也必須符合伺服器設定。
- 安全層:確認 TLS、伺服器名稱、憑證驗證,以及伺服器是否要求 REALITY 等特定設定。
四種協定的加密與握手方式比較
協定驗證與資料加密是兩回事。UUID 或密碼用來確認存取資格,不能單獨代表連線已加密。下表依常見部署方式比較;實際可用欄位仍須以雙方核心的實作及伺服器設定為準。
| 協定 | 驗證與握手 | 加密與 TLS 的關係 | 需確認的項目 |
|---|---|---|---|
| VMess | 以 UUID 作為使用者憑證,現代設定採用 AEAD 驗證機制;系統時間會影響驗證流程。 | 協定本身具備資料保護機制,常見的載荷加密方式包括 AES-GCM 與 ChaCha20-Poly1305;TLS 可再疊加於外層。 | UUID、加密選項、系統時間、傳輸類型與 TLS 設定。 |
| VLESS | 以 UUID 驗證,協定標頭較精簡;部分組合還要求 flow 設定相符。 | 一般所說的基礎 VLESS 設定不提供載荷加密,須搭配 TLS、REALITY 等安全層;擴充功能視核心而定。 | UUID、security、flow,以及 TLS 或 REALITY 的相關參數。 |
| Trojan | 在 TLS 保護的連線中傳送以密碼驗證的資訊及目標請求。 | 標準部署仰賴 TLS 保護驗證資訊與業務資料,並須正確處理憑證驗證。 | 密碼、伺服器名稱、憑證信任與傳輸設定。 |
| Shadowsocks | 依所選方法使用共用密碼或指定格式的金鑰,並由協定封裝目標位址。 | AEAD 方法本身提供驗證加密,基礎部署不需要 TLS;舊式方法與不同世代的方法不可混為一談。 | method、密碼或金鑰、連接埠,以及雙方對該方法的支援情況。 |
設定複雜度:欄位較少不代表更容易連線
VMess 常見的匯入資訊包括 UUID、加密選項與傳輸參數。現代 VMess AEAD 設定通常使用 alterId=0,不應照抄舊教學中的非零值,試圖「提升相容性」。若驗證失敗,應一併檢查裝置與伺服器的時間,而不是反覆更換 UUID。
VLESS 的基礎欄位較少,但啟用特定安全層後,需要核對的參數組合也會增加。例如 VLESS 搭配 REALITY 時,伺服器名稱、公鑰、short ID 等參數都必須符合伺服器要求。xtls-rprx-vision 是特定的 flow 值,不是所有 VLESS 節點都要填寫,也不能任意加到 WebSocket 設定中。
- 先確認協定:根據服務提供者的說明或原始訂閱內容確認,不要憑連接埠猜測。
- 再確認驗證資訊:完整複製 UUID、密碼或金鑰,並移除複製時不小心帶入的空格或換行。
- 接著確認傳輸設定:WebSocket 路徑與 Host、TLS 伺服器名稱須分別檢查,三者可能不同。
- 最後確認擴充設定:只填寫伺服器明確啟用的 flow、安全層與方法,避免手動加入不相關參數。
Trojan 須留意憑證是否有效,以及伺服器名稱是否符合憑證。Shadowsocks 則必須使用完全相符的加密方式,例如 aes-128-gcm 與 chacha20-ietf-poly1305 不能互換。使用 Shadowsocks 2022 方法時,還須確認核心支援情況與金鑰格式;一般密碼不能直接當作任何方法都適用的金鑰。
情境選擇:先看伺服器,再看用戶端
以下建議以「建立新設定、使用 Xray、可管理伺服器」為前提,並非速度排名。已有穩定訂閱時,維持完整相容的現有協定通常更省事。延遲與傳輸量也會受到線路、壅塞、伺服器負載、傳輸封裝及裝置效能影響,不能只看協定名稱推斷。
VLESS:建立新的 Xray 設定
建議在雙方支援一致,且能正確設定 TLS 或 REALITY 的情況下,可優先考慮用於新設定。先決定安全層與傳輸方式的組合,再填寫驗證參數。
適合:可管理伺服器、使用 Xray,並能維護相關安全參數。
VMess:延續現有部署
已有可用的 VMess 訂閱或伺服器時,繼續使用通常最直接。還須確認 AEAD 設定、系統時間,以及既有的 WebSocket 或 TLS 參數。
適合:已有 VMess 服務,且需要沿用既有設定。
Trojan:已有憑證與網域維護流程
設定重點在密碼與 TLS。憑證更新、伺服器名稱及信任鏈都需要持續維護,不能長期以停用憑證驗證作為解決方案。
適合:能維護網域、有效憑證及標準 TLS 服務。
Shadowsocks:設定精簡且加密方式明確
基礎連線只需比對位址、連接埠、加密方式與憑證。選用雙方都支援的現代 AEAD 方法,並另外確認是否有 UDP 等實際需求。
適合:加密方式與憑證資訊明確,且希望減少傳輸層設定項目。
桌面與 Android 共用訂閱的檢查方式
同一份訂閱可以包含多種協定。v2rayN 與 v2rayNG 可以使用相同的訂閱來源,但兩端能否取得相同的可用節點,仍受訂閱格式、用戶端解析能力及核心支援範圍影響。尤其是 flow、REALITY 與較新的加密方式,即使匯入成功,也應檢查節點詳細資訊。
雙端使用方式:共用訂閱,分別確認核心與入口
桌面版 v2rayN
- 先確認實際執行的核心,再選擇相容的節點。
- 檢查節點的協定、傳輸方式、安全層與 flow 是否完整。
- 在「設定」→「參數設定」中確認本機監聽連接埠;介面調整後,分組名稱可能有所不同。
- 分清系統代理是否已啟用,以及遠端節點是否連線成功。
Android 版 v2rayNG / v2flyNG
- v2rayNG 使用 Xray,請依該核心支援的組合選擇節點。
- v2flyNG 使用 V2Fly,不能依據 Xray 的擴充能力推定相容。
- 匯入後逐一確認驗證、傳輸與安全參數。
- 完成系統 VPN 授權後,再透過實際使用的應用程式驗證連線。
訂閱來源可以共用,但執行設定仍須分別驗證;不要以一端可用就認定另一端也一定可用。
訂閱連結可能包含存取憑證,應視為敏感資訊妥善保存。排查匯入差異時,可以比較協定及欄位是否遺漏,但不要公開完整訂閱網址、UUID、密碼或金鑰。提供記錄給他人前,也應移除伺服器位址與驗證資訊。
連接埠與連線狀態:確認本機入口,避免誤判
本機代理連接埠與遠端伺服器連接埠是兩回事。以下的 10808、10809 僅作為本機入口範例,443 則是常見的 TLS 服務連接埠;這些都不是每個節點的固定設定。請先確認用戶端實際監聽的連接埠,再執行命令。
如果已確認本機 SOCKS 入口正在監聽 127.0.0.1:10808,可以使用以下命令明確指定代理。在 Windows PowerShell 中使用 curl.exe;其他已安裝 curl 的終端機則可使用 curl。此處連線至保留作為範例的網域,只用來說明測試方式,不代表測速結果。
curl.exe --head --connect-timeout 10 --max-time 20 --proxy socks5h://127.0.0.1:10808 https://example.com
socks5h 表示由代理端解析目標網域。如果實際設定的是 HTTP 入口,則應使用相對應的代理位址;不要只把 SOCKS 連接埠改成另一個數字,卻保留錯誤的協定前綴。
curl.exe --head --connect-timeout 10 --max-time 20 --proxy http://127.0.0.1:10809 https://example.com
- 本機連線遭拒:先檢查核心是否正在執行,以及監聽連接埠是否相符;僅憑這點還不能判斷遠端協定有問題。
- TLS 憑證錯誤:確認伺服器名稱、裝置時間與憑證鏈,不要直接略過憑證驗證。
- 連線逾時:搭配記錄檢查遠端位址、連接埠、網路路徑與伺服器狀態;單憑逾時不能證明某種協定無法使用。
- 命令可用但應用程式失敗:繼續檢查系統代理、應用程式本身的代理設定,或 Android 的分流應用程式範圍。
常見問題:更換協定前應先確認什麼
VLESS 的 encryption 是 none,代表沒有保護嗎?
基礎 VLESS 中的 encryption=none 表示該協定層不負責載荷加密,不代表整條連線都沒有保護。開啟節點詳細資訊,繼續確認是否依伺服器要求啟用 TLS 或 REALITY。不要只憑這個欄位下結論,也不要在不可信任的網路中直接使用未受保護的基礎 VLESS。
VMess 可以使用,直接改成 VLESS 會比較快嗎?
不能直接修改。伺服器必須提供 VLESS 入口,UUID、連接埠、傳輸方式與安全層也都必須相符。若有兩個可用節點,應在同一裝置、相近時間及相同目標下重複比較,再搭配封包遺失與記錄判斷,而不是只比較一次延遲。
Trojan 出現憑證錯誤,可以勾選略過驗證嗎?
先確認節點的伺服器名稱是否正確、裝置時間是否正常,以及憑證是否過期。如果連線位址是 IP,TLS 伺服器名稱仍可能需要填入憑證對應的網域。長期略過驗證會失去重要的身分檢查,應修正設定或伺服器憑證。
Shadowsocks 密碼正確,為什麼仍然連不上?
一併確認 method、連接埠與金鑰格式,再確認兩端核心都支援該加密方式。如果一般網頁能使用,特定應用程式卻失敗,也應檢查 UDP 支援、路由規則及目標解析;不能只因密碼一致就排除設定問題。
更換協定會影響分流規則嗎?
協定定義遠端連線方式,路由規則則決定流量要送往哪個出站。更換節點後,請確認路由引用的 outboundTag 是否仍指向有效出站,並以相同目標重新測試。Android 也要檢查分流應用程式設定,避免把應用程式繞過代理誤判為節點失效。
最後依序確認:先看伺服器提供哪些協定,再確認核心完整支援哪些組合,最後比較維護成本與實際連線狀況。既有設定應優先確保相容;新設定則應先釐清安全層與驗證需求。協定名稱只是起點,完整參數與執行記錄才是判斷依據。