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 設定結構。典型設定包含 inbounds、outbounds、routing、dns 與 log 等部分。周邊用戶端只要產生這些欄位並呼叫核心程式,就能提供圖形化操作。
隨著維護組織、開發方向與功能優先順序改變,原有生態逐漸形成不同的持續維護路線。V2Fly 承接並延續 V2Ray 的社群維護;Xray 則在相近設定的基礎上獨立演進。兩者有共同歷史,因此許多基礎概念一致,但不能因此假定所有欄位、協定擴充與傳輸參數都能直接互換。
- 早期階段:V2Ray 核心、VMess 協定與 JSON 設定體系成為生態基礎,用戶端圍繞核心程式提供操作介面。
- 社群延續:V2Fly 持續維護 v2ray-core,並逐步推動模組化結構與 v5 設定相關能力。
- 獨立演進:Xray-core 沿用大量基礎概念,同時擴充 VLESS、傳輸安全與流量控制等實作。
- 用戶端分化:桌面與 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 中確認實際核心
-
開啟參數設定
啟動 v2rayN 後進入「設定」→「參數設定」。不要只看視窗標題,因為用戶端名稱不代表目前的核心程序。
-
查看 Core 類型
繼續進入「Core 類型」,核對 VMess、VLESS 等協定對應的核心選項。不同 7.x 小版本的排列可能有所變化,但判斷依據仍是協定與核心的對應關係。
-
重新啟動核心
儲存後執行「重新啟動服務」或重新連線節點,讓新選擇生效。只修改下拉選項而不重新啟動,舊核心程序可能仍在執行。
-
讀取啟動日誌
開啟日誌視窗,尋找核心名稱、版本與設定載入結果。範例記錄應包含類似「Xray 25.3.6」的完整版本,而不是只記錄用戶端版本。
-
核對本機連接埠
確認 SOCKS 連接埠與 HTTP 連接埠未被其他程式佔用。常見設定會使用 10808 與 10809,但應以「參數設定」中的實際數值為準。
訂閱、設定匯入與路由分流為何會受核心影響
訂閱本身不是核心,通常只是節點資訊的分發方式。用戶端取得訂閱後,需要解析 URI 或結構化內容,再產生核心設定。同一份訂閱在不同用戶端中顯示的節點數量可能不同,原因往往是某個用戶端尚未辨識其中的協定欄位,或訂閱分組的篩選規則隱藏了部分節點。
節點「匯入成功」也不等於「核心可以啟動」。以 VLESS 為例,位址、連接埠、使用者識別碼與傳輸方式只是基礎欄位;如果設定還包含安全層、流量控制、伺服器名稱、指紋或傳輸路徑,缺少任何必要參數都可能導致握手失敗。VMess 設定則需留意使用者識別碼、傳輸方式、TLS 狀態與伺服器時間偏差。
- 訂閱層:負責分發節點,更新頻率可能是 6 小時、12 小時或 24 小時,具體取決於伺服器端策略。
- 用戶端層:解析訂閱、儲存分組、選擇節點,並產生核心設定檔。
- 核心層:驗證欄位、監聽本機連接埠、執行 DNS 與路由規則、建立遠端連線。
- 系統層:應用程式透過系統代理、SOCKS 代理或透明轉送方式,將流量交給本機入站。
路由分流同樣由核心執行,而不是由節點名稱決定。用戶端中的「繞過區域網路」「直連中國大陸位址」「全域代理」等選項,最後會轉換成網域、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 參數。既有設定已穩定運作時,沒有必要只為追求較大的版本號而切換核心。
遷移時應保留的檢查記錄
- 記錄用戶端名稱與版本,例如 v2rayN 7.11.3,而不是只寫「桌面版」。
- 記錄日誌顯示的核心名稱與版本,例如 Xray-core 25.3.6 或相應的 v2fly-core 版本。
- 記錄節點協定、遠端連接埠、傳輸方式、安全層與伺服器名稱。
- 記錄本機 SOCKS、HTTP 連接埠以及系統代理模式。
- 分別驗證訂閱更新、核心啟動、TCP 真實連線延遲與網頁存取,避免將不同階段的問題混為一談。
總結來說,Project V 是理解歷史與生態的入口,V2Fly 與 Xray 是建立在共同基礎上、但獨立維護的兩條核心路線,v2rayN、v2rayNG、v2flyNG 則是面向不同平台的用戶端。選擇時不必爭論哪個名稱更「正統」,只需確認用戶端能否完整解析訂閱、核心能否支援節點欄位,以及路由規則是否依預期執行。