Project VV2FlyXray 的關係:開源生態與用戶端核心整理

許多使用者分不清這幾個名稱。本文依時間軸整理 Project V 生態的演變、V2Fly 與 Xray 兩條核心路線的分工差異,以及 v2rayN、v2rayNG、v2flyNG 各自採用的核心。

本文速覽

Project V 可視為圍繞代理協定、核心實作、設定格式與用戶端工具形成的生態;V2Fly 與 Xray 是後來發展出的兩條核心維護路線,而 v2rayN、v2rayNG、v2flyNG 則負責匯入訂閱、選擇節點與控制系統代理的用戶端。讀完後,你可以判斷設定由哪種核心執行,並在更換用戶端前檢查協定、傳輸層、路由與本機連接埠是否相容。

先拆解三個層級:生態、核心與用戶端

理解這些名稱的關鍵,不是記住誰「取代」了誰,而是先把軟體堆疊拆成三個層級。Project V 最適合理解為圍繞代理協定、核心實作、設定格式與用戶端工具形成的生態名稱;V2Fly 與 Xray 主要指持續維護的核心路線;v2rayN、v2rayNG、v2flyNG 則位於使用者直接操作的用戶端層。

核心負責實際的資料處理,包括監聽本機入站、建立遠端出站、執行 DNS 查詢策略、比對路由規則、封裝 VMess 或 VLESS 流量,以及處理 TCP、WebSocket、gRPC 等傳輸設定。用戶端通常不會重新實作這些協定,而是將訂閱內容轉換成核心可讀的設定,再管理核心程序的啟動、停止與切換。

Project V
一個涵蓋協定設計、核心程式、設定體系與周邊工具的歷史及生態總稱。看到這個名稱時,不應直接把它當成某個具體安裝包。
V2Fly
延續 V2Ray 技術路線的社群維護體系,其核心程式通常稱為 v2fly-core 或 v2ray-core。它持續支援 VMess、VLESS、路由、DNS 與多種傳輸組合。
Xray
從既有程式碼基礎發展出的另一條核心路線,設定結構與 V2Ray 體系有許多共通點,同時也擴充自身的協定與傳輸能力。
用戶端
提供圖形介面、訂閱更新、QR Code 匯入、節點清單、系統代理與日誌檢視。用戶端名稱與目前執行中的核心名稱不一定相同。

判斷方法:先問「誰在執行設定」

介面名稱只能說明目前操作的是哪個用戶端;日誌中的核心版本、程序名稱與 Core 類型,才代表 VMess、VLESS 與路由規則最後由哪條核心路線執行。

時間軸:為什麼同一個生態會出現兩條核心路線

Project V 早期以 V2Ray 核心程式為中心,逐步形成較穩定的 JSON 設定結構。典型設定包含 inboundsoutboundsroutingdnslog 等部分。周邊用戶端只要產生這些欄位並呼叫核心程式,就能提供圖形化操作。

隨著維護組織、開發方向與功能優先順序改變,原有生態逐漸形成不同的持續維護路線。V2Fly 承接並延續 V2Ray 的社群維護;Xray 則在相近設定的基礎上獨立演進。兩者有共同歷史,因此許多基礎概念一致,但不能因此假定所有欄位、協定擴充與傳輸參數都能直接互換。

  1. 早期階段:V2Ray 核心、VMess 協定與 JSON 設定體系成為生態基礎,用戶端圍繞核心程式提供操作介面。
  2. 社群延續:V2Fly 持續維護 v2ray-core,並逐步推動模組化結構與 v5 設定相關能力。
  3. 獨立演進:Xray-core 沿用大量基礎概念,同時擴充 VLESS、傳輸安全與流量控制等實作。
  4. 用戶端分化:桌面與 Android 用戶端依目標核心封裝不同元件,訂閱欄位也開始出現路線差異。

這種關係更接近「建立在共同基礎上的並行維護」,而不是單純的新舊版本關係。V2Fly 的 4.x 設定習慣、v5 方向與 Xray-core 1.x 的擴充節奏各自存在;版本號也不能橫向比較。例如 Xray-core 1.8.x 並不代表它比 v2fly-core 5.x 更舊,兩套版本序列沒有大小換算關係。

V2Fly 與 Xray 的共通點與關鍵差異

兩條核心路線都能處理常見代理鏈路:本機應用程式先連線至 SOCKS 或 HTTP 入站連接埠,核心依路由規則選擇代理或直連出站,再根據節點設定建立遠端連線。VMess、VLESS、TCP、WebSocket、gRPC、TLS、DNS 分流與網域規則,是理解兩者時經常遇到的共通術語。

共通術語不代表設定完全相同。訂閱節點能否運作,必須同時檢查協定、傳輸方式、安全層、流量控制欄位與用戶端轉換邏輯。一般 VMess over WebSocket + TLS 設定通常具備較廣的相容性;包含 Xray 特定擴充的 VLESS 節點,則應交由明確支援相關欄位的 Xray-core 處理。

Xray 核心

推薦

適合處理包含 Xray 擴充欄位的 VLESS 設定,也是 v2rayN 與 v2rayNG 常見的主要核心。選擇前仍需確認用戶端版本是否能辨識訂閱中的安全層、流量控制與傳輸參數。

適用:日常主力、VLESS 擴充設定、需要明確支援 Xray 欄位的節點

V2Fly 核心

延續 V2Ray 社群路線,適合標準 VMess、VLESS 與一般路由設定。使用 v2flyNG 時,用戶端與核心歸屬清楚,方便確認設定是否符合 V2Fly 的支援範圍。

適用:標準 V2Ray 設定、V2Fly 路線、已有相容性的訂閱

只看節點名稱

「高速」「專線」「V2Ray 節點」都不是技術欄位,不能據此判斷需要哪種核心。真正有效的資訊是協定、傳輸、安全層、連接埠與擴充參數。

適用:不應作為選擇依據,應返回設定詳細資料核對欄位

效能也不應只根據核心名稱下結論。在同一台電腦、同一個節點與同一路由規則下,一次範例測試得到 TCP 真實連線延遲 86 毫秒、91 毫秒與 88 毫秒,三次波動已達 5 毫秒;尖峰時段的線路壅塞所造成的變化,往往遠大於同類設定在兩種核心之間的差距。比較時至少固定節點、測試時間、DNS 方案與系統代理模式。

結論:相容性優先於版本號大小

訂閱包含 Xray 擴充欄位時,優先使用 Xray-core;設定明確依 V2Fly 產生時,使用 v2fly-core。不要因為某個版本號數值較大,就跨路線替換核心。

v2rayN、v2rayNG、v2flyNG 分別使用哪種核心

v2rayN 是桌面用戶端,主要負責訂閱分組、節點測試、路由模式、系統代理與核心管理。其常見主要核心是 Xray-core,但用戶端版本、已下載的核心元件與使用者選擇都會影響實際結果。因此,「使用 v2rayN」不能單獨證明目前一定執行某個核心,必須到設定與日誌中核對。

v2rayNG 是 Android 用戶端,採用 Xray 核心路線,適合匯入 Xray 支援的 VMess、VLESS 等設定。v2flyNG 同樣運行於 Android,但定位為 V2Fly 核心路線。兩個用戶端的介面與基本操作可能相似,核心歸屬卻不同;遷移節點時不能只比較伺服器位址與連接埠。

用戶端 平台 主要核心歸屬 核對位置
v2rayN Windows、Linux 通常以 Xray-core 為主,也可能由用戶端版本與 Core 類型設定決定 「設定」→「參數設定」→「Core 類型」,並查看啟動日誌
v2rayNG Android Xray-core 從側邊選單進入設定與日誌,查看核心啟動資訊
v2flyNG Android v2fly-core 在設定頁確認版本,再從執行日誌核對核心資訊

在 v2rayN 中確認實際核心

  1. 開啟參數設定

    啟動 v2rayN 後進入「設定」→「參數設定」。不要只看視窗標題,因為用戶端名稱不代表目前的核心程序。

  2. 查看 Core 類型

    繼續進入「Core 類型」,核對 VMess、VLESS 等協定對應的核心選項。不同 7.x 小版本的排列可能有所變化,但判斷依據仍是協定與核心的對應關係。

  3. 重新啟動核心

    儲存後執行「重新啟動服務」或重新連線節點,讓新選擇生效。只修改下拉選項而不重新啟動,舊核心程序可能仍在執行。

  4. 讀取啟動日誌

    開啟日誌視窗,尋找核心名稱、版本與設定載入結果。範例記錄應包含類似「Xray 25.3.6」的完整版本,而不是只記錄用戶端版本。

  5. 核對本機連接埠

    確認 SOCKS 連接埠與 HTTP 連接埠未被其他程式佔用。常見設定會使用 10808 與 10809,但應以「參數設定」中的實際數值為準。

訂閱、設定匯入與路由分流為何會受核心影響

訂閱本身不是核心,通常只是節點資訊的分發方式。用戶端取得訂閱後,需要解析 URI 或結構化內容,再產生核心設定。同一份訂閱在不同用戶端中顯示的節點數量可能不同,原因往往是某個用戶端尚未辨識其中的協定欄位,或訂閱分組的篩選規則隱藏了部分節點。

節點「匯入成功」也不等於「核心可以啟動」。以 VLESS 為例,位址、連接埠、使用者識別碼與傳輸方式只是基礎欄位;如果設定還包含安全層、流量控制、伺服器名稱、指紋或傳輸路徑,缺少任何必要參數都可能導致握手失敗。VMess 設定則需留意使用者識別碼、傳輸方式、TLS 狀態與伺服器時間偏差。

路由分流同樣由核心執行,而不是由節點名稱決定。用戶端中的「繞過區域網路」「直連中國大陸位址」「全域代理」等選項,最後會轉換成網域、IP、連接埠或協定比對規則。若從 Xray 路線切換到 V2Fly 路線,應檢查規則集格式與擴充欄位,不能只複製用戶端資料庫後假定行為完全一致。

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

上面的片段只展示層級關係:本機 SOCKS 入站監聽 127.0.0.1:10808,私有位址交給直連出站。實際設定還需要完整的出站、DNS 與日誌部分。若將監聽位址改為 0.0.0.0,可能允許同一區域網路的裝置連線,必須同時確認用戶端的區域網路連線開關、作業系統防火牆與存取控制。

常見誤解與遷移排查

最常見的誤解,是把所有相關軟體都稱為「V2Ray」。這種說法在日常交流中容易理解,但排查問題時資訊不足。準確描述應包含用戶端、核心、協定、傳輸與錯誤階段,例如「v2rayNG 匯入 VLESS 節點成功,但 Xray-core 啟動後提示傳輸欄位無效」。

第二個誤解,是認為同一份訂閱在三款用戶端中的結果必須完全一致。實際上,訂閱解析器、欄位對應與預設路由都屬於用戶端實作;核心只處理用戶端最後產生的設定。出現節點遺失時,應先更新訂閱並取消分組篩選,再確認目前用戶端版本是否認得該協定。

v2rayN 就一定執行 V2Fly 核心嗎?

不一定。進入「設定」→「參數設定」→「Core 類型」,核對協定對應項目,然後重新啟動服務並查看日誌中的核心名稱與完整版本。

v2rayNG 和 v2flyNG 可以直接互相覆蓋設定嗎?

先逐項核對協定、傳輸、安全層、流量控制與路由規則。標準 VMess 設定通常較容易遷移,包含特定擴充欄位的 VLESS 設定,則應依目標核心重新匯入並測試。

訂閱有節點,為什麼啟動後立即停止?

開啟核心日誌,先尋找設定解析錯誤,再檢查 10808、10809 等本機連接埠是否被佔用。若日誌指出未知欄位,應改用與該設定相符的核心路線。

更換核心後延遲突然變高怎麼辦?

固定同一個節點連續測試三次真實連線延遲,並確認 DNS、路由模式與系統代理沒有同時變更。若結果為 82、137、89 毫秒,應繼續檢查網路波動,而不是用單次 137 毫秒判定核心效能。

VMess 節點需要固定選擇某條路線嗎?

標準 VMess 設定在兩條路線中通常都有良好相容性,但仍需檢查傳輸與 TLS 參數。既有設定已穩定運作時,沒有必要只為追求較大的版本號而切換核心。

遷移時應保留的檢查記錄

  1. 記錄用戶端名稱與版本,例如 v2rayN 7.11.3,而不是只寫「桌面版」。
  2. 記錄日誌顯示的核心名稱與版本,例如 Xray-core 25.3.6 或相應的 v2fly-core 版本。
  3. 記錄節點協定、遠端連接埠、傳輸方式、安全層與伺服器名稱。
  4. 記錄本機 SOCKS、HTTP 連接埠以及系統代理模式。
  5. 分別驗證訂閱更新、核心啟動、TCP 真實連線延遲與網頁存取,避免將不同階段的問題混為一談。

總結來說,Project V 是理解歷史與生態的入口,V2Fly 與 Xray 是建立在共同基礎上、但獨立維護的兩條核心路線,v2rayN、v2rayNG、v2flyNG 則是面向不同平台的用戶端。選擇時不必爭論哪個名稱更「正統」,只需確認用戶端能否完整解析訂閱、核心能否支援節點欄位,以及路由規則是否依預期執行。

下載 V2Ray 用戶端