Project V、V2Fly 與 Xray 有何關係:一文釐清開源代理生態

從專案沿革、核心分支與客戶端封裝三個層次理解 Project V、V2Fly 和 Xray,再依節點協定與裝置平台選擇 v2rayN、v2rayNG 或 v2flyNG。

本文速覽

Project V 是早期的專案體系,V2Fly 是延續 V2Ray 核心維護的社群分支,Xray 則是在相容既有設定的基礎上擴充協定與傳輸能力的另一條核心路線。讀完即可分清專案名、核心名與客戶端名,並根據訂閱中的 VMess、VLESS、XTLS Vision、REALITY 等欄位選擇客戶端。

Project V 是專案體系,不等於某個客戶端

Project V 最初用來指稱一組圍繞網路代理能力建立的開源工具與規範,V2Ray Core 則是其中負責處理連線、協定、路由與出站的核心程式。日常交流中,人們常把 Project V、V2Ray 和某個圖形介面客戶端混為一談,但這三個概念所處的層級不同。

核心接收設定後建立入站與出站連線。它會讀取監聽位址、連接埠、使用者識別碼、傳輸方式、TLS 參數及路由規則,再決定流量從哪個出口送出。客戶端則在核心外提供訂閱更新、節點清單、延遲測試、系統代理切換與日誌檢視。客戶端按鈕能否完成某項操作,取決於介面實作;某種協定能否建立連線,主要取決於所呼叫的核心。

2015
V2Ray 專案公開發展的起始年份
2020
V2Fly 與 Xray 的路線逐漸明朗
10808
v2rayN 常見的本機 SOCKS 監聽連接埠
10809
v2rayN 常見的本機 HTTP 監聽連接埠
  1. 專案層:Project V 描述早期的整體生態與發展脈絡,不是安裝後直接點選的應用程式名稱。
  2. 核心層:V2Ray Core、V2Fly Core 與 Xray Core 負責解析設定、處理協定、執行路由及建立連線。
  3. 客戶端層:v2rayN、v2rayNG、v2flyNG 負責將訂閱、節點、日誌與系統代理等操作做成介面。
  4. 服務層:訂閱提供節點參數,客戶端匯入後再交由對應核心執行;訂閱本身不是核心。

V2Fly 與 Xray 為何形成兩條路線

專案進入社群維護階段後,V2Fly 延續了 V2Ray 既有的程式碼體系、設定結構與通用代理能力。對使用 VMess、VLESS、Shadowsocks、SOCKS、HTTP 等常見入站或出站方式的使用者而言,V2Fly 仍是一條持續維護的核心路線。它不是單純替換舊名稱,而是擁有獨立發布節奏與文件體系的社群專案。

Xray 源自 V2Ray 的程式碼基礎,保留大量相近的 JSON 設定結構,同時持續擴充 VLESS、XTLS、Vision、REALITY 等能力。由於歷史程式碼基礎相近,兩者在基礎欄位上通常可以互相理解,但不能因此認為所有協定參數、傳輸選項與路由行為都完全相同。

比較項目 V2Fly Core Xray Core
發展關係 延續 V2Ray 體系的社群維護路線 從 V2Ray 基礎發展出的獨立分支
基礎設定 使用 JSON 描述入站、出站、DNS 與路由 保留相近結構,並加入自身的擴充欄位
常見協定 VMess、VLESS、SOCKS、HTTP 等 VMess、VLESS,並重點支援 XTLS Vision、REALITY 等組合
適合的判斷方式 訂閱明確要求 V2Fly,或現有設定已在該核心穩定運作 節點包含 Xray 擴充欄位,或明確要求 Xray Core
相容性界線 無法直接執行僅由 Xray 實作的專用參數 可讀取許多既有結構,但不保證與 V2Fly 的行為逐項一致

結論:依節點欄位反推核心

訂閱出現 security=realityflow=xtls-rprx-vision、伺服器公鑰或短識別碼時,優先使用 Xray Core;只有 VMess、WebSocket、TLS 等通用欄位時,再依現有客戶端與伺服器說明選擇。

版本號也要放在具體故障情境中判斷。某個節點在新版本可用、舊版本卻顯示「unsupported security」或「unknown field」,通常表示設定包含舊核心尚未實作的欄位。不要只更換客戶端介面,應同時檢查實際啟動日誌中記錄的 Core 名稱與版本。

v2rayN、v2rayNG、v2flyNG 分別呼叫哪個核心

這三款軟體都是客戶端外殼,不是協定本身。v2rayN 面向 Windows 桌面環境,負責訂閱群組、伺服器清單、路由規則、系統代理與核心程序管理;v2rayNG 與 v2flyNG 面向 Android 裝置,兩者最直觀的差異在於預設核心路線不同。

以下版本僅用於說明介面與日誌的檢查方法,不代表版本上限:測試記錄採用 v2rayN 7.12.5、v2rayNG 1.10.16 與 v2flyNG 1.10.13。後續版本可能調整選單文字,但「客戶端管理設定、核心執行連線」的分層關係不會改變。

客戶端 平台定位 核心關係 優先使用情境
v2rayN Windows 桌面客戶端 常用 Xray Core,也可在支援的程式套件中管理 Core 類型 需要訂閱群組、批次測試、系統代理與細緻路由
v2rayNG Android 客戶端 採用 Xray Core 路線 節點包含 VLESS、XTLS Vision 或 REALITY 參數
v2flyNG Android 客戶端 採用 V2Fly Core 路線 訂閱明確相容於 V2Fly,或需要沿用已驗證的 V2Fly 設定

在客戶端中確認目前核心

排查前先建立一份可重現的記錄:寫下客戶端版本、Core 名稱、Core 版本、節點協定、本機連接埠與第一筆錯誤日誌。只記錄「連不上」無法區分訂閱失效、核心不相容、連接埠被佔用、DNS 異常或伺服器拒絕連線。

v2rayN 的選單可以直接檢查 Core 類型;Android 端則應從應用程式資訊與執行日誌確認。切換核心前先停止目前連線,避免舊程序繼續佔用 127.0.0.1:10808,導致新核心啟動時監聽失敗。

  1. 記錄版本

    開啟客戶端的「關於」或版本資訊頁面,記錄客戶端版本;再從執行日誌開頭找到 Xray Core 或 V2Fly Core 的版本行。

  2. 檢查類型

    在 v2rayN 進入「設定」→「參數設定」→「Core 類型」,確認目標節點對應的 Core 已選取。

  3. 核對協定

    編輯節點並檢查位址、遠端連接埠、使用者識別碼、傳輸方式、TLS、SNI 與 Flow。REALITY 節點還要核對公鑰、短識別碼與指紋欄位。

  4. 重新啟動核心

    儲存設定後停止服務,再重新啟動核心。確認日誌沒有 address already in useunknown field 或驗證失敗訊息。

  5. 驗證出口

    開啟系統代理後存取目標網站,再檢查連線日誌是否命中預期的出站標籤。使用路由分流時,也要確認直連與代理規則沒有互相覆蓋。

如果選單中沒有可切換的 Core 類型,不要複製其他平台的核心檔案覆蓋客戶端目錄。v2rayNG 與 v2flyNG 應依各自的核心路線使用;需要切換路線時,先匯出或保留訂閱網址,再安裝對應客戶端並重新匯入。

設定相容不等於協定能力相同

V2Fly Core 與 Xray Core 都使用結構化設定描述連線,因此常見的 inboundsoutboundsroutingdns 等欄位看起來相似。相似結構方便遷移基礎設定,但真正決定相容性的,是每個協定物件內部的欄位語意,以及伺服器實際啟用的傳輸組合。

以 VLESS 為例,只看到協定名稱還不夠。還要繼續檢查傳輸層是 TCP、WebSocket 還是 gRPC,安全層是 TLS 還是 REALITY,Flow 是否為 xtls-rprx-vision。兩個節點都寫著 VLESS,所需的核心能力可能完全不同。

訂閱或日誌線索 應檢查的層級 執行動作
vmess:// VMess 使用者資訊與傳輸方式 核對使用者識別碼、遠端連接埠、Host、Path 與 TLS 設定
vless:// VLESS 加密、安全層與 Flow 繼續檢查是否包含 Vision 或 REALITY 參數
security=reality Xray 擴充能力 使用 Xray Core,並核對公鑰、SNI、短識別碼與指紋
unknown field 設定結構或核心版本 確認匯入目標與 Core 類型,不要直接刪除未知欄位
address already in use 本機監聽連接埠 關閉重複程序,檢查 1080810809 是否被佔用

結論:先判定握手參數,再處理測速

核心不支援節點的安全層時,延遲數字沒有選型價值。先讓日誌完成協定初始化與握手,再比較實際連線延遲、封包遺失與路由結果。

路由規則也存在實作細節差異。基本的網域、IP、連接埠與入站標籤匹配通常容易遷移,但複雜的 DNS 分流、規則集載入方式與特定出站參數,應依目標核心文件重新核對。遷移後至少測試一個代理網域、一個直連網域與一次 DNS 查詢,不能只看客戶端狀態列是否變成「已連線」。

常見混淆與具體處理方法

最常見的錯誤不是記錯某個專案名稱,而是把「客戶端成功匯入」當成「核心完整支援」。訂閱連結負責傳遞參數,客戶端負責解析與顯示,核心負責執行;任何一層遺失欄位,都可能導致最終連線失敗。

訂閱寫著 V2Ray,應該選哪個客戶端?

不要只看訂閱名稱。展開節點詳細資訊,先查看協定與安全層;包含 REALITY 或 xtls-rprx-vision 時,Windows 使用 v2rayN 的 Xray Core,Android 使用 v2rayNG。

VMess 節點一定要使用 V2Fly 嗎?

不一定。V2Fly Core 與 Xray Core 都能處理常見的 VMess 設定。應繼續核對傳輸方式、TLS、Host、Path、使用者識別碼與伺服器要求,再選擇目前平台上維護正常的客戶端。

v2rayNG 可以直接換成 V2Fly Core 嗎?

不要在應用程式目錄中手動替換核心。需要 V2Fly 路線時,請使用 v2flyNG,重新匯入訂閱後檢查節點欄位,並透過執行日誌確認實際啟動的是 V2Fly Core。

切換 Core 後為什麼連接埠會報錯?

先停止舊 Core 與重複執行的客戶端,再檢查本機 1080810809 是否仍被佔用。修改監聽連接埠後,也要同步更新瀏覽器或系統代理設定。

匯入成功但 REALITY 節點連不上?

確認使用 Xray Core,然後逐項核對伺服器位址、連接埠、使用者識別碼、SNI、公鑰、短識別碼、指紋與 xtls-rprx-vision。任何欄位缺失都可能導致握手失敗。

依平台與節點協定完成選擇

選型時不必先研究完整的專案歷史,只要按固定順序判斷:先看裝置平台,再看訂閱協定與擴充欄位,最後確認是否需要桌面端路由、批次測速或 Android 端常駐連線。專案沿革用來解釋差異,節點參數才是實際選擇依據。

  1. Windows 桌面:選擇 v2rayN。匯入訂閱後檢查「設定」→「參數設定」→「Core 類型」,REALITY 與 XTLS Vision 節點使用 Xray Core。
  2. Android 且訂閱以 Xray 能力為主:選擇 v2rayNG,重點核對 VLESS、REALITY、SNI、公鑰、短識別碼與 Flow。
  3. Android 且服務商明確相容於 V2Fly:選擇 v2flyNG,保持節點欄位與伺服器說明一致,不套用 Xray 專用參數。
  4. 只有 VMess 或通用 VLESS:兩條核心路線都可能適用,優先沿用已驗證可連線的組合,再根據日誌決定是否更換。
  5. 設定來自手寫 JSON:遷移前備份原始設定,逐項檢查入站、出站、DNS 與路由欄位,不要把「檔案能載入」當成完成相容。
下載 V2Ray 客戶端依平台選擇安裝套件