選擇協定時,先確認伺服器提供的選項,再檢查用戶端核心是否完整支援。現有 VMess 節點不必只因名稱較舊就更換;新設定可在支援的情況下選用 VLESS 搭配 TLS 或 REALITY;已有憑證與網域時,可考慮 Trojan;若需要精簡的加密代理,則應確認 Shadowsocks 使用的具體加密方法。本文將協定、傳輸方式與安全層分開說明,協助 macOS 和 Android 用戶核對訂閱參數,並在相同測試條件下比較實際使用體驗。
一、先分清協定、傳輸方式與安全層
v2rayN 是桌面用戶端,不是代理協定。V2Ray 與 Xray 是代理核心,負責處理連線、路由及 DNS 等設定。VMess、VLESS、Trojan 與 Shadowsocks 則定義用戶端和伺服器如何驗證身分、封裝或加密資料。成功匯入只表示用戶端能讀取連結,不代表目前使用的核心支援其中所有功能。
節點名稱中的「VLESS + WebSocket + TLS」包含三個層次。VLESS 負責代理請求與身分資訊;WebSocket 負責承載資料;TLS 則負責保護連線傳輸並驗證伺服器身分。若把這三個層次都當成同一種「協定」,更換節點時就容易漏掉路徑、網域或安全設定。
- 代理協定
- 確認使用的是 VMess、VLESS、Trojan 或 Shadowsocks。通訊兩端必須採用相同協定,不能只在用戶端修改名稱。
- 傳輸方式
- 確認實際設定的是 TCP、WebSocket、gRPC 等傳輸方式。不同協定、核心和版本支援的組合不盡相同。
- 連線安全
- 確認 TLS 或 REALITY 等設定。REALITY 是 Xray 的安全機制之一,不是獨立的代理協定,也不能當成一般憑證開關來替換。
二、四種協定的加密與驗證方式
判斷「是否加密」時,要看整條連線,而不是只看協定欄位。VLESS 常見設定中的 encryption=none 表示協定本身不提供載荷加密;若外層正確啟用 TLS 或 REALITY,連線仍可受到保護。反之,連接埠設為 443,並不能證明已啟用 TLS。
| 協定 | 驗證與加密 | 常見組合 | 必須確認 |
|---|---|---|---|
| VMess | 使用 UUID 作為身分資訊;現代設定採用 AEAD 驗證機制,載荷是否加密則取決於安全選項。 | VMess + TCP,或 WebSocket + TLS。 | UUID、載荷安全選項、系統時間及傳輸參數。 |
| VLESS | 使用 UUID 驗證;協定本身不提供載荷加密,通常會搭配外部安全層。 | VLESS + TLS,或 Xray 支援的 REALITY 組合。 | UUID、安全層、flow,以及 REALITY 所需的公鑰等參數。 |
| Trojan | 使用密碼驗證,並依賴 TLS 保護驗證資訊與代理資料。 | Trojan + TCP + TLS。 | 密碼、憑證網域、SNI,以及憑證驗證狀態。 |
| Shadowsocks | 由選用的加密方法提供保護;傳統 AEAD 與 2022 系列的金鑰規則不同。 | 原生 TCP/UDP 加密代理。 | 完整的加密方法名稱、密碼或金鑰,以及核心支援範圍。 |
VMess 的 alterId 是與相容性相關的參數,現代 AEAD 設定通常為 0,不要照著舊教學任意填入其他數值。VMess 驗證也會使用時間資訊;若系統時間明顯不準,請先在 macOS 的「系統設定」→「一般」→「日期與時間」啟用自動設定,再檢查節點。
Shadowsocks 並非只有一種加密方法。aes-128-gcm 和 2022-blake3-aes-128-gcm 是不同的設定;後者要求符合格式的預先共用金鑰,不能直接把任意短密碼當成金鑰填入。更換加密方法時,伺服器端也必須同步修改。
三、握手成本與速度:先固定測試條件
首次開啟網頁時,會依序涉及 DNS 查詢、建立連線、安全握手、代理請求及目標網站回應。Trojan 通常會先建立 TLS 連線,再傳送代理請求;VMess 和 VLESS 的實際成本,則取決於是否另外搭配 TLS、WebSocket 或其他傳輸方式。Shadowsocks 原生連線沒有 TLS 憑證握手,但這不代表在所有網路環境下都比較快。
在常見的 HTTP/1.1 部署方式中,WebSocket 還需要進行升級握手。連線重用可能降低後續請求重複建立連線的成本,但也會影響壅塞狀況及故障波及範圍。因此,不能只看協定名稱就推定延遲,也不能把單次「延遲測試」的毫秒數當成網頁完整載入時間。
- 固定線路:盡量在相近時段比較同一台伺服器和相同出口的設定;不同地區的節點無法用來單獨比較協定差異。
- 固定代理入口:測試期間維持相同的系統代理或 TUN 模式、路由規則和 DNS 設定,避免其中一組使用代理、另一組卻直接連線。
- 分開記錄:分別記錄首次載入頁面的耗時、持續下載速度及失敗次數。每組至少測試 5 次並查看中位數,不要只採用最佳結果。
- 另外測試 UDP:若要用於通話、遊戲或 QUIC,請以實際應用程式測試;網頁能開啟不代表 UDP 已正確轉送。
結論:先排除不穩定的設定,再比較速度
若 5 次測試中多次逾時,請先檢查線路和傳輸方式是否相符;只有各組都能穩定完成請求時,比較中位耗時才有參考價值。若沒有在相同條件下記錄,就不要依協定名稱排列速度。
四、TLS、REALITY 與抗識別能力的界線
TLS 可以保護傳輸內容,但「使用 TLS」不代表流量外觀與一般網頁完全相同。握手特徵、網域、IP 信譽、封包長度與傳輸時序,以及伺服器對異常請求的回應,都可能影響識別結果。VMess 搭配 TLS 後,也不能只憑協定名稱就認定一定比其他協定弱。
Trojan 透過 TLS 承載代理流量,部署時仍須正確設定憑證、網域及伺服器行為。VLESS 搭配 REALITY 時,兩端核心都必須支援,並正確設定公鑰、serverName、shortId 等參數。某些設定還要求特定 flow,這些欄位並非填得越多越好。
- TLS 節點:憑證必須在有效期限內,且憑證名稱必須涵蓋驗證時使用的網域。SNI 應依伺服器設定填寫,不要隨意改成常見網站的網域。
- REALITY 節點:逐項確認伺服器提供的公鑰、serverName、shortId 和指紋設定;用戶端顯示的欄位名稱可能因版本而異。
- CDN 情境:一般 HTTP CDN 需要相容的 HTTP 類傳輸方式及服務商支援。原始 TCP + REALITY 不能直接當作一般 WebSocket 網站接入。
- Shadowsocks 情境:加密可以隱藏明文,但原生流量不會自動呈現 HTTPS 的外觀。是否需要其他傳輸方案,應依伺服器部署方式決定。
五、依情境選擇:新設定、現有訂閱與 Android 裝置
以下所說的「推薦」,僅適用於建立新設定、可調整伺服器端且用戶端支援相應功能的情況。若現有訂閱可正常使用,應優先保留服務商提供的完整組合。協定選擇不是逐級升級;符合目前網路環境且便於維護的設定才有意義。
VLESS 搭配 TLS 或 REALITY
推薦新設定可優先評估。協定本身不會另外提供載荷加密,安全性取決於外層保護是否正確設定。使用 REALITY 或特定 flow 前,請先確認 Xray 核心與伺服器設定相符。
適合:能自行管理伺服器設定,且願意核對安全層參數的使用者。
Trojan 搭配 TLS
已有網域和憑證維護流程時,設定方式較明確。請特別確認密碼、SNI 和憑證驗證;不要為了排除連線錯誤而長期略過憑證驗證。
適合:具備 TLS 部署經驗,且伺服器明確提供 Trojan 的使用者。
VMess AEAD
現有的 VMess 訂閱若穩定可用,就可以繼續使用。保留原本的傳輸和 TLS 參數,並確認時間同步;若沒有證據顯示目前設定有問題,不必只為了協定名稱重新部署。
適合:重視現有訂閱、既有伺服器與相容性的情境。
Shadowsocks AEAD / 2022
設定項目相對集中,適合明確支援相應加密方法的伺服器。選用前請確認完整方法名稱和金鑰格式;若應用程式需要 UDP,也要確認伺服器和本機入口都支援轉送。
適合:需要輕量加密代理,且已知加密方法與金鑰的情境。
在 macOS 上使用 v2rayN 時,應確認目前選用的核心,而不只看用戶端版本。Android 版 v2rayNG 使用 Xray 核心;v2flyNG 則使用 v2fly 核心。若設定涉及 REALITY、特定 flow 或 Shadowsocks 2022,必須確認對應核心版本是否實際支援,不要假設三款用戶端的所有設定都通用。
- 桌面端:先將 v2rayN 和核心更新至符合訂閱功能的版本,再匯入原始設定;保留舊設定以便還原。
- Android 端:將相同節點匯入 v2rayNG 後,檢查傳輸和安全欄位。若改用 v2flyNG,請先確認該節點不依賴 Xray 專屬功能。
- 多裝置使用:向伺服器確認支援的用戶端及最低核心版本要求,不要只因分享連結能被辨識,就判定設定相容。
六、匯入後檢查:從協定欄位到本機代理入口
用戶端顯示節點,不代表應用程式流量已經經過該節點。匯入後,先開啟節點編輯視窗核對伺服器參數,再檢查本機代理入口。以下的 1080 僅為 SOCKS5 測試連接埠範例,並非 v2rayN 固定的預設值;執行命令前,必須替換成目前實際監聽的連接埠。
- 協定與憑證資料:確認 VMess/VLESS 的 UUID、Trojan 密碼,或 Shadowsocks 的完整加密方法和金鑰。也要留意複製時是否帶入前後空白。
- 位址與連接埠:確認伺服器位址和連接埠;本機監聽連接埠與遠端伺服器連接埠並不相同。
- 傳輸與安全:WebSocket 請確認 path 和 Host,gRPC 請確認 serviceName;TLS 請確認 serverName,REALITY 則還要確認公鑰和 shortId。
- 本機監聽:在 v2rayN 的「設定」→「參數設定」中查找本機監聽或入站連接埠。介面名稱可能因版本而異,請以目前的設定和啟動記錄為準。
- 應用程式入口:確認已設定系統代理,或依需求啟用 TUN。測試單一入口時,不要同時變更路由和 DNS 規則。
# 將 1080 替換為目前用戶端的 SOCKS5 監聽連接埠
curl --proxy socks5h://127.0.0.1:1080 --connect-timeout 10 --max-time 30 -I https://example.com/
socks5h 會將目標網域交由 SOCKS 代理端解析,可減少本機解析目標網域對測試造成的干擾;但無法保證後續 DNS 一定透過某種加密通道傳輸。命令也會受到用戶端路由規則影響,請一併查看輸出記錄。若出現無法連線至 127.0.0.1 的提示,先處理本機監聽問題;若是握手或驗證錯誤,再檢查遠端參數。
七、協定選型常見問題
VLESS 的加密顯示為 none,需要修改嗎?
不要任意修改。先開啟節點編輯視窗,確認 TLS 或 REALITY 是否與伺服器設定一致。此處的 none 是 VLESS 協定層設定;若外層也沒有保護,就不要直接將它用於安全性未受保護的公開網路連線,並向伺服器確認設計。
VMess 節點還能用,需要全部換成 VLESS 嗎?
不必只為了名稱而更換。先檢查時間同步、目前使用的核心和傳輸參數,再在相同網路條件下測試。只有伺服器提供可用的 VLESS 設定時,才匯入比較;不能直接在原節點上切換協定。
Trojan 出現憑證錯誤,開啟略過驗證就可以嗎?
先檢查系統時間和節點中的 serverName,再請伺服器管理者檢查憑證有效期限、憑證鏈及網域涵蓋範圍。不要長期保留略過驗證的設定;修正憑證或網域設定後,維持正常驗證再測試。
Shadowsocks 成功匯入,卻一直顯示驗證失敗?
逐字比對加密方法名稱,並確認輸入的是密碼還是符合規定格式的金鑰。2022 方法通常使用 Base64 編碼且長度固定的金鑰,不能與傳統 AEAD 密碼任意互換;也要確認核心支援該方法。
同一個訂閱在電腦上能用,為什麼 Android 會逾時?
先比較兩端實際選用的節點、網路和安全參數。v2rayNG 與 v2flyNG 使用不同核心,遇到 REALITY 或特定 flow 時,請先確認相容性;接著切換到相同 Wi-Fi 測試,判斷問題來自設定還是行動網路差異。