2026-06-25 · 開源生態 · 約 12 分鐘

V2Fly、Xray 與各款客戶端是什麼關係:一文看懂 Project V 開源生態

從 Project V 的歷史出發,釐清 V2Fly 與 Xray 兩大核心家族的分工、開源授權與維護現況,並了解 v2rayN、v2rayNG、v2flyNG 分別搭載哪個核心。

本文速覽

V2Fly 與 Xray 是從共同技術基礎發展出的兩大核心家族,v2rayN、v2rayNG 和 v2flyNG 則是負責設定、訂閱與系統代理的客戶端介面。本文適合看過這些名稱卻分不清層級的使用者,讀完即可判斷目前執行的是哪個核心、訂閱是否相容,以及升級時該注意哪一層。

先拆解四個容易混淆的概念

先說結論:Project V 是生態背景,V2Fly 和 Xray 是核心家族,VMess、VLESS 屬於協定或設定能力,v2rayN、v2rayNG、v2flyNG 才是使用者日常操作的客戶端。它們不在同一個層級,不能直接互相比較。

核心負責實際處理資料。它會讀取入站、出站、DNS、路由與傳輸設定,監聽本機連接埠,再依規則決定流量去向。例如客戶端將本機 SOCKS 入口設為 127.0.0.1:10808 後,真正接收連線、比對網域規則並建立遠端連線的是核心,而不是介面上的按鈕。

客戶端介面負責把複雜設定轉成可操作的選單。新增訂閱、選擇節點、切換系統代理、查看日誌、產生核心設定,通常都由客戶端完成。關閉介面後連線是否繼續,則取決於客戶端的執行方式,以及核心程序是否仍在執行。

2015
Project V 的早期起點
2020
兩條核心路線逐步成形
兩大核心家族
V2Fly 與 Xray
10808
常見本機 SOCKS 範例連接埠

名稱所屬層級

結論:先確認層級,再排查問題

匯入失敗時先確認客戶端能否識別訂閱;啟動失敗時再查看核心日誌;網頁分流不正確則檢查路由與 DNS。把三種問題混在一起,最容易反覆重裝卻仍找不到設定錯誤。

Project V 如何分成 V2Fly 與 Xray 兩條路線

Project V 早期以 V2Ray 為核心名稱,重點是將入站、出站、路由、DNS 與底層傳輸拆分成可組合的模組。使用者看到的 inboundsoutboundsrouting.rules 等設定結構,正是這種設計思路的體現。

約在 2020 年前後,原有社群的維護組織與貢獻方式發生變化。V2Fly 社群持續維護 v2ray-core,並朝相容性、模組維護與既有設定演進的方向發展。Xray-core 則在共同技術基礎上獨立發展,形成自己的發布節奏、擴充能力與實作選擇。

「源自共同基礎」不代表「如今完全相同」。兩者仍共用不少概念,例如入站、出站、路由規則、VMess、VLESS、SOCKS 與 HTTP 本機入口,但具體欄位、預設值、傳輸擴充與新功能的支援時間可能不同。複製設定時,核心能啟動不代表每個欄位都會如預期生效。

比較項目 V2Fly 家族 Xray 家族
常見核心名稱 v2ray-core Xray-core
版本辨識 目前常見為 5.x 版本線 目前常見為 1.x 版本線
主要授權條款 MIT MPL-2.0
設定基礎 JSON 設定與模組化入站、出站 JSON 設定與模組化入站、出站
相容性判斷 檢查協定、傳輸、安全參數與版本 檢查協定、傳輸、安全參數與版本
建議做法 沿用已驗證的 V2Fly 設定時,維持相同的核心家族 訂閱明確要求 Xray 能力時,依要求使用

授權條款差異代表什麼

MIT 與 MPL-2.0 都允許公開使用、研究及再發布程式碼,但進行二次開發時,須履行的聲明與原始碼公開義務並不相同。一般使用者安裝客戶端時通常不必據此選擇;開發者將核心嵌入自己的程式、修改原始碼或重新發布時,才需要逐項閱讀專案附帶的授權條款。

客戶端也有自己的授權條款。v2rayN、v2rayNG 與 v2flyNG 目前常見的發布程式碼採用 GPL-3.0,客戶端授權與核心授權需要分開理解。介面採用哪種授權,不會自動將其呼叫的獨立核心改成相同授權。

結論:相容性看設定能力,不看家族名氣

既有節點運作穩定時,不必因另一條路線新增功能就立即切換。只有在訂閱明確要求特定傳輸欄位、目前核心無法識別設定,或日誌指出功能缺失時,切換核心才是有依據的做法。

v2rayN、v2rayNG、v2flyNG 分別搭載哪些核心

v2rayN 是桌面客戶端,支援 Windows、macOS 與 Linux。它不是協定,也不是單一核心的別名。7.x 版本線提供訂閱、路由、系統代理、TUN 與核心管理等介面功能,常見設定以 Xray-core 執行,也能在相應設定中選擇受支援的 V2Fly 核心。

v2rayNG 是 Android 客戶端,主要呼叫 Xray-core。它將分享連結、訂閱群組、路由設定與 VPN 服務入口集中在行動版介面中。v2flyNG 同樣面向 Android,但核心路線對應 V2Fly。兩者介面可能相近,核心來源與功能支援時間卻不因此相同。

訂閱服務提供的是節點資料,不會把特定客戶端一併安裝到裝置上。一個標準的 VMess 或 VLESS 分享連結可能被不同客戶端識別,但涉及特定傳輸擴充時,必須核對核心能力。能顯示節點名稱只代表連結解析成功,不代表連線參數已獲完整支援。

客戶端 平台 主要核心關係 適用情境
v2rayN Windows、macOS、Linux 桌面端可管理受支援的核心,常見使用 Xray-core 桌面訂閱管理、系統代理、路由與 TUN
v2rayNG Android Xray-core 訂閱明確適配 Xray,或需要相應能力
v2flyNG Android v2ray-core 採用 V2Fly 路線並維持核心家族一致

如何確認目前執行的核心

  1. 查看版本

    在 v2rayN 7.x 開啟「說明」→「關於」,先記錄客戶端版本;客戶端版本與核心版本是兩個獨立數字,不要混為一談。

  2. 檢查類型

    進入「設定」→「參數設定」→「Core 類型」,查看目前節點設定所對應的核心選擇。不同小版本的欄位位置可能調整,但名稱通常會包含 Core 或核心。

  3. 讀取日誌

    啟動節點後開啟執行日誌,開頭通常會顯示 Xray 1.xV2Ray 5.x。這比根據客戶端圖示猜測可靠得多。

  4. 核對行動版

    在 v2rayNG 或 v2flyNG 中進入「設定」→「關於」,記錄客戶端版本;接著查看啟動日誌中的核心名稱與版本號。

  5. 測試入口

    確認日誌顯示本機入口已在監聽。常見 SOCKS 範例為 127.0.0.1:10808;若提示連接埠已被占用,應修改連接埠或關閉占用它的舊程序。

如何判斷訂閱、協定與核心的相容性

訂閱通常是一組節點項目。客戶端更新訂閱後,會先解析 VMess、VLESS 等分享內容,再產生核心可讀取的設定。這個流程有兩道門檻:客戶端必須認得訂閱格式,核心則必須支援轉換後的協定與傳輸參數。

以 VLESS 為例,只看到 vless:// 開頭還不夠,還要檢查伺服器位址、連接埠、使用者識別碼、加密欄位、傳輸方式、伺服器名稱與安全層參數。任何關鍵欄位缺失,都可能表現為連線逾時、握手失敗或日誌回報設定錯誤。

VMess 也不是「只要支援 V2Ray 就一定能連線」。系統時間偏差、使用者識別碼錯誤、傳輸路徑不一致、TLS 伺服器名稱錯誤,都可能導致失敗。排查時應從日誌中的第一個錯誤開始,不要同時修改 DNS、路由與協定參數。

routing-example.json
{
  "inbounds": [{
    "listen": "127.0.0.1",
    "port": 10808,
    "protocol": "socks"
  }],
  "routing": {
    "domainStrategy": "AsIs",
    "rules": [{
      "type": "field",
      "ip": ["geoip:private"],
      "outboundTag": "direct"
    }]
  }
}

四步驟相容性檢查

  1. 先看解析:更新訂閱後是否出現節點,節點位址與連接埠是否完整。沒有節點通常是訂閱位址、內容格式或更新流程的問題。
  2. 再看啟動:選擇節點後觀察核心日誌。設定欄位不受支援時,日誌通常會在建立連線前直接回報錯誤。
  3. 接著看握手:若核心正常啟動但連線失敗,請核對協定、安全層、傳輸方式、伺服器名稱與系統時間。
  4. 最後看分流:節點已連線但部分網站異常時,再檢查 DNS、路由規則、系統代理與 TUN,不要回頭反覆更換訂閱格式。

結論:節點出現、核心啟動、連線成功是三種狀態

節點出現在清單中,只代表客戶端完成解析;日誌出現監聽連接埠,只代表核心啟動成功;目標請求獲得正常回應,才代表協定、傳輸、DNS 與路由共同運作正常。

一般使用者該如何選擇與維護

桌面端優先使用 v2rayN,核心選擇則依已驗證的設定與訂閱要求決定。Android 端若訂閱文件明確依 Xray 能力提供參數,使用 v2rayNG;若現有設定基於 V2Fly 且長期穩定,使用 v2flyNG 可減少移轉變因。

升級時先區分客戶端升級與核心升級。客戶端升級可能改變選單、訂閱儲存方式與系統代理行為;核心升級可能改變設定驗證、協定實作與路由能力。一次只升級一個層級,更容易從日誌判斷變化來源。

移轉前應記錄客戶端版本、核心版本、本機監聽連接埠、目前路由模式與 DNS 設定。以桌面端為例,至少記錄 SOCKS 連接埠是否為 10808、系統代理模式是全域還是規則,以及 TUN 是否開啟。只儲存訂閱連結,無法完整還原這些本機選項。

v2rayN 就等於 V2Fly 核心嗎?

不等於。v2rayN 是桌面客戶端,7.x 版本線可以管理核心與設定。進入「設定」→「參數設定」→「Core 類型」,並透過啟動日誌確認目前實際執行的是 Xray-core 還是 v2ray-core。

同一個訂閱可以匯入三款客戶端嗎?

標準 VMess、VLESS 項目通常可以由多款客戶端解析,但特定傳輸欄位未必相容。匯入後先檢查節點數量,再逐一啟動並讀取日誌,不要把「成功顯示」當成「完整支援」。

為什麼更換核心後原設定無法啟動?

先找出日誌中的 unknown field、invalid value 或 unsupported 等錯誤,再檢查傳輸、安全層與路由欄位。恢復原核心即可執行時,表示問題較可能出在設定差異,而不是訂閱帳戶。

連接埠 10808 被占用該怎麼處理?

先退出仍在背景執行的舊客戶端或核心程序;若必須並行執行,請在本機監聽設定中改用未占用的連接埠,並同步修改瀏覽器或系統代理的指向。

需要同時安裝 v2rayNG 和 v2flyNG 嗎?

通常不需要。依訂閱所需的核心選擇其中一款即可。需要進行相容性比對時可以分別測試,但不要讓兩款客戶端同時接管 Android 的網路連線。

歸根究柢,Project V 是一張技術關係圖,不是一套需要單獨安裝的軟體。V2Fly 與 Xray 負責核心實作,三款客戶端則將訂閱、節點、路由與系統網路入口整理成可操作的介面。遇到問題時依序確認客戶端、核心、協定、傳輸、DNS 與路由,排查路徑會比單純更換軟體清楚得多。

下載 V2Ray 客戶端 依系統選擇 v2rayN 或 v2rayNG