V2Ray 協定與核心技術參考
本頁是站內的系統查閱手冊,與快速上手分工明確:那一頁負責讓一次連線順利跑通,本頁負責在需要做選擇時提供依據——五種代理協定的設計取捨、V2Fly 與 Xray 兩個核心的差異、訂閱欄位的對應關係、傳輸與路由的實際影響,以及依情境挑選協定的順序。
- 協定 VMess / VLESS / Trojan / SS / REALITY
- 核心 V2Fly · Xray
- 客戶端 v2rayN · v2rayNG · v2flyNG
- 平台 Windows · macOS · Android · Linux
選型總覽:核心、協定、傳輸三層怎麼分
在 v2rayNG 或 v2rayN 裡點開一個節點之前,先分清三層東西,後面的選擇會清楚很多。這三層分別是客戶端、核心、協定與傳輸,每一層能改動的東西並不一樣。
三層各自負責什麼
客戶端是看得見的那一層。桌面端是 v2rayN,Android 端是 v2rayNG 與 v2flyNG。客戶端負責介面、訂閱管理、路由開關、分應用程式代理這類操作,並把節點資訊轉譯成核心能讀的設定。
核心是真正建立連線的程式。它讀取一份 JSON 設定,依 inbounds 接收本機流量,依 outbounds 把流量送出去,中間依 routing 裡的規則決定走哪條出站。v2rayNG 呼叫的是 Xray 核心,v2flyNG 呼叫的是 V2Fly 核心,v2rayN 桌面版同樣以 Xray 核心為主。核心決定了哪些協定可用——例如 REALITY 只存在於 Xray 這一側,把 REALITY 節點匯入 v2flyNG 是無法解析的。
協定與傳輸是決定實際表現的一層。協定指 VMess、VLESS、Trojan、Shadowsocks、REALITY 這些身分與封裝方案;傳輸指 TCP、WebSocket、gRPC 這些承載方式;再疊加是否使用 TLS。這一層通常隨訂閱一起派送,日常使用中很少需要手動填寫。
日常能改的其實只有幾項
打開客戶端設定介面,一般使用者真正會動到的選項集中在幾個地方:選哪個節點、路由模式選哪一種、哪些應用程式走代理、是否開機自動啟動。協定與傳輸是跟著節點來的,不是現場編輯的。所以「選對協定」這件事發生在挑選訂閱或整理自建設定的階段,而不是每次連線的時候。理解協定差異的價值在於兩點:同一個訂閱裡有多種協定的節點時,你知道該優先試哪一個;某個節點連不上時,你能判斷問題出在協定參數還是鏈路本身。
本頁與快速上手頁的分工
快速上手負責讓一次連線順利跑通的最短路徑:匯入訂閱、選擇模式、連線、驗證,每一步只講必要動作。本頁不重複那條主線,而是把每個環節背後的選擇講清楚——協定之間差在哪、兩個核心怎麼取捨、訂閱欄位怎麼對應、什麼情境該用哪種組合。如果現在只想盡快連上,先看快速上手;如果正在挑訂閱、整理自建設定或排解疑難,留在本頁。
依需求找章節
- 想知道五種協定的設計差別 → 協定家族
- 想比較握手開銷與資源占用 → 速度與開銷比較
- 想知道 v2rayNG 與 v2flyNG 的核心差別 → 核心家族
- 訂閱匯入失敗或欄位對不上 → 訂閱格式與相容性
- 想了解傳輸方式與路由模式的影響 → 傳輸與路由
- 在意 Android 裝置的耗電 → 行動裝置電量表現
- 想直接看推薦組合 → 依情境選型
- 需要欄位速查或除錯清單 → 參數速查與除錯
術語約定
本頁所說的節點,指一條完整的出站設定,包含伺服器位址、連接埠、身分欄位與傳輸參數;訂閱指包含多條節點資訊的連結或檔案;核心指 v2ray-core 家族的處理程式;入站與出站分別對應本機流量的入口與出口。流量控制指協定層對資料轉送方式的控制參數。REALITY 在本頁以協定層方案討論,涉及的是選型與相容性判斷,不展開伺服器端部署細節。
代理協定家族:誕生背景與設計取捨
協定之間的差別,大多不是「誰比較快」這種能一句話回答的問題,而是每個方案在設計時優先解決了什麼、又主動放棄了什麼。把五種協定放回各自的出發點來看,選型時的疑問會少很多。
VMess:協定內建認證與加密
VMess 是 V2Ray 專案早期自有的協定,目標是在品質不穩定的鏈路上完成身分確認與資料封裝。它內建 UUID 身分欄位與時間戳記驗證,早期透過 alterId 機制產生一批子身分,後來改為 AEAD 認證加密,alterId 設為 0 成為主流做法。設計上的特點是認證與加密都在協定內部完成,因此不依賴外層 TLS 也能運作。代價是每個封包都多一層封裝,握手時客戶端與伺服器端要完成一次請求與回應,行動裝置會因此多出幾次處理器喚醒。
VLESS:把加密交給外層
VLESS 可以理解為 VMess 的減法版本。它去掉了協定內建的加密層,只保留一個輕量的身分標識與可選的流量控制參數,加密完全交給外層通道,通常是 TLS。取捨很明確:放棄「裸跑也加密」的能力,換取更短的握手路徑與更少的封裝位元組。因此 VLESS 必須搭配 TLS 或同等可靠的加密通道使用,單獨裸跑不提供機密性。在 Xray 核心裡,VLESS 可以搭配 flow 參數啟用 XTLS Vision 流量控制,進一步減少加解密層數。
Trojan:讓流量維持標準 HTTPS 的樣子
Trojan 不發明新的流量形態,而是讓代理流量維持一次標準 HTTPS 存取的樣子。伺服器端監聽 443 連接埠並持有真實憑證,密碼正確時轉送流量,密碼錯誤時把請求回落到一個真實網站。從外部觀察,它就是一台普通的 Web 伺服器。取捨在於:必須擁有網域與有效憑證,憑證或連接埠設定出錯時會完全無法使用;好處是設定概念少、理解成本低,流量形態與一般 HTTPS 高度接近。
Shadowsocks:輕量對稱加密
Shadowsocks 走的是輕量對稱加密路線。客戶端與伺服器端共用一組密碼,由密碼衍生出加密金鑰,沒有額外的身分握手欄位。常見加密方式為 chacha20-ietf-poly1305 與 aes-256-gcm 這類 AEAD 演算法。它的封裝開銷在幾種方案裡最小,實作也最簡單,因此在運算能力有限的裝置上仍然常見。代價是協定本身不提供偽裝層,流量特徵相對固定,需要靠外層封裝或外掛來補足。
REALITY:借用真實網站的握手流程
REALITY 由 Xray 這一側提出,針對的是憑證維護成本這個具體問題。一般 TLS 方案需要自己擁有網域與憑證,REALITY 改為在握手階段借用某個真實網站的憑證鏈:客戶端事先知道目標網站的公鑰,握手時驗證的是目標網站,伺服器端不需要持有自己的憑證。對使用者來說,一個 REALITY 節點通常只需要填幾個參數:公鑰、shortId、目標網域。它目前主要與 VLESS 搭配,並配合 XTLS Vision 流量控制使用。
協定不是越新越好。判斷順序是:先看客戶端核心是否支援,再看鏈路品質與是否需要偽裝,最後看裝置運算能力。三者都滿足時,再在新舊之間取捨。
五種方案的取捨對照
| 協定 | 身分方式 | 內建加密 | 主動放棄的能力 |
|---|---|---|---|
| VMess | UUID 加時間戳記驗證 | 有 | 更短的握手路徑 |
| VLESS | UUID | 無 | 裸跑時的機密性 |
| Trojan | 密碼 | 無 | 免憑證部署 |
| Shadowsocks | 共用密碼衍生 | 有 | 協定層偽裝 |
| REALITY | 公鑰與 shortId | 無 | 使用自有憑證 |
從表裡能看出一條清晰的演化線索:早期方案傾向把能力做進協定內部,後來的方案傾向把能力交給外層、讓協定本身盡量薄。這條線索也解釋了為什麼新協定往往要求搭配 TLS——它們把安全邊界往外移了。
連線速度與資源占用比較
「哪個協定快」要先拆開來看。一次連線的時間由三部分構成:實體鏈路來回、握手來回次數、加解密與封裝的處理時間。前兩項由伺服器位置和鏈路品質決定,與協定無關;協定能影響的只有第三項,以及握手需要幾個來回。所以同一台伺服器換協定測速,差異通常很小;換一台伺服器,差異可能大得多。
握手路徑:需要幾個來回
VMess 的握手是請求與回應兩段式,客戶端送出身份資訊後要等伺服器端確認;VLESS 只帶一個輕量身分標識,不額外等待一輪確認;Trojan 走標準 TLS 握手,密碼驗證發生在握手之後的應用層資料裡;Shadowsocks 沒有身分來回,金鑰由共用密碼直接衍生;REALITY 的握手過程與存取一個真實網站一致,客戶端驗證的是目標網站的憑證鏈。來回次數越少,在高延遲鏈路上的首包時間越短。
封裝層數:加解密做幾遍
封裝層數決定處理器開銷。VMess 內建加密,如果外面再套一層 TLS,資料就要加解密兩遍;VLESS 與 Trojan 本身不做加密,只做一層 TLS;REALITY 配合 XTLS Vision 時,代理資料可以直通,減少重複的加解密。在桌面處理器上這幾層差異很難察覺,在低功耗 Android 裝置上則會反映在耗電與發熱上,這一點在行動裝置電量表現一章展開。
三種開銷對照
| 協定 | 握手特徵 | 典型封裝層數 | 相對開銷 |
|---|---|---|---|
| VMess | 身分驗證加請求回應兩段 | 協定本身加密,可再疊 TLS | 中 |
| VLESS | 單次身分標識 | 一層 TLS | 低 |
| Trojan | 標準 TLS 握手後驗證密碼 | 一層 TLS | 中低 |
| Shadowsocks | 金鑰衍生,無身分來回 | 協定本身對稱加密 | 低 |
| REALITY | 與存取真實網站一致 | 一層 TLS,可直通 | 低 |
什麼時候差異能被察覺
三種情況下協定差異會變得明顯:鏈路本身延遲很高時,握手來回次數的影響被放大;裝置運算能力有限時,加解密層數直接反映為耗電與掉速;同時連線數多時,每條連線的開銷會累積。反過來說,在延遲較低的固網加上中階以上裝置上,VMess 與 VLESS 的體感差別通常小到無法穩定重現。
客戶端顯示的延遲數字來自 TCP 握手或真連線測試,反映的主要是鏈路品質,不是協定優劣。要比較協定,必須在同一台伺服器、同一條鏈路上換協定測試,並在同一時段內完成。
怎麼自測才有意義
在 v2rayNG 的節點清單裡,可以透過選單發起延遲測試,常見的有 TCP 測試與真連線測試兩類。TCP 測試只驗證位址與連接埠能否連通,速度快但資訊少;真連線測試會實際建立一次代理連線,結果更接近真實使用。比較協定時依下面的順序進行:
- 固定一台伺服器,把同一份設定依不同協定各寫一條出站。
- 用真連線測試各測三輪,記錄波動範圍而不是單次數值。
- 在同一時段內完成全部測試,避免跨時段比較。
- 再補一次實際存取測試,確認測試結果與體感一致。
如果三輪結果互相重疊,說明在目前鏈路上這幾個協定沒有可分辨的差異,選型應該轉向其他因素:是否需要偽裝、憑證維護成本、裝置耗電。依同樣思路篩選節點的完整流程,見首次連線檢查。
核心家族:V2Fly 與 Xray 的功能差異
協定是設定裡的欄位,核心是執行這些欄位的程式。同一份節點資訊在不同核心上的表現可能不同,原因是兩個核心支援的功能集合並不完全一樣。
從 Project V 到兩條維護線
Project V 是一套圍繞代理與路由的開源方案,最初的實作是 v2ray-core。隨著專案演進,社群接手維護這條主線,形成了 V2Fly 核心;另一條線從 v2ray-core 分支出來,發展成 Xray 核心。兩者共用同一套設定結構與大部分欄位命名,但各自增加了不同的能力。理解這一點,就能明白為什麼同一個訂閱在不同客戶端匯入後,節點數量可能對不上。
功能差異對照
| 能力 | V2Fly 核心 | Xray 核心 |
|---|---|---|
| VMess / VLESS / Trojan / Shadowsocks | 支援 | 支援 |
| REALITY 握手方案 | 不支援 | 支援 |
| XTLS 與 Vision 流量控制 | 不支援 | 支援 |
| VLESS 的 flow 參數 | 不支援 | 支援 |
| 路由規則與網域比對 | 支援 | 支援 |
| 分應用程式代理(Android 端) | 支援 | 支援 |
| 設定骨架與欄位命名 | 同源 | 同源 |
設定相容性怎麼判斷
兩個核心的設定骨架一致:最上層是 inbounds、outbounds、routing 這些鍵,出站裡的 protocol、settings、streamSettings 結構也相同。差異出現在具體欄位上:Xray 獨有的欄位,例如 VLESS 出站裡的 flow、傳輸層裡的 realitySettings,在 V2Fly 核心上無法解析,輕則忽略該欄位,重則整份設定載入失敗。反過來說,V2Fly 支援的欄位 Xray 基本上都相容。所以從 Xray 搬到 V2Fly 需要逐項檢查,從 V2Fly 搬到 Xray 通常不用改。
如果一份訂閱匯入後節點數量變少,或所有節點都連線失敗,先確認節點用了哪種協定與傳輸。出現 REALITY 或 flow 參數時,應使用以 Xray 核心為基礎的客戶端。
三款客戶端與核心的搭配
桌面端 v2rayN 以 Xray 核心為主,涵蓋 Windows、macOS、Linux 三個平台;Android 端 v2rayNG 同樣以 Xray 核心為基礎,是 Android 上的首選;v2flyNG 以 V2Fly 核心為基礎,作為備選,適合訂閱內容只包含基礎協定、且希望與既有設定保持一致的情況。三款客戶端的介面結構相近,訂閱管理與路由設定的思路一致,從桌面搬到 Android 不需要重新學習。三者的詳細比較見選型指南。
怎麼選
判斷順序很簡單:訂閱裡出現 REALITY 節點,或者設定裡帶 flow 參數,就用 Xray 核心的客戶端;訂閱只有 VMess、Trojan、Shadowsocks 這類基礎協定,兩個核心都能涵蓋,這時依平台選客戶端即可,Android 優先選 v2rayNG。需要同時維護桌面與 Android 時,統一使用 Xray 核心可以減少一次設定搬移時的檢查成本。
訂閱格式與相容性
訂閱是節點資訊從服務方到客戶端的主要通道。理解它的格式,能在匯入失敗時快速定位問題,也能避免在不同客戶端之間搬移設定時遺失欄位。
訂閱連結與分享連結的差別
分享連結描述單一節點,形如 vless://、vmess://,複製一條就能匯入一個節點。訂閱連結描述一組節點,本身是一個 HTTP 或 HTTPS 位址,客戶端存取後取得一段文字,文字裡的每一行是一條分享連結。訂閱的價值在於更新:節點有增減時服務方改一處,客戶端下次重新整理就同步,不需要逐條重新複製。
文字是怎麼編碼的
訂閱回傳的內容有兩種常見形態:明文的多行分享連結,以及把整段文字做一次 Base64 編碼後的單一字串。客戶端匯入時會先嘗試依明文解析,失敗則依 Base64 解碼再解析。所以手動檢查訂閱內容時,如果看到的是一長串沒有換行的字元,先做一次 Base64 解碼再讀。解碼後的每一行應該以協定名稱開頭。
四種分享連結的欄位形態
| 連結前綴 | 編碼方式 | 關鍵欄位 |
|---|---|---|
vmess:// | Base64 編碼的 JSON | 伺服器位址、連接埠、UUID、alterId、傳輸方式、TLS 開關 |
vless:// | URL 查詢參數 | UUID、加密方式、安全類型、flow、SNI、公鑰、shortId |
trojan:// | URL 查詢參數 | 密碼、SNI、傳輸類型 |
ss:// | Base64 或 SIP002 形態 | 加密方式、密碼、伺服器位址、連接埠 |
可以看出,VMess 與 Shadowsocks 把欄位打包進 Base64 區段,VLESS 與 Trojan 則把欄位攤在 URL 查詢參數裡。REALITY 節點通常以 vless:// 形式出現,額外帶上公鑰與 shortId 兩個參數,少任何一個都無法完成握手。
匯入失敗的常見原因
- Base64 區段在複製過程中被截斷,末尾少了幾個字元,解碼結果不完整。
- 分享連結裡的伺服器位址是網域,而目前環境解析不到該網域,表現為匯入成功但連線失敗。
- REALITY 節點的公鑰或
shortId缺失,匯入後節點存在但握手無法完成。 - 訂閱裡的節點使用了目前客戶端核心不支援的功能,匯入時被略過。
- 訂閱位址需要額外的請求標頭或驗證參數,直接貼到瀏覽器能開啟、在客戶端裡卻拉取失敗。
匯入之後客戶端內部長什麼樣
匯入完成後,節點會被轉譯成核心能讀的 JSON。下面是 VLESS 出站的最小骨架,欄位名稱與真實設定一致,位址與身分已做替換:
{
"outbounds": [
{
"protocol": "vless",
"settings": {
"vnext": [
{
"address": "node.example.com",
"port": 443,
"users": [
{
"id": "00000000-0000-0000-0000-000000000000",
"flow": "xtls-rprx-vision"
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"serverName": "www.example.com",
"publicKey": "example-public-key",
"shortId": "0123456789abcdef"
}
}
}
]
}
對照這份骨架就能理解匯入過程:分享連結裡的每個查詢參數,最終都會落到 settings 或 streamSettings 的某個鍵上。欄位對不上時,問題通常出在連結本身,而不是客戶端。
多個客戶端並存時的同步
同一個訂閱在 v2rayN 與 v2rayNG 上匯入,節點清單理論上應該一致。如果桌面端有某個節點、Android 端沒有,先檢查該節點的協定與傳輸:REALITY 與帶 flow 的 VLESS 節點在只支援基礎協定的核心上會被略過。更新訂閱時,客戶端通常依訂閱分組整批替換,本機對單一節點的改名或排序可能不會保留,重要節點建議另外記下關鍵欄位。多裝置之間搬移設定的幾種做法,可以參考多裝置同步 V2Ray 設定。
傳輸層與路由對選型的影響
同一套協定參數,換一種傳輸方式,表現可能完全不同。傳輸決定資料怎麼被承載,路由決定哪些流量進入代理,兩者共同影響連線成功率與使用體驗。
常見傳輸方式
| 傳輸 | 承載方式 | 特點 | 常見搭配 |
|---|---|---|---|
| TCP | 裸 TCP | 封裝最少,握手最短 | VLESS + REALITY、Trojan |
| WebSocket | HTTP/1.1 升級 | 可自訂路徑與 Host 標頭 | VMess + WS + TLS |
| gRPC | HTTP/2 串流 | 多工,單一連線承載多個請求 | VLESS + gRPC + TLS |
| HTTP/2 | HTTP/2 | 與 gRPC 思路相近 | VMess + h2 |
| QUIC | UDP | 封包遺失重傳策略不同 | 使用較少 |
選傳輸的實用判斷是:能用 TCP 就用 TCP,需要配合前置服務或特定連接埠時再考慮 WebSocket 與 gRPC。WebSocket 的可設定項目最多,路徑與 Host 標頭寫錯是最常見的連線失敗原因之一;gRPC 在鏈路品質波動時靠多工有優勢,但設定裡多一個服務名稱參數,填錯同樣連不上。
TLS 與 SNI 在選型中的位置
TLS 決定流量是否加密,SNI 決定握手時向對端聲明存取哪個網域。對 VLESS 與 Trojan 來說,TLS 不是可選項而是前提;對 VMess 來說,TLS 是可加的一層。REALITY 把 SNI 指向一個真實網站,握手時驗證的是該網站的憑證鏈,因此設定裡的 serverName 必須與目標網站一致,寫錯會導致握手失敗。選擇傳輸時先確認訂閱裡帶的 SNI 欄位,再決定是否需要額外設定。
路由模式三選一
v2rayNG 與 v2rayN 的路由模式通常提供三種:
- 僅代理:依內建規則分流,比對到的流量走代理,其餘直連。日常使用最常用。
- 繞過區域網路:區域網路位址直連,其餘流量走代理。適合需要存取路由器管理頁面、區域網路儲存這類本機裝置的情境。
- 全域:所有流量都進代理。排解問題時用得多,日常使用會增加不必要的流量消耗。
三種模式對應的是核心設定裡 routing 區段的不同規則集。切換模式不會改變節點本身,只改變哪些流量被送進出站。
分應用程式代理與開機自動啟動
Android 端的分應用程式代理依應用程式套件名稱決定是否走代理,適合只讓少數應用程式走代理的使用方式。開啟後需要逐一勾選應用程式,未勾選的應用程式以直連處理。桌面端沒有這項設定,取而代之的是依處理程序或依位址區段的規則。開機自動啟動適合長期在線的裝置;行動裝置上開啟會持續占用一個背景連線,是否啟用取決於使用頻率。
domainStrategy 與 DNS 的關係
路由規則裡的 domainStrategy 決定網域在什麼時候被解析成 IP。常見取值有三種:
| 取值 | 行為 | 適用情況 |
|---|---|---|
AsIs | 直接用網域比對規則,不預先解析 | 規則以網域為主時 |
IPIfNonMatch | 網域規則未命中時,解析成 IP 再比對一次 | 規則裡同時有網域與 IP 區段 |
IPOnDemand | 遇到 IP 規則時立即解析 | 規則以 IP 區段為主時 |
這一項與 DNS 設定互相牽動:如果 DNS 查詢沒有走代理,解析結果可能暴露真實出口。相關現象與檢查方法整理在V2Ray DNS 洩漏檢測與防洩漏設定一文裡。需要讓全部流量都經過虛擬網卡接管時,做法見TUN 模式原理與開啟。
行動裝置電量與流量表現
Android 裝置上,代理客戶端的耗電主要不是來自加解密本身,而是來自連線保持與網路喚醒。理解這一點,就能判斷哪些設定值得調整、哪些調了也看不出差別。
四個影響變數
- 握手頻率:每次建立新連線都要完成一次握手,握手越頻繁,處理器喚醒次數越多。
- 心跳與保活:為了保持長連線,客戶端與伺服器端會定期交換封包,間隔越短越耗電。
- 封裝層數:加解密做幾遍直接影響處理時間,在低功耗核心上更明顯。
- 傳輸方式:WebSocket 與 gRPC 需要維護額外的協定層狀態,分包次數多於裸 TCP。
協定層面的差異
把五個協定放在電量角度下排序,大致是:VLESS 與 Trojan 這類只做一層 TLS 的方案開銷最低;REALITY 配合 XTLS Vision 時,代理資料可以直通,開銷同樣很低;VMess 內建一層加密,若外層再套 TLS,處理層數最多;Shadowsocks 的對稱加密開銷小,但缺少協定層偽裝,是否省電取決於外層怎麼封裝。
這個排序只在低功耗裝置上容易觀察。中高階手機上,幾個協定的耗電差異往往被螢幕、無線電和背景應用程式掩蓋,很難透過電池統計介面分辨出來。
比協定更重要的幾件事
- 減少節點切換:每換一次節點就要重新握手,頻繁切換比協定選擇更耗電。
- 用分應用程式代理縮小範圍:把不需要代理的應用程式排除在外,能直接減少連線數。
- 避免頻繁測速:真連線測試會建立完整連線,批次測試幾十個節點會明顯增加喚醒次數。
- 合理設定保活:長時間不使用時直接中斷,比維持一個閒置連線更省電。
用系統內建的電池用量統計,比較「開啟代理」與「關閉代理」兩種狀態下的前景與背景耗電占比,時間範圍取一整天。單次短時間比較的雜訊太大,結論不可靠。
流量層面的額外開銷
封裝會帶來額外的位元組:每個封包都要帶協定標頭,TLS 記錄層也有自己的標頭。這些開銷在瀏覽網頁時幾乎察覺不到,在大流量下載或長時間播放影片時才會體現出來。傳輸方式越複雜,標頭越多;裸 TCP 加一層 TLS 是標頭最少的組合。如果流量方案有限,優先選擇封裝簡單的傳輸方式。
桌面端為什麼不用考慮這些
桌面環境沒有無線電喚醒問題,處理器通常也還有餘裕,同樣的協定差異在桌面上幾乎無法察覺。因此桌面的選型可以更側重維護成本與設定便利性,不必為了省電做取捨。行動裝置的取捨則更實際:少一層封裝、少一次握手,累積到一整天的使用時間裡就有意義。
依使用情境挑選協定的順序
把前面幾章的結論收攏成一套判斷順序:先確認核心支援,再看鏈路與維護成本,最後依裝置類型微調。下面依常見情境給出建議組合。
三步判斷順序
- 看核心:節點裡是否出現 REALITY 或 flow 參數。出現就用 Xray 核心的客戶端,不出現則兩個核心都能涵蓋。
- 看鏈路與維護成本:是否願意維護網域與憑證。願意維護的話,Trojan 與 VLESS 加 TLS 都是成熟選擇;不願意維護的話,VLESS 加 REALITY 可省去憑證這一環。
- 看裝置:低功耗裝置優先選封裝層數少的方案;桌面端依便利性選擇即可。
情境對照
| 情境 | 建議組合 | 理由 |
|---|---|---|
| 桌面固定網路,自行整理設定 | VLESS + REALITY + TCP | 不需要自有憑證,封裝層數少 |
| 桌面,已有網域與憑證 | Trojan 或 VLESS + TLS | 設定概念少,客戶端相容面廣 |
| Android 行動網路,在意耗電 | VLESS + TLS 或 Trojan | 只做一層加密,握手路徑短 |
| 運算能力有限的舊裝置 | Shadowsocks 或 Trojan | 對稱加密開銷小,實作簡單 |
| 訂閱裡協定混雜 | Android 用 v2rayNG,桌面用 v2rayN | Xray 核心涵蓋全部協定 |
| 需要存取區域網路裝置 | 任意協定加繞過區域網路模式 | 路由模式決定分流,與協定無關 |
幾種不建議的組合
- VLESS 不搭配 TLS 直接使用:協定本身不提供機密性,資料在鏈路上沒有加密保護。
- 在 V2Fly 核心上使用 REALITY 節點:核心不支援該方案,設定無法生效。
- 把 Shadowsocks 當成唯一方案涵蓋所有情境:缺少協定層偽裝,可設定項目少,遇到需要自訂路徑的鏈路時沒有退路。
- 在行動裝置上長期開啟全域模式:所有流量都進代理,連線數與喚醒次數都會上升。
一套可執行的落地流程
- 在客戶端裡匯入訂閱,確認節點數量與預期一致。
- 依協定分組,優先測試封裝層數少的節點。
- 用真連線測試篩掉不通的節點,步驟參考首次連線檢查。
- 選定兩到三個節點作為常用項目,其餘保留備用。
- 依裝置類型調整路由模式與分應用程式代理。
協定之間的橫向比較還可以參考VMess、VLESS、Trojan、SS 橫向比較,那篇依握手開銷、延遲與情境選型三個角度展開,與本頁的對照表互相補充。客戶端的選取與系統需求集中在下載中心,三款客戶端的差異集中在選型指南。
參數速查與除錯索引
這一章是前面內容的索引化收尾:常用欄位的含義、典型現象對應的檢查項目,以及站內相關頁面的入口。
常用欄位速查
| 欄位 | 所在位置 | 含義 |
|---|---|---|
inbounds | 設定最上層 | 本機流量的入口,決定監聽方式 |
outbounds | 設定最上層 | 流量的出口,節點資訊寫在這裡 |
routing | 設定最上層 | 分流規則,決定哪些流量走哪個出口 |
domainStrategy | routing 區段內 | 網域解析時機,取值 AsIs / IPIfNonMatch / IPOnDemand |
streamSettings | 出站或入站內 | 傳輸層設定,包含 network、security 等鍵 |
flow | 使用者欄位內 | 流量控制參數,xtls-rprx-vision 對應 XTLS Vision |
shortId | realitySettings 內 | REALITY 握手時的短標識,需與伺服器端一致 |
現象與檢查項目
| 現象 | 優先檢查 |
|---|---|
| 節點匯入後消失 | 客戶端核心是否支援該協定與傳輸 |
| 節點存在但握手失敗 | REALITY 的公鑰與 shortId 是否填齊 |
| 能連上但存取逾時 | 路由模式與 domainStrategy 設定 |
| 區域網路裝置存取不了 | 是否處於全域模式 |
| 耗電明顯上升 | 分應用程式代理與保活設定 |
| 訂閱重新整理後節點變少 | 訂閱內容是否被截斷,或節點用了新功能 |
相關頁面
- 快速上手:匯入訂閱、選擇模式、連線、驗證的完整主線。
- 下載中心:三款客戶端的平台入口與系統需求。
- 選型指南:v2rayN、v2rayNG、v2flyNG 三款客戶端的橫向比較。
- 常見問題:依基礎認知、安裝設定、使用技巧、疑難排解分類整理。
- 首次連線檢查:節點挑選、真連線測速與代理生效驗證。
- DNS 洩漏檢測:現象、檢測入口與設定項目。
- 多裝置設定同步:三種搬移做法的取捨。
- 四種協定橫向比較:握手開銷、延遲與情境選型。
- TUN 模式:原理與開啟順序。
最後一點說明
本頁的結論都建立在協定與核心的公開設計之上,不涉及具體伺服器端的部署參數。協定選擇沒有唯一正確答案:同一份訂閱在不同鏈路上表現可能不同,同一台伺服器在不同裝置上的耗電表現也不一樣。把本頁當作判斷依據,把實際測試當作最終結論,兩者結合才能選出適合自己的組合。如果本頁沒有涵蓋你的問題,可以在常見問題裡依分類查找,或回到快速上手依主線重走一遍流程。