選擇協定前,先確認伺服器提供的設定,以及客戶端使用的核心,再檢查傳輸方式與安全參數。本文適合需要匯入訂閱、遷移舊節點或比較連線方案的使用者:看完即可分辨協定與傳輸層、辨識 UUID、密碼、SNI、flow 等欄位,並在相同線路下測試,避免把網路差異誤認為協定差異。
先分清協定、傳輸方式與安全層
VMess、VLESS、Trojan、Shadowsocks 是代理協定名稱。WebSocket、gRPC 等是承載代理資料的傳輸方式;TLS 和 REALITY 則是需要另外確認的安全設定。訂閱中出現「VLESS + WebSocket + TLS」,代表同一條連線的不同層次,並非三種可互換的協定。
客戶端也不等於協定。v2rayN 是桌面客戶端;v2rayNG 在 Android 上使用 Xray 核心;v2flyNG 在 Android 上使用 V2Fly 核心。介面能儲存設定,不代表目前使用的核心一定支援每個欄位。尤其是 REALITY、特定 flow 和較新的加密方式,都要確認實際核心是否支援。
- 協定層:決定身分驗證、請求格式及相關加密方式,例如 VMess 的 UUID,以及 Shadowsocks 的加密方法和密碼。
- 傳輸層:決定連線如何承載資料,例如直接使用 TCP,或透過 WebSocket 路徑連上反向代理。
- 安全層:檢查 TLS 憑證、伺服器名稱,或 REALITY 的公鑰等參數。
- 路由層:決定哪些請求要走哪個出口。切換「全域」或「繞過中國大陸」不會把 VMess 轉換成 VLESS。
四種協定的加密與設定差異
以下比較常見的部署方式,不會把某種傳輸方式視為某協定的唯一搭配。尤其要分清「代理協定本身的資料加密」和「外層 TLS」:兩者位於不同層次,不能只憑名稱判斷連線是否受到完整保護。
| 協定 | 驗證與加密 | 常見搭配 | 匯入後優先核對 |
|---|---|---|---|
| VMess | 以 UUID 辨識使用者;現代部署通常採用 AEAD 驗證,資料加密方式由 security 設定決定。 | TCP,或 WebSocket + TLS。 | UUID、security、傳輸類型、路徑、TLS;舊設定也可能包含 alterId。 |
| VLESS | 以 UUID 驗證;常見的 encryption=none 設定不提供協定層資料加密,通常會搭配 TLS 或 REALITY。 | TCP + TLS、TCP + REALITY,或 WebSocket + TLS。 | UUID、encryption、flow、伺服器名稱,以及 REALITY 的公鑰與 shortId。 |
| Trojan | 以密碼驗證;傳統部署仰賴 TLS 保護連線。 | TCP + TLS;其他傳輸封裝須確認連線兩端都支援。 | 密碼、連接埠、SNI、憑證有效性與傳輸類型。 |
| Shadowsocks | 加密方式由方法與密碼或金鑰決定;AEAD 方法與 Shadowsocks 2022 的金鑰規則不同。 | 使用協定本身的 TCP、UDP 轉送;額外封裝須另行確認。 | method、密碼或金鑰、伺服器位址、連接埠,以及是否開放 UDP。 |
VMess 驗證會依賴時間;裝置時鐘若明顯不準,可能導致連線失敗。請先啟用系統自動校時,再檢查 UUID 與傳輸參數。舊分享連結若含有 alterId,不要照舊教學一律改成某個非零值;現代 AEAD 設定通常使用 0,最後仍須與伺服器設定一致。
VLESS 常見設定中的 encryption=none 不代表「整條連線都未加密」,因為外層仍可能使用 TLS 或 REALITY。但也不能因此認定 VLESS 會自動提供這些保護。若設定使用新增的 VLESS 加密擴充功能,必須確認連線兩端的實作與版本都支援,不能套用傳統設定的欄位解讀方式。
結論:依完整參數組合選擇
比較時請記錄「協定 + 傳輸方式 + 安全層 + 核心」,例如「VLESS + TCP + REALITY + Xray」。只記錄「VLESS 節點」會漏掉影響相容性的關鍵條件,也不利於重現問題。
握手成本與速度:如何有效比較
握手次數不等於下載速度排名。建立連線時,TCP、TLS、代理驗證與傳輸封裝都可能增加等待時間;連線重複使用後,大型檔案傳輸則主要受線路頻寬、壅塞、伺服器負載和封包遺失影響。VLESS 的協定標頭較精簡,也不代表任何 VLESS 節點都比 VMess 節點快。
WebSocket 或 gRPC 常用來搭配現有的接入架構,不是免費的加速開關。TLS 工作階段恢復、連線重複使用和伺服器部署方式,也會影響實際表現。下列兩個連接埠只用來說明連線方向,不代表任何客戶端的預設連接埠,也不是速度測試數據。
- 固定線路:盡量選擇相同伺服器、相同出口與相同時段;不同地區的節點無法直接用來比較協定開銷。
- 固定測試條件:使用相同的路由模式、DNS 設定與目標網站;不要一邊啟用 TUN,一邊只使用系統代理。
- 分項記錄:分別記錄首次開啟網頁所需時間、持續下載速度和連線失敗次數;不要把 TCP 探測延遲當成網頁載入時間。
- 重複測試:每種設定可重複送出相同請求五次,記錄中位數與失敗次數;這裡說明的是測試方法,不代表已有任何效能測試結果。
依使用情境選擇協定
以下建議適用於「全新部署、兩端支援 Xray,且能取得完整設定」的情況。若現有服務運作穩定,維持相容性比為了協定名稱而遷移更重要。若沒有伺服器管理權限,也無法在本機自行新增協定。
VLESS:新設定的選項
建議若連線兩端都支援所需功能,可評估使用 VLESS + TLS 或 REALITY。請逐項確認 flow、伺服器名稱與金鑰參數,別把 REALITY 當成所有 VLESS 節點的必備項目。
適用情境:使用 Xray,且能取得完整伺服器參數的新部署。
VMess:延續現有設定
若現有 VMess + WebSocket + TLS 服務運作正常,可以繼續使用。先檢查時間同步與 AEAD 相關設定,不必只因為出現其他協定就重建服務。
適用情境:已有 VMess 服務,需要延續現有接入設定。
Trojan:已有 TLS 服務
適合已能管理網域、憑證與 TLS 入站設定的情境。憑證過期、SNI 錯誤與密碼錯誤應分別排查;停用憑證驗證不是日常解決方法。
適用情境:已有網域憑證維護流程,且伺服器明確提供 Trojan。
Shadowsocks:設定明確的連線
主要參數包括位址、連接埠、加密方法與密碼。請選擇連線兩端都支援的加密方法;使用 Shadowsocks 2022 時,也要確認兩端支援相應的方法與金鑰格式。
適用情境:伺服器直接提供相容的 Shadowsocks 設定。
客戶端方面,v2rayN 應依節點功能選擇可用核心;v2rayNG 使用 Xray,遇到新增欄位仍須確認目前核心是否支援;v2flyNG 使用 V2Fly,不能因為都屬於相關生態系,就假設它支援 Xray 的 REALITY 或特定 flow。訂閱更新成功,只代表設定已取得,不代表所有節點都能啟動。
匯入與核對:從分享連結到實際連線
訂閱網址與單一節點分享連結是兩種不同的匯入方式。訂閱網址通常透過 HTTPS 取得一組節點;單一分享連結則常以 vmess://、vless://、trojan:// 或 ss:// 開頭。前綴只能辨識大致類型,不能保證核心支援所有擴充欄位。
-
辨識連結
先分清訂閱網址與單一分享連結。本文流程適用於單一連結;不要把訂閱網頁內容當成節點密碼,也不要將含有 UUID、密碼或金鑰的完整連結貼到公開討論區。
-
匯入節點
v2rayN 常見的匯入方式是「伺服器」→「從剪貼簿匯入分享連結」;v2rayNG 則是在主畫面右上角點選「+」→「從剪貼簿匯入」。不同版本的介面文字可能略有不同,請選擇匯入分享連結的項目,而非訂閱設定。
-
核對欄位
在 v2rayN 選取節點後開啟編輯視窗,或在 v2rayNG 點選節點的編輯圖示。依序檢查位址、遠端連接埠、UUID 或密碼、傳輸類型、TLS 或 REALITY;使用 WebSocket 時,也要核對 Host 與路徑。
-
啟動並查看記錄
先啟動節點,再開啟所需的代理入口。v2rayN 可在底部「系統代理」選擇「自動設定系統代理」;v2rayNG 啟動後,依系統提示允許 VPN 連線。若連線失敗,先查看記錄,判斷問題是設定解析、握手還是連線逾時,再針對相應項目調整。
常見問題:連線失敗時,先檢查哪一層
VLESS 匯入成功,為什麼一啟動就出錯?
先檢查是否出現不支援的欄位、flow 或安全類型。確認目前使用的核心,再對照伺服器設定檢查 UUID、REALITY 公鑰與 shortId。不要為了讓設定勉強儲存就刪除不熟悉的欄位;它們可能正是伺服器要求的條件。
Trojan 顯示憑證錯誤,可以直接略過驗證嗎?
先檢查裝置時間、SNI 和憑證有效期限。即使連線位址是 IP,也應填入伺服器指定的名稱。略過驗證會降低伺服器身分驗證的安全性,不能取代正確的憑證與名稱設定。
Shadowsocks 密碼相同,為什麼還是連不上?
也要檢查 method 與連接埠。不同加密方法對密碼或金鑰的要求不盡相同,不能只複製密碼。若網頁能開啟,但需要 UDP 的應用程式無法使用,請再檢查伺服器的 UDP、防火牆與客戶端轉送設定。
節點延遲正常,為什麼瀏覽器還是無法開啟網頁?
先確認瀏覽器流量確實經過客戶端,再檢查 DNS 與路由。TCP 探測成功不代表代理驗證或 TLS 握手也成功。桌面端請先單獨測試系統代理;排查期間不要同時切換 TUN、路由和協定。
最後應依可驗證的條件做選擇:伺服器確實提供、客戶端核心支援、參數可完整匯入,且實際應用能穩定連線。協定名稱只是檢查清單的第一項;保留一份可用設定,每次只修改一個變數,通常比反覆更換協定更容易找出問題。