核心決定節點參數能否執行,用戶端則負責匯入、編輯與系統整合。需要 VLESS、REALITY 和 Vision 組合時,優先確認 Xray 是否支援;已有 VMess 節點和 V2Fly 設定時,先測試原設定,不必只因名稱不同就遷移。以下依序從協定、欄位、用戶端到疑難排解,提供可實際採用的選擇方法。
一、Project V、V2Fly 與 Xray-core 的關係
Project V 是以 V2Ray 為核心的一系列網路工具與技術體系。V2Fly 社群持續維護 V2Ray-core;Xray-core 則於 2020 年從相關程式碼基礎分支而出,形成獨立的發展路線。兩者源自共同基礎,但後續新增的傳輸方式、設定欄位與實作細節不保證彼此相容。
「V2Ray 節點」常被用來泛指訂閱服務,不能據此判斷使用哪種核心。實際連線可能採用 VMess 或 VLESS,傳輸方式則可能是 WebSocket 或 TCP。判斷時應查看展開後的協定與參數,而不是訂閱中的群組名稱。
- 用戶端層:管理訂閱、選擇節點,以及設定系統代理或虛擬網路介面。例如桌面版 v2rayN,以及 Android 版 v2rayNG、v2flyNG。
- 核心層:解析設定,執行協定交握、DNS 查詢、路由比對與資料轉送。Xray-core 與 V2Fly 的 V2Ray-core 都屬於這一層。
- 伺服器層:決定接入協定、驗證參數與傳輸條件。更換本機核心不會自動將伺服器端的 VMess 轉成 VLESS。
二、協定支援:分清 VLESS、REALITY 與 Vision
VLESS 是代理協定,REALITY 是安全傳輸機制,xtls-rprx-vision 則是 Xray 使用的流量控制選項。三者並非同一項設定,也不能以其中一個名稱代表完整連線設定。常見組合為 VLESS、TCP、REALITY,再依伺服器要求設定 Vision。
| 功能或組合 | Xray-core | V2Fly 的 V2Ray-core | 檢查重點 |
|---|---|---|---|
| VMess 與常見的 WebSocket/TLS 設定 | 支援相應設定 | 支援相應設定 | 驗證參數、路徑、Host、TLS 名稱 |
| VLESS 基礎協定 | 支援,並持續擴充相關功能 | 不能只憑名稱判定完全不支援;需確認版本與實作範圍 | 完整傳輸組合,而不只是協定名稱 |
| VLESS + REALITY | 屬於主要應用情境 | 不應直接匯入 Xray 的 REALITY 設定使用 | 伺服器名稱、金鑰相關參數、shortId |
| xtls-rprx-vision | 支援相應的流量控制組合 | 不可視為可直接替換的同名功能 | 用戶端與伺服器的 flow 是否一致 |
| 基本 DNS 與規則路由 | 具備 | 具備 | 欄位結構、規則順序、資料檔案格式 |
VMess 也需要確認驗證方式。常見的 AEAD 節點會使用 alterId: 0;舊教學中的非零值不應直接套用。這是協定相容條件,不是可任意調高以提升速度的效能參數。
結論:依完整連線組合選擇核心
節點明確要求 REALITY 或 xtls-rprx-vision 時,請選擇支援相應功能的 Xray 環境;若只需要 VMess、WebSocket、TLS 等功能,先測試現有環境,不必把遷移當成加速手段。
三、設定相容性:同樣是 JSON,不代表可以直接互換
兩條路線都會用到 inbounds、outbounds、routing 等概念,但欄位相似只代表結構源自共同基礎。新增的傳輸方式、安全設定、DNS 行為,以及 V2Fly 不同設定格式之間的差異,都可能影響解析與執行。
訂閱連結則是另一層格式。用戶端通常會先將分享連結解析為內部節點,再產生對應核心的設定。因此,「成功匯入訂閱」只代表用戶端接受了內容,不代表產生的設定能被核心接受,更不代表遠端交握成功。
- 先檢查協定欄位:確認
protocol是 VMess 還是 VLESS,並確認驗證識別資料與伺服器一致;請勿在截圖或公開記錄中曝光完整憑證。 - 再檢查傳輸欄位:核對
streamSettings中的network與security。TCP 與 WebSocket 不能互相取代,TLS 與 REALITY 也不是同一個選項。 - 另外檢查流量控制:伺服器要求 Vision 時,確認產生的設定中
flow是否為xtls-rprx-vision;一般 VMess 節點不要加入這個值。 - 最後檢查路由:確認每條規則引用的出口標籤確實存在。標籤只是設定內部的參照,不會因為命名為「代理」就自動具備代理功能。
以下是常見路由欄位的局部範例,用來說明參照關係,並非可直接啟動的完整設定。範例假設已存在名為 direct 的直連出口,且核心能載入包含 private 標籤的 GeoIP 資料檔。
{
"routing": {
"rules": [
{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "direct"
}
]
}
}
四、用戶端選擇:v2rayN、v2rayNG 與 v2flyNG
桌面端請先確認 v2rayN 目前使用的核心,再評估節點相容性。Android 端則可依專案路線區分:v2rayNG 使用 Xray 核心,v2flyNG 使用 V2Fly 核心。名稱相近不代表協定支援完全相同,也不代表匯入同一份訂閱後,可用節點一定相同。
Xray 路線:v2rayN 對應核心或 v2rayNG
建議節點要求 VLESS、REALITY、Vision 組合時,優先採用此方案,並確認用戶端內建核心支援伺服器使用的具體參數。
適用情境:訂閱明確包含 REALITY 或 Vision 節點,需要相應的協定功能。
V2Fly 路線:v2flyNG 或既有的 V2Fly 環境
若已有驗證過的 VMess 等設定,且依賴 V2Fly 設定體系,可以繼續使用。選擇依據應是現有設定能否穩定執行,而非一概認定舊設定已過時。
適用情境:維護既有 V2Fly 部署,沿用明確相容的節點與路由規則。
在 v2rayN 中可先前往「設定」→「參數設定」,確認本機監聽與相關核心選項;不同版本的選項名稱和位置可能有所變動。若介面中找不到預期的核心選項,請以目前的版本說明與執行記錄為準,勿直接替換程式目錄中的執行檔來猜測相容性。
部署方式:分別驗收桌面端與 Android 端
桌面端:v2rayN
- 記錄啟動記錄中的核心名稱與版本。
- 匯入節點後,檢查協定、傳輸與安全設定。
- 確認本機連接埠,再測試系統代理與規則路由。
Android 端:依核心選擇用戶端
- 有 REALITY/Vision 需求時,優先確認 v2rayNG。
- 既有 V2Fly 設定優先在 v2flyNG 中測試。
- 確認系統 VPN 授權與個別應用程式設定涵蓋目標應用程式。
同一份訂閱可提供給兩端使用,但協定解析結果、路由策略與應用程式接管範圍仍須分別檢查。
五、遷移驗證:先確認核心啟動,再確認流量經過代理
遷移時一次只變更一項變數。先保留原有訂閱與路由設定的備份,再以同一個相容節點測試新核心。不要同時變更節點、DNS、路由模式與本機連接埠,否則即使連線失敗,也很難判斷是哪一層造成問題。
- 檢查啟動狀態:開啟用戶端記錄,先排除設定解析錯誤、未知欄位與連接埠占用。此時還不必判斷遠端線路速度。
- 確認監聽設定:在 v2rayN「設定」→「參數設定」中確認本機監聽連接埠。以下以已啟用的 SOCKS 監聽
127.0.0.1:10808為例,此連接埠並非所有安裝環境的固定值。 - 明確指定代理:從命令列送出請求,排除瀏覽器是否讀取系統代理這項變數。只有本機確實提供 SOCKS 服務時,以下命令才適用。
- 驗證路由:暫時設定測試目標符合代理出口規則,並搭配記錄確認實際使用的出口;請求成功本身不能證明流量沒有被直連規則分流。
- 回到應用程式測試:再啟用系統代理或相應的網路接管方式,測試日常使用的應用程式。Android 端還要確認該應用程式未被個別應用程式規則排除。
curl --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://example.com/
在 Windows 終端機中可使用 curl.exe,避免命令別名造成干擾。此處的 socks5h 表示將目標網域交由代理端處理;但這並不保證最後選中的是遠端代理出口,仍會受到核心路由規則影響。範例中的 10 秒連線逾時與 20 秒總逾時是測試參數,不代表速度承諾。
| 現象 | 優先檢查層級 | 下一步處理方式 |
|---|---|---|
| 核心啟動後立即退出 | 設定解析、檔案路徑、本機監聽 | 查看第一筆錯誤記錄,先不要更換遠端節點 |
| 本機連接埠拒絕連線 | 核心程序、位址與連接埠 | 確認監聽已啟用,且測試連接埠與設定一致 |
| REALITY 交握失敗 | 參數是否相符、系統時間、伺服器是否可連線 | 核對伺服器名稱、金鑰相關參數與 shortId |
| 命令列成功,瀏覽器失敗 | 系統代理、瀏覽器策略、擴充功能設定 | 先確認代理生效範圍,再檢查 DNS 與路由差異 |
六、效能評估:核心名稱不能取代同條件測試
討論 Xray 與 V2Fly 的效能差異,不能忽略協定與線路條件。出口壅塞、往返延遲、封包遺失、伺服器負載,以及裝置是否頻繁休眠,都可能比核心差異更明顯。Vision 透過適用的流量處理機制減少重複處理,也不能據此推論所有網頁都會明顯加快。
- 固定測試條件:使用同一台裝置、同一個網路、同一台伺服器和相同的目標位址,避免一組結果來自 Wi-Fi,另一組則來自行動網路。
- 只比較共同支援的功能:比較兩種核心時,使用兩者都支援的相同協定組合。以 VMess/WebSocket 對比 VLESS/REALITY,測到的是整套方案的差異。
- 拆分指標觀察:分別記錄連線成功率、首次回應時間、持續傳輸狀況與裝置 CPU 使用率,不要以單次延遲取代穩定性評估。
- 重複測試確認:可交替各送出 5 次請求並記錄結果,降低短暫網路波動的影響;這是測試方法,不是本文提供的實測排名。
結論:遷移應有明確的觸發條件
只有在缺少必要功能、確認存在相容性問題,或同樣條件下能重現故障時,才將更換核心列為解決方案;若節點本身無法連線,請先處理線路與參數。
七、常見問題:匯入成功、切換失敗與混合訂閱
訂閱可以更新,為什麼 REALITY 節點還是連不上?
更新成功只代表訂閱請求取得了內容。請進入節點編輯介面,依序檢查 VLESS、REALITY、伺服器名稱、金鑰相關參數、shortId 與 flow,再查看啟動記錄,確認實際執行的是支援相應功能的 Xray 核心。
從 v2rayNG 換成 v2flyNG,原有節點都能繼續使用嗎?
不能直接依節點數量判斷。先挑出協定與傳輸方式明確相容的節點進行測試;要求 REALITY 或 Vision 的節點,不應當作一般 VLESS 節點處理。保留原用戶端設定,確認測試通過後再遷移日常使用。
換核心後提示連接埠已被占用,需要把 10808 改成其他數字嗎?
先關閉另一個用戶端或殘留的核心程序,再確認「設定」→「參數設定」中的監聽位址與連接埠。若確實需要更換連接埠,也要同步修改測試命令與使用該連接埠的應用程式設定,不能只改其中一處。
同一份訂閱包含 VMess 和 VLESS,一定要安裝兩款用戶端嗎?
不必只因協定混用就安裝兩款用戶端。先確認單一用戶端與目前核心是否支援訂閱中實際需要的組合;能在同一環境測試的節點可集中管理,只有確實有功能或相容性需求時,才需要保留另一套環境。
選擇順序可歸納為:先確認伺服器需求,再檢查核心功能,最後決定用戶端與系統接管方式。若要繼續檢查訂閱、DNS 或代理生效範圍,可依疑難排解逐層定位;術語說明請參閱術語表。