Xray 與 V2Fly 源自相近的程式碼基礎,但如今已形成獨立維護、獨立發布與各自演進的兩條核心路線。本文適合正在選擇用戶端、確認訂閱相容性或排查啟動錯誤的使用者;讀完後可依節點協定、用戶端類型與日誌資訊判斷應使用哪個核心,而不是只看名稱。
先釐清用戶端、核心與訂閱的關係
v2rayN、v2rayNG 與 v2flyNG 是提供圖形介面的用戶端,負責儲存節點、更新訂閱、切換系統代理、產生執行設定並顯示日誌。Xray 與 V2Fly 則是實際處理連線的核心:監聽本機連接埠、執行路由規則、完成協定握手,再將流量傳送至遠端伺服器。介面能正常開啟,不代表核心已成功啟動。
訂閱位於兩者之間。訂閱服務回傳節點清單,用戶端會將連結中的協定、位址、連接埠、傳輸層與 TLS 參數轉換為核心設定。同一份訂閱匯入不同用戶端後,最後產生的 JSON 可能不相同,因為用戶端會補上本機入站、DNS、日誌與路由設定。
因此,「V2Ray 節點」通常只是生態圈中的泛稱,不能直接推斷底層一定執行 V2Fly。包含 VLESS、REALITY、XTLS Vision 參數的節點通常偏向 Xray;傳統 VMess、WebSocket、TLS 組合一般能在兩條核心路線中找到較成熟的實作,但仍須核對欄位與版本。
判斷順序:先看節點參數,再看用戶端名稱
節點出現 REALITY、shortId、spiderX 或 XTLS Vision 流控參數時,優先使用 Xray;只有 VMess、WebSocket、TLS 等一般欄位時,再依現有用戶端與設定相容性選擇。
V2Fly 與 Xray 的版本關係
兩者都與早期 Project V 生態有關,但如今不應將 Xray 理解為 V2Fly 的「進階模式」,也不應把 V2Fly 當成 Xray 的舊版本。兩者各自擁有發布節奏、功能取捨與問題修復路線。設定格式仍有許多相似之處,是因為雙方承襲了相近的入站、出站、路由與傳輸層模型。
V2Fly 延續 V2Ray 的社群維護路線,重點之一是維持傳統設定模型的連續性,並推進 v5 設定體系。常見設定仍由 inbounds、outbounds、routing、dns 與 log 等部分組成。現有 VMess 部署、標準傳輸層組合,以及依賴 V2Fly 行為的環境,通常會優先考慮這條路線。
Xray 從相近的程式碼基礎獨立發展,版本號採用 1.x 系列,重點功能包括 VLESS、REALITY 與 XTLS Vision 等。它與 V2Fly 的部分 JSON 欄位看似相同,但不代表所有新增欄位都能互換。將 Xray 設定直接交給 V2Fly,常見結果是出現未知欄位、缺少協定實作,或無法辨識流控值。
Xray 核心
推薦涵蓋 VLESS、REALITY、XTLS Vision 等常見的新式設定,適合以目前訂閱節點為主的日常使用。
適合:新建設定、主要連線、需要 REALITY 的節點
V2Fly 核心
延續 V2Ray 社群路線,適合已有 VMess 設定、v4 JSON 設定,或明確要求 V2Fly 的部署環境。
適合:既有設定、傳統協定組合、V2Fly 伺服器端
保留雙核心環境
在桌面端分別儲存可用設定,透過日誌與實際連線結果驗證,不要將不同核心的專用欄位混入同一份檔案。
適合:維護多批節點、遷移舊設定、相容性測試
版本號不能交叉比較
Xray 1.x 與 V2Fly v5 的數字不屬於同一發布序列,不能依數字大小判斷新舊。有效標準是目標協定是否已實作、設定欄位是否能被辨識,以及用戶端打包的核心版本是否符合節點要求。
協定支援與設定欄位有什麼差異
VMess 是兩條路線都可能遇到的傳統協定,但實際傳輸層、加密選項與相容行為仍會受版本影響。對於既有的 VMess + TCP 或 VMess + WebSocket + TLS 節點,遷移時應先保留原始位址、連接埠、UUID、Host、路徑與 TLS 網域,不要同時修改多個參數。
VLESS 本身將驗證與加密傳輸層分開設定。在實際用戶端環境中,VLESS 經常與 Xray 的 REALITY 或 XTLS Vision 一起出現。這類節點除了伺服器位址與 UUID,還可能要求 serverName、publicKey、shortId、spiderX、指紋以及 xtls-rprx-vision 流控值。缺少任何一項必填內容,都可能表現為握手失敗,或建立連線後沒有有效流量。
路由結構也容易造成「看起來一樣」的誤判。兩條核心都能依網域、IP、連接埠與入站標籤執行規則,但規則資料檔、欄位擴充與 DNS 行為可能隨版本變化。遷移 routing.rules 時,應逐項檢查 domain、ip、port、network 與 outboundTag,並確認引用的標籤確實存在。
| 檢查項目 | Xray | V2Fly | 選擇建議 |
|---|---|---|---|
| VMess 一般設定 | 支援,但需核對傳輸欄位 | 支援,傳統部署常見 | 維持伺服器端參數一致,優先沿用已驗證的核心 |
| VLESS 基本連線 | 常見使用情境 | 不能只靠名稱推斷所有擴充功能的相容性 | 訂閱含有 Xray 專用參數時選擇 Xray |
| REALITY | 原生功能路線 | 不要直接套用 Xray 設定 | 使用 Xray,並完整填寫公鑰與短標識 |
| XTLS Vision | 使用相應的流控欄位 | 不要依 Xray 流控設定處理 | 用戶端與伺服器端都要核對流控值 |
| v5 設定體系 | 不等同於 V2Fly v5 | 屬於 V2Fly 的演進方向 | 依 V2Fly 文件產生,不要機械式替換欄位 |
v2rayN、v2rayNG 與 v2flyNG 怎麼選
Windows 桌面端通常優先使用 v2rayN,並讓用戶端管理 Xray 核心。它適合匯入訂閱、批次測試節點、設定系統代理、路由分流與檢查日誌。節點包含 REALITY 或 XTLS Vision 時,這種組合能減少設定轉換造成的不確定性。
在 v2rayN 中排查核心選擇時,可先開啟「設定」→「參數設定」,查看與核心、基本設定或啟動參數相關的項目;不同版本的標籤可能略有差異。接著回到主視窗重新啟動服務,並立即查看日誌。若日誌第一頁顯示 Xray 版本資訊,表示目前執行的是 Xray,而不是只根據程式目錄中的檔名猜測。
Android 端需要在 v2rayNG 與 v2flyNG 之間依核心路線選擇。v2rayNG 搭配 Xray 核心,適合包含 VLESS、REALITY 或 XTLS Vision 的訂閱;v2flyNG 搭配 V2Fly 核心,適合明確依賴 V2Fly 行為的節點與設定。兩者的介面操作相近,不代表底層協定擴充功能完全一致。
推薦方案:依節點協定統一桌面端與 Android 端的核心
目前主流訂閱
- 桌面端使用 v2rayN 與 Xray
- Android 端使用 v2rayNG
- 完整保留 REALITY 與 Vision 參數
- 兩端分別更新訂閱後核對節點數量
既有 V2Fly 環境
- 桌面端先確認 v2rayN 是否提供所需的核心入口
- Android 端使用 v2flyNG
- 保留原有 VMess 與路由欄位
- 遷移前匯出一份可正常運作的設定
同一份訂閱可以由不同用戶端讀取,但只有在目標核心完整辨識所有欄位時,節點才算真正相容。
本機連接埠也要一併核對
- v2rayN 常見的本機 SOCKS 監聽連接埠為
10808,HTTP 連接埠可能使用相鄰的連接埠;最終數值以「設定」→「參數設定」中的本機監聽設定為準。 - 瀏覽器或其他程式手動設定代理時,代理類型必須與監聽類型一致。將 HTTP 請求送到 SOCKS 連接埠,會表現為連線遭拒或頁面持續等待。
- 更換核心後若連接埠尚未釋放,日誌可能出現
address already in use。先退出仍在執行的舊程序,再重新啟動用戶端。 - 啟用系統代理後仍無法存取時,先測試單一節點延遲,再檢查路由規則是否將目標網域送往
direct出站。
透過日誌確認目前執行的核心
用戶端標題、訂閱名稱與節點備註都不能證明實際使用的核心。最可靠的入口是啟動日誌。停止服務後重新啟動一次,從第一行往下查看版本標識、設定載入路徑、監聽位址與錯誤資訊。不要只擷取最後一行「啟動失敗」,因為真正原因往往出現在前面。
正常啟動通常會經過產生設定、解析設定、監聽入站連接埠與執行服務幾個階段。若在解析階段停止,重點檢查 JSON 語法與欄位;若已監聽 127.0.0.1:10808,之後連線遠端失敗,則應轉向檢查位址、連接埠、TLS、SNI、REALITY 公鑰與路由規則。
啟動檢查順序
1. 讀取核心名稱與版本行
2. 確認設定檔已成功載入
3. 確認 127.0.0.1:10808 開始監聽
4. 發起一次節點測試或網頁請求
5. 從第一個 warning / error 往上回看上下文
- 出現 unknown field:目前核心不認得設定欄位。先確認該欄位屬於哪條核心路線,再檢查用戶端是否產生了不相容的擴充參數。
- 出現 failed to listen:本機連接埠已被佔用或監聽位址無效。關閉重複執行的用戶端,或將 SOCKS 連接埠從
10808調整至未被佔用的連接埠。 - 出現 invalid user:檢查 UUID、使用者標識與協定類型。VMess 與 VLESS 的連結不能只修改協定名稱後繼續使用。
- 出現 handshake failed:核對系統時間、伺服器名稱、TLS 參數、REALITY 公鑰、短標識與用戶端指紋,不要先修改路由規則。
- 啟動成功但沒有流量:檢查系統代理、DNS 與出站標籤。路由規則引用不存在的
outboundTag時,可能導致特定請求無法依預期傳送。
常見選擇問題與操作解答
核心選擇並非一次決定。訂閱提供者調整節點協定、用戶端升級核心或伺服器端遷移設定後,都可能需要重新確認相容性。保留一個已驗證的節點,並記錄其使用的協定與傳輸參數,可以大幅縮短後續排查時間。
同一份訂閱可以同時匯入 v2rayNG 和 v2flyNG 嗎?
可以分別匯入,但要逐一檢查節點參數。先在訂閱詳情中確認是否包含 REALITY、Vision 等 Xray 路線欄位;若包含,優先在 v2rayNG 中測試。不要因為兩邊都顯示相同的節點名稱,就認定連線能力一致。
v2rayN 更新後節點突然無法啟動,該怎麼辦?
先停止服務,再開啟日誌確認核心版本行與第一個錯誤。進入「設定」→「參數設定」核對本機連接埠與核心相關選項,然後只測試一個節點。若提示未知欄位,重新更新訂閱,避免繼續使用舊版本產生的暫存設定。
VMess 節點應該固定使用 V2Fly 嗎?
不必。Xray 也能處理常見的 VMess 設定。更實際的做法是沿用目前穩定的組合,並核對位址、連接埠、UUID、傳輸方式、Host、路徑與 TLS 網域。只有遇到明確的相容性差異時,再更換核心。
節點顯示 REALITY,為什麼匯入後仍然失敗?
開啟節點編輯頁面,逐項檢查 serverName、publicKey、shortId、spiderX、指紋與 Vision 流控。接著確認用戶端執行的是支援這些欄位的 Xray 版本,並從日誌中的第一個握手錯誤開始排查。
可以把 Xray 的 config.json 直接複製給 V2Fly 嗎?
不建議直接複製。先拆分入站、出站、DNS 與路由區段,刪除目標核心不支援的專用欄位,再使用目標核心的設定測試功能檢查。每次只遷移一個出站,成功後再加入路由規則。
核心選型結論
針對目前常見的訂閱,v2rayN 搭配 Xray、v2rayNG 搭配 Xray 是較直接的起點,尤其適用於 VLESS、REALITY 與 XTLS Vision 節點。若是明確採用 V2Fly 的伺服器端、既有 VMess 設定或 v5 設定體系,則應保留 V2Fly 路線,並使用 v2flyNG 完成 Android 端連線。
真正需要避免的是「名稱相容等於設定相容」。兩條核心共享部分歷史與結構,但專用協定、擴充欄位、版本序列與執行行為已經分開。每次選擇都應落實到三個可驗證的對象:節點參數是否完整、用戶端實際啟動了哪個核心,以及日誌是否完成設定載入與連接埠監聽。
最終建議:新設定選功能相符,舊設定選已驗證的行為
新建 VLESS、REALITY 或 Vision 設定時優先選用 Xray;維護既有 V2Fly 設定時,不要為了追求版本數字而強行遷移。先用單一節點完成啟動、握手與路由測試,再批次匯入訂閱。
下載 v2rayN