Xray-core 與 V2Fly 核心差異比較:協定支援、設定相容性與用戶端選擇

整理 Project V 生態中兩條核心路線的由來,比較 VLESS、REALITY 等協定支援與設定相容性,並說明如何選擇 v2rayNG 或 v2flyNG。

本文重點

核心決定節點參數能否執行,用戶端則負責匯入、編輯與系統整合。需要 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。判斷時應查看展開後的協定與參數,而不是訂閱中的群組名稱。

二、協定支援:分清 VLESS、REALITY 與 Vision

VLESS 是代理協定,REALITY 是安全傳輸機制,xtls-rprx-vision 則是 Xray 使用的流量控制選項。三者並非同一項設定,也不能以其中一個名稱代表完整連線設定。常見組合為 VLESS、TCP、REALITY,再依伺服器要求設定 Vision。

功能或組合Xray-coreV2Fly 的 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 不同設定格式之間的差異,都可能影響解析與執行。

訂閱連結則是另一層格式。用戶端通常會先將分享連結解析為內部節點,再產生對應核心的設定。因此,「成功匯入訂閱」只代表用戶端接受了內容,不代表產生的設定能被核心接受,更不代表遠端交握成功。

  1. 先檢查協定欄位:確認 protocol 是 VMess 還是 VLESS,並確認驗證識別資料與伺服器一致;請勿在截圖或公開記錄中曝光完整憑證。
  2. 再檢查傳輸欄位:核對 streamSettings 中的 network 與 security。TCP 與 WebSocket 不能互相取代,TLS 與 REALITY 也不是同一個選項。
  3. 另外檢查流量控制:伺服器要求 Vision 時,確認產生的設定中 flow 是否為 xtls-rprx-vision;一般 VMess 節點不要加入這個值。
  4. 最後檢查路由:確認每條規則引用的出口標籤確實存在。標籤只是設定內部的參照,不會因為命名為「代理」就自動具備代理功能。

以下是常見路由欄位的局部範例,用來說明參照關係,並非可直接啟動的完整設定。範例假設已存在名為 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、路由模式與本機連接埠,否則即使連線失敗,也很難判斷是哪一層造成問題。

  1. 檢查啟動狀態:開啟用戶端記錄,先排除設定解析錯誤、未知欄位與連接埠占用。此時還不必判斷遠端線路速度。
  2. 確認監聽設定:在 v2rayN「設定」→「參數設定」中確認本機監聽連接埠。以下以已啟用的 SOCKS 監聽 127.0.0.1:10808 為例,此連接埠並非所有安裝環境的固定值。
  3. 明確指定代理:從命令列送出請求,排除瀏覽器是否讀取系統代理這項變數。只有本機確實提供 SOCKS 服務時,以下命令才適用。
  4. 驗證路由:暫時設定測試目標符合代理出口規則,並搭配記錄確認實際使用的出口;請求成功本身不能證明流量沒有被直連規則分流。
  5. 回到應用程式測試:再啟用系統代理或相應的網路接管方式,測試日常使用的應用程式。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 透過適用的流量處理機制減少重複處理,也不能據此推論所有網頁都會明顯加快。

結論:遷移應有明確的觸發條件

只有在缺少必要功能、確認存在相容性問題,或同樣條件下能重現故障時,才將更換核心列為解決方案;若節點本身無法連線,請先處理線路與參數。

七、常見問題:匯入成功、切換失敗與混合訂閱

訂閱可以更新,為什麼 REALITY 節點還是連不上?

更新成功只代表訂閱請求取得了內容。請進入節點編輯介面,依序檢查 VLESS、REALITY、伺服器名稱、金鑰相關參數、shortId 與 flow,再查看啟動記錄,確認實際執行的是支援相應功能的 Xray 核心。

從 v2rayNG 換成 v2flyNG,原有節點都能繼續使用嗎?

不能直接依節點數量判斷。先挑出協定與傳輸方式明確相容的節點進行測試;要求 REALITY 或 Vision 的節點,不應當作一般 VLESS 節點處理。保留原用戶端設定,確認測試通過後再遷移日常使用。

換核心後提示連接埠已被占用,需要把 10808 改成其他數字嗎?

先關閉另一個用戶端或殘留的核心程序,再確認「設定」→「參數設定」中的監聽位址與連接埠。若確實需要更換連接埠,也要同步修改測試命令與使用該連接埠的應用程式設定,不能只改其中一處。

同一份訂閱包含 VMess 和 VLESS,一定要安裝兩款用戶端嗎?

不必只因協定混用就安裝兩款用戶端。先確認單一用戶端與目前核心是否支援訂閱中實際需要的組合;能在同一環境測試的節點可集中管理,只有確實有功能或相容性需求時,才需要保留另一套環境。

選擇順序可歸納為:先確認伺服器需求,再檢查核心功能,最後決定用戶端與系統接管方式。若要繼續檢查訂閱、DNS 或代理生效範圍,可依疑難排解逐層定位;術語說明請參閱術語表。

下載用戶端