本文針對正在選擇 v2rayN、v2rayNG 或 v2flyNG 的使用者,說明 Xray 與 V2Fly 的版本關係、協定重點、設定相容範圍與實際選擇方法。讀完即可依訂閱中的 VMess、VLESS、Reality、WebSocket 等參數判斷核心,並透過可重現的檢查流程完成切換。
先釐清 Xray、V2Fly 與 V2Ray 的版本關係
V2Ray 最初是 Project V 體系中的核心程式,負責讀取 JSON 設定、建立入站與出站連線,並執行 DNS、路由與傳輸層設定。後續由 V2Fly 社群持續維護,因此日常討論中的「V2Fly 核心」通常是指由 V2Fly 維護的 V2Ray Core,而不是與 V2Ray 完全無關的新協定。VMess、SOCKS、HTTP、Shadowsocks、路由規則與多種傳輸方式仍是其主要功能。
Xray-core 於 2020 年底從相同的程式碼脈絡發展而來,早期沿用了大量 V2Ray 設定結構,之後形成獨立版本線。它不是 v2rayN 的替代品:Xray 是處理網路連線的核心,v2rayN 則是管理訂閱、節點、系統代理與核心程序的圖形化用戶端。桌面使用者點擊連線時,實際上是用戶端將節點轉換為設定,再啟動選定的核心。
兩個專案分開維護後,版本號不能直接橫向比較。Xray 的 1.x 與 V2Fly 的 v5 分別代表各自的發行序列,不能據此判斷哪個更新或更成熟。要確認能否連線,應核對目標協定、傳輸方式、安全層與伺服器參數,而不是比較版本號大小。
- Project V 階段:V2Ray Core 奠定入站、出站、路由、DNS 與傳輸層分離的設定結構。
- 社群維護階段:V2Fly 延續 V2Ray Core,並在 v5 系列推進新的設定介面與內部模組。
- 獨立演進階段:Xray-core 保留大量既有設定習慣,同時著重發展 VLESS、Reality 等功能。
- 用戶端整合階段:v2rayN 負責桌面端核心調度,v2rayNG 與 v2flyNG 則分別對應不同的 Android 核心路線。
協定與功能差異決定實際相容性
對一般使用者而言,核心差異首先會反映在節點能否完整識別。VMess 搭配 TCP 或 WebSocket,是兩條版本線長期支援的基本組合,一般訂閱通常都能在兩邊完成轉換。VLESS、Reality、XTLS Vision 等組合則更偏向 Xray 的功能路線;訂閱一旦出現這些欄位,優先使用 Xray 可降低用戶端轉換時遺漏參數的風險。
「都能匯入」不代表「都能連線」。訂閱連結只是向用戶端提供節點資料,用戶端還要將資料映射為核心能接受的設定。某個用戶端可能顯示節點名稱,卻因目前核心不認識安全類型或傳輸欄位而啟動失敗。排查時應同時查看訂閱原始參數、用戶端產生的設定與執行記錄。
Xray 核心
推薦重點支援 VLESS、Reality、XTLS Vision,並相容常見的 VMess、TCP、WebSocket 與 gRPC 設定,適合作為新訂閱的預設核心。
適合:日常主力、VLESS 節點、Reality 設定
V2Fly 核心
延續 V2Ray Core 的模組化設計,適合以 VMess、WebSocket、TCP 與標準路由規則為主的既有環境。
適合:既有 VMess 節點、V2Fly 伺服器、相容性測試
雙核心排查
保留相同的節點參數,只更換執行核心並對照啟動記錄,即可區分協定不支援與網路無法連線兩類問題。
適合:遷移驗證、訂閱欄位異常、問題定位
| 檢查項目 | Xray 側重點 | V2Fly 側重點 | 選擇建議 |
|---|---|---|---|
| VMess + TCP | 一般支援 | 一般支援 | 依目前用戶端與伺服器版本選擇 |
| VMess + WebSocket + TLS | 一般支援 | 一般支援 | 優先核對路徑、主機名稱與 TLS 網域 |
| VLESS + Reality | 重點功能路線 | 不作為通用相容組合處理 | 選擇 Xray,並完整保留公鑰與短識別碼參數 |
| XTLS Vision | 搭配 VLESS 使用 | 不視為同等功能處理 | 用戶端與伺服器皆使用相符的 Xray 版本 |
| 路由分流 | 支援網域、IP、連接埠等規則 | 支援網域、IP、連接埠等規則 | 遷移時檢查規則語法與出站標籤 |
| DNS 設定 | 隨版本持續擴充 | 具備獨立 DNS 模組 | 不要直接複製未確認的複雜範本 |
結論:先依節點欄位選擇核心
訂閱中出現 security=reality、flow=xtls-rprx-vision 或 Reality 公鑰時,直接選擇 Xray;節點僅使用 VMess、WebSocket 與 TLS 時,兩種核心都可測試,優先沿用伺服器明確指定的實作。
設定相似不代表可以整份直接複製
Xray 與 V2Fly 都使用入站、出站與路由的基本概念,常見 JSON 中也能看到 inbounds、outbounds、routing 與 dns。這種相似性有助於理解設定,卻不能保證整份檔案可跨核心通用。不同版本可能對欄位位置、預設值、傳輸名稱與實驗功能有不同要求。
以下是一段用於說明結構的簡化 VMess 出站設定。地址、連接埠、使用者識別碼與傳輸參數必須與伺服器一致;實際由 v2rayN 管理時,通常不需要手寫整份設定,用戶端會根據節點記錄產生執行檔案。
{
"outbounds": [
{
"tag": "proxy",
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": "node.example.net",
"port": 443,
"users": [
{
"id": "11111111-2222-3333-4444-555555555555",
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"wsSettings": {
"path": "/gateway"
}
}
}
]
}
遷移設定時,先保留最小可連線結構:一個本地入站、一個代理出站與一個直連出站。確認連線建立後,再逐步加入 DNS、廣告網域規則、區域網路直連與按應用程式分流。一次複製大量規則,會讓協定錯誤、DNS 錯誤與路由錯誤混在同一份記錄中。
- 協定層:核對 VMess 或 VLESS、使用者識別碼、加密選項與 flow 欄位。
- 傳輸層:核對 TCP、WebSocket 或 gRPC,以及路徑、服務名稱與請求主機。
- 安全層:核對 TLS 或 Reality、伺服器名稱、公鑰、短識別碼與指紋參數。
- 路由層:核對規則順序、目標連接埠、網域比對方式與出站標籤。
- 本地入口:核對 SOCKS、HTTP 或 mixed 入站地址,避免與其他程序佔用同一連接埠。
| 現象 | 較可能的原因 | 檢查位置 |
|---|---|---|
| 核心啟動後立即退出 | 目前版本無法識別欄位或 JSON 結構錯誤 | 執行記錄中的第一個 error 及其欄位路徑 |
| 節點可顯示但無法啟動 | 用戶端匯入了名稱,但核心缺少對應協定能力 | 節點協定、安全類型與目前核心 |
| 已建立連線但網頁逾時 | DNS、路由或系統代理未如預期生效 | 本地入站連接埠、DNS 查詢與出站標籤 |
| 只有部分網域連線失敗 | 網域規則順序或解析結果影響分流 | 路由命中記錄與 DNS 設定 |
v2rayN、v2rayNG 與 v2flyNG 怎麼選
桌面端優先考慮 v2rayN。v2rayN 負責訂閱更新、節點清單、速度測試、系統代理、路由分組與核心生命週期,適用於 Windows,並涵蓋 macOS 與 Linux 的對應桌面版本。它可以搭配 Xray 等核心執行,但用戶端版本、作業系統架構與核心檔案必須相互匹配。新安裝環境以 Xray 作為主力,更容易支援現代 VLESS 設定。
Android 端需要在 v2rayNG 與 v2flyNG 之間選擇。v2rayNG 採用 Xray 路線,適合 VLESS、Reality 以及需要緊跟 Xray 功能的訂閱;v2flyNG 對應 V2Fly 路線,更適合明確使用 V2Fly Core 的環境。兩者都是圖形化用戶端,匯入相同訂閱後顯示的可用節點數量可能不同,通常是因為支援的協定欄位範圍不同。
推薦方案:桌面與 Android 共用訂閱,依協定選擇核心
桌面端 v2rayN
- 以 Xray 作為現代協定主力核心
- 在「設定」→「參數設定」中核對本地連接埠
- 更新訂閱後先進行實際連線延遲測試
- Windows、macOS、Linux 分別使用對應版本
Android 用戶端
- VLESS 與 Reality 優先使用 v2rayNG
- 明確採用 V2Fly 時使用 v2flyNG
- 匯入後檢查節點協定與傳輸欄位
- 依實際應用程式範圍啟用分應用程式代理
訂閱地址可以相同,但核心不支援的節點不會因「成功匯入」而自動取得相容能力。
桌面端的選擇順序
- 開啟訂閱節點詳細資料,確認協定是 VMess 還是 VLESS。
- 查看傳輸方式與安全類型,出現 Reality 或 Vision 時選擇 Xray。
- 進入「設定」→「參數設定」,確認本地監聽地址與連接埠沒有衝突。
- 更新訂閱後選擇單一節點,執行實際連線延遲測試,而不是只查看基礎網路回應。
- 啟用系統代理後,分別測試瀏覽器與不讀取系統代理的終端程式。
Android 端的選擇順序
- 訂閱以 VLESS、Reality 為主時,先用 v2rayNG 匯入並檢查節點詳細資料。
- 伺服器明確採用 V2Fly 且節點以 VMess 為主時,可以使用 v2flyNG,維持相同的實作路線。
- 透過 QR Code 或連結匯入後,應核對地址、連接埠、使用者識別碼、傳輸方式與伺服器名稱。
- 需要分應用程式代理時,先以全域範圍確認節點可連線,再縮小至指定應用程式,避免同時排查節點與應用程式選擇問題。
結論:用戶端名稱不是判斷協定的依據
先查看節點參數,再選擇用戶端與核心。v2rayN、v2rayNG 與 v2flyNG 都是設定入口,真正決定某項協定能否執行的是其呼叫的核心版本與欄位支援情況。
切換核心時依五個步驟完成驗證
切換核心不應只看用戶端狀態列是否顯示「已啟動」。核心程序成功啟動只能表示設定通過基本解析,不能證明遠端交握、DNS、路由與系統代理都已正常運作。更可靠的方法是保留同一個節點,依序驗證啟動、連線、代理入口、網域解析與實際存取。
- 儲存目前節點參數。記錄協定、伺服器地址、連接埠、使用者識別碼、傳輸方式、TLS 伺服器名稱以及 Reality 參數。不要在切換核心的同時修改節點內容。
- 關閉舊核心程序。確認舊程序已釋放本地連接埠。歷史設定常見 SOCKS 連接埠為
10808、HTTP 連接埠為10809;實際數值以「設定」→「參數設定」中的目前設定為準。 - 啟動新核心並查看開頭記錄。先處理 unknown field、failed to load config、address already in use 等啟動錯誤,再測試遠端連線。
- 執行實際連線測試。讓用戶端透過代理入口完成一次目標連線,記錄延遲與失敗原因。基礎網路回應只能表示地址可能可達,不能取代協定交握。
- 驗證流量路徑。先造訪一般網頁,再測試需要代理的目標,最後檢查直連規則是否仍命中預期的出站。
以下資料是一組用於說明判斷方法的同機對照記錄:同一個 VMess + WebSocket + TLS 節點,在固定網路下連續進行 10 次實際連線測試,Xray 中位數為 84 毫秒,V2Fly 中位數為 87 毫秒,差值僅 3 毫秒。這個幅度不足以證明某個核心普遍更快,更值得關注的是是否出現連續逾時、交握失敗或規則未命中。
如果兩個核心都能連線至同一個 VMess 節點,延遲差異通常還會受到線路壅塞、DNS 快取、伺服器負載與測試時間影響。至少連續測試 10 次並比較中位數,才比單次結果更具參考價值。若 Xray 能啟動 Reality 節點而 V2Fly 不能,這屬於功能相容差異,不應與速度測試混為一談。
結論:切換時只變更一個變數
固定節點、網路、路由與 DNS,只替換核心,再比較啟動記錄與 10 次實際連線結果;如果同時更新訂閱或修改規則,就無法判斷問題來自核心還是設定變更。
常見問題與選擇結論
多數使用者不需要長期維護兩套完全獨立的設定。以 Xray 支援新協定,用 V2Fly 驗證既有 VMess 環境,是更清楚的分工。伺服器明確提出核心要求時應優先遵循;只有在未說明且節點參數屬於雙方常見範圍時,才有必要進行雙核心對照。
v2rayN 使用 Xray 後還能匯入 VMess 訂閱嗎?
可以。Xray 支援常見的 VMess 設定,匯入訂閱後仍需核對地址、連接埠、使用者識別碼、傳輸方式與 TLS 參數。舊訂閱若帶有特殊欄位,應以執行記錄為準。
同一個訂閱能同時用於 v2rayNG 和 v2flyNG 嗎?
訂閱地址可以相同,但可用節點集合可能不同。VMess 一般節點通常較容易在兩者使用,包含 Reality、Vision 等 Xray 功能的節點則應由 v2rayNG 處理。
切換核心後系統代理為什麼沒有流量?
先確認新核心監聽的本地連接埠與系統代理填寫的連接埠一致,再檢查連接埠是否被舊程序佔用。瀏覽器可能會讀取系統代理,部分命令列程式則需要個別設定 HTTP 或 SOCKS 代理。
Xray 一定比 V2Fly 快嗎?
不能如此概括。相同 VMess 節點的速度更容易受到線路、伺服器負載與網路品質影響。Xray 的主要選擇優勢是支援 VLESS、Reality、Vision 等功能,而不是讓所有節點都固定提升速度。
V2Fly v5 設定能直接放進所有舊用戶端嗎?
不能預設相容。用戶端可能固定呼叫特定核心版本,也可能只實作部分訂閱欄位。匯入前應確認用戶端內建的核心,再用最小設定測試;出現欄位錯誤時,不要繼續疊加 DNS 與路由規則。
- 訂閱包含 VLESS、Reality 或 XTLS Vision:優先選擇 Xray、v2rayN 或 v2rayNG 的對應方案。
- 環境明確使用 V2Fly Core,節點以 VMess 為主:選擇 V2Fly 或 v2flyNG,維持用戶端與伺服器路線一致。
- VMess + WebSocket + TLS 在兩邊都能執行:固定網路條件,透過記錄與多次實際連線測試判斷穩定性。
- 設定遷移後無法啟動:先刪除擴充規則,回到單一入站、單一代理出站的最小結構。
- 用戶端顯示已連線但無法存取:繼續檢查 DNS、路由、系統代理與應用程式本身的代理設定。