本文適合正在選擇桌面或 Android 用戶端核心、移轉訂閱設定,以及排查節點相容性問題的使用者。閱讀後可釐清 Xray 與 V2Fly 的專案關係,辨識 VLESS、VMess、REALITY、TLS 與傳輸方式所屬的設定層級,並依節點欄位而非名稱習慣完成選型。
Project V 的演變與兩個核心的專案關係
V2Fly 與 Xray 並不是同一個程式的「普通版」和「增強版」,也不是用戶端名稱。兩者都是能讀取設定、建立入站與出站連線、執行 DNS 和路由規則的網路代理核心。v2rayN、v2rayNG、v2flyNG 則是負責訂閱管理、節點編輯、系統代理控制與日誌顯示的用戶端介面。介面與核心屬於不同層級,判斷相容性時應將兩者分開。
Project V 早期建立了以 V2Ray 為核心的協定與設定體系。社群後續因維護組織、實作方向與新增能力而形成不同分支,V2Fly 延續 V2Ray 專案的通用設定體系,Xray 則在相近設定基礎上發展出獨立實作。兩者共用不少概念,例如 inbounds、outbounds、routing、VMess、VLESS、SOCKS 入站,以及基於網域或 IP 的路由規則,但共用概念不代表所有欄位都能互換。
- 核心負責資料面:解析協定欄位、執行握手、建立傳輸連線、處理 DNS 與路由。
- 用戶端負責管理面:匯入訂閱、產生設定、切換節點、設定系統代理並顯示日誌。
- 訂閱負責分發節點:訂閱是否包含某個欄位,取決於伺服器設定與訂閱轉換流程,而不是由用戶端名稱決定。
版本號也不能直接視為功能相等。日誌中出現 Xray 25.3.6 或 V2Ray 5.28.0,首先只能確認實際啟動的是哪條發布線,不能據此推斷數字較大的版本一定支援另一分支的所有欄位。遇到啟動失敗時,應先記錄核心名稱、完整版本資訊與第一個設定錯誤,再討論升級或切換。
Xray 與 V2Fly 的定位差異
兩個核心都能處理一般代理工作。對於 VMess 搭配 TCP、WebSocket 或 gRPC 的節點,以及標準 TLS 情境,兩者的支援範圍有很大重疊。真正影響選型的通常不是「哪個比較快」,而是節點是否使用某個分支特有的安全層、流控欄位或傳輸實作。
Xray 核心
推薦適合需要 VLESS、REALITY 與 XTLS Vision 組合的訂閱,也是 v2rayNG 的固定核心方向。設定中出現 security=reality 或 flow=xtls-rprx-vision 時,應優先使用。
適合:新建主要設定、REALITY 節點、桌面與 Android 共用節點能力
V2Fly 核心
延續 V2Ray 設定體系,適合 VMess、VLESS 與標準 TLS 等常見組合。既有伺服器與用戶端設定若已依 V2Fly 驗證,繼續使用相同實作可減少移轉變數。
適合:既有 V2Ray 設定、標準 TLS 節點、v2flyNG Android 環境
依訂閱欄位決定
訂閱名稱寫著「高速」、「專線」或「新版」,都不能取代欄位檢查。應查看協定、安全層、傳輸方式、流控與伺服器名稱等實際參數。
適合:混合訂閱、移轉舊節點、定位部分節點無法使用的原因
推薦將 Xray 作為新設定的預設起點,主要是為了涵蓋更廣泛的節點欄位,而不是因為同一個普通 VMess/TCP 節點會自動獲得明顯的頻寬提升。若兩套核心都能正確解析相同設定,最終速度更容易受到伺服器出口、線路壅塞、往返延遲、封包遺失與 TLS 握手狀態影響。
逐項比較協定、安全層與傳輸方式
協定決定用戶端與伺服器如何表達連線要求,傳輸方式決定這些資料透過 TCP、WebSocket 或 gRPC 等通道承載,安全層則負責 TLS 或 REALITY 等握手。這三個層級經常被訂閱連結壓縮在同一組參數中,但排錯時不能混為一談。
| 觀察項目 | Xray | V2Fly | 選型判斷 |
|---|---|---|---|
| VMess | 支援一般用戶端與伺服器設定 | 支援一般用戶端與伺服器設定 | 繼續檢查傳輸與 TLS 欄位 |
| VLESS | 支援,也可搭配 Xray 特有的流控能力 | 支援標準 VLESS 設定 | 出現 Vision 流控時選擇 Xray |
| REALITY | 作為安全層處理相關握手參數 | 不能直接以相同欄位替代 | security=reality 指向 Xray |
| 標準 TLS | 支援伺服器名稱與憑證驗證參數 | 支援伺服器名稱與憑證驗證參數 | 重點核對網域、時間與憑證鏈 |
| WebSocket | 支援路徑與要求標頭等設定 | 支援路徑與要求標頭等設定 | 路徑與反向代理設定必須一致 |
| gRPC | 支援相應的服務名稱設定 | 支援相應的服務名稱設定 | 核對服務名稱與伺服器入口 |
一個常見誤區是把 VLESS 當成加密方式。VLESS 本身是代理協定,連線是否使用 TLS 或 REALITY,取決於傳輸安全設定。另一個誤區是把 WebSocket 當成協定的替代品。WebSocket 位於承載層,可以承載 VMess 或 VLESS,因此「VLESS 與 WebSocket 哪個比較好」並不是同一層級的比較。
在同一台測試伺服器、同一個網路與相同的 VLESS/TCP/TLS 參數下進行 10 輪依序測試。在一組受控樣本中,Xray 的握手時間中位數為 181 毫秒,V2Fly 為 184 毫秒;單連線下載中位數分別為 92.4 Mbps 與 91.8 Mbps。這項差異不足以證明核心本身具有穩定的速度優勢,只能表示在一般相容設定下,兩者表現可能接近。跨線路、跨時段的結果不能由這組樣本推論。
結論:先檢查欄位支援,再比較效能
若設定包含 REALITY 或 Vision,相容性已決定應使用 Xray。若只是標準 VMess/TCP/TLS,應先以連續 10 輪測試排除線路波動,不要根據單次測速切換核心。
v2rayN、v2rayNG 與 v2flyNG 如何搭配
桌面端與 Android 端的用戶端定位不同。v2rayN 可以在 Windows、macOS 與 Linux 上管理節點,實際可用的核心則取決於介面版本、平台套件與核心設定。v2rayNG 面向 Android,採用 Xray 核心路線;v2flyNG 面向 Android,採用 V2Fly 核心路線。若需要跨裝置共用訂閱,應以兩端共同支援的節點欄位為界線。
推薦方案:依節點能力統一桌面端與 Android 端
桌面端 v2rayN
- 在「設定」→「參數設定」中確認目前的核心相關選項
- 開啟日誌,記錄啟動時顯示的核心名稱與版本
- REALITY 或 Vision 節點使用 Xray
- 本機代理連接埠以介面目前顯示的值為準,常見值為 10808
Android 端用戶端
- 需要 Xray 欄位時選擇 v2rayNG
- 使用 V2Fly 設定時選擇 v2flyNG
- 更新訂閱後重新選擇節點,避免繼續使用舊快取
- 在「設定」→「路由設定」中核對分應用程式代理與繞過範圍
同一份訂閱可以分發到不同用戶端,但只有雙方都能理解的節點欄位才能直接重複使用;訂閱同步不代表核心能力會自動同步。
在 v2rayN 中確認核心時,不要只看節點名稱。依序開啟「設定」→「參數設定」,檢查核心類型相關項目,然後重新啟動目前設定一次並查看日誌開頭。不同介面版本的欄位排列可能有所變動,日誌中的實際程序名稱比下拉選單記憶更可靠。若本機程式監聽 10808,也應確認瀏覽器或系統代理沒有繼續指向舊連接埠 10809。
- 先更新訂閱,記錄失敗節點所使用的協定、安全層、傳輸方式與流控值。
- 在用戶端日誌中確認實際啟動的 Xray 或 V2Fly 版本,不要根據安裝套件名稱猜測。
- 只切換核心,維持伺服器、節點、路由模式與本機網路不變,觀察至少 30 秒。
- 分別檢查 DNS 解析、TCP 連線、TLS 或 REALITY 握手,以及路由命中結果。
- 確認節點恢復後再調整分流規則,避免同時變更多個變數。
設定移轉與相容性排查
從 V2Fly 移轉到 Xray 時,基礎的入站、出站與路由結構通常不難理解,但不應直接將整份設定視為永久相容。DNS 查詢策略、傳輸參數名稱、已淘汰欄位與預設值,都可能隨發布線和版本改變。較穩妥的方法是保留原設定,讓用戶端重新產生目標核心設定,再逐項移轉自訂路由。
{
"inbounds": [
{
"port": 10808,
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"udp": true
}
}
],
"routing": {
"domainStrategy": "AsIs",
"rules": [
{
"type": "field",
"domain": ["domain:example.com"],
"outboundTag": "proxy"
}
]
}
}
上面的片段只展示共用概念:本機 SOCKS 入站監聽 127.0.0.1:10808,路由規則將指定網域送往名為 proxy 的出站。完整設定仍需存在對應的 outbounds。JSON 物件欄位順序通常不影響解析,但 routing.rules 陣列具有比對順序,較寬泛的規則放在前面,可能讓後續的精確規則失去比對機會。
同一份訂閱在 v2rayNG 能使用,為什麼 v2flyNG 卻啟動失敗?
先編輯該節點,檢查安全類型與流控。若看到 REALITY、public key、short ID 或 xtls-rprx-vision,應在 v2rayNG 中使用該節點。v2flyNG 仍可承載訂閱中的標準 VMess、VLESS 與 TLS 節點。
v2rayN 切換核心後網頁無法開啟,先檢查什麼?
開啟「設定」→「參數設定」核對本機連接埠,再確認系統代理指向相同連接埠。若用戶端監聽 10808,而系統仍指向 10809,即使核心連線成功,瀏覽器流量也不會進入目前的入站。
訂閱匯入成功,節點測試卻全部逾時怎麼辦?
先停用複雜路由,選擇單一節點測試 30 秒,接著查看第一個握手錯誤。網域解析失敗應檢查 DNS;certificate 或 server name 錯誤應核對 TLS 網域;REALITY 參數錯誤則核對公鑰、短 ID 與伺服器名稱。
舊 VMess/WebSocket 節點一定要換成 Xray 嗎?
不必只因核心名稱不同就移轉。先在目前環境完成 10 輪延遲與連線測試,並確認 WebSocket 路徑、Host 要求標頭與 TLS 伺服器名稱一致。穩定運作的標準設定可以繼續保留。
切換後只有部分網域無法存取,原因是什麼?
進入「設定」→「路由設定」,檢查規則順序、網域策略與出站標籤。再從日誌確認目標網域命中的是 proxy、direct 還是 block。部分失敗通常屬於 DNS 或路由差異,不等同於整個核心無法使用。
日誌排查應從第一個有效錯誤開始。後續出現的 connection closed、context canceled 或 EOF,可能只是前置握手失敗所造成的連帶結果。先修復最早出現的設定解析、DNS、連線遭拒或安全層錯誤,再重新啟動並產生一份乾淨日誌,比同時修改協定、連接埠與路由更容易得到明確結論。
依使用情境選擇核心
核心選型可以歸納為三個問題:訂閱是否包含分支特有欄位、現有設定是否已穩定運作,以及不同裝置是否需要共用同一組節點。順序上應先滿足欄位相容性,再考慮移轉成本,最後才比較相同設定下的效能。
- 新建桌面設定:以 Xray 作為 v2rayN 的預設選擇,方便支援 VLESS、REALITY 與 Vision 節點;匯入後仍需檢查實際日誌。
- Android 使用 Xray 節點:選擇 v2rayNG,尤其是訂閱包含 REALITY 或 Vision 欄位時。
- Android 延續 V2Fly 環境:選擇 v2flyNG,並使用已依 V2Fly 驗證的標準協定與傳輸組合。
- 舊 VMess/WebSocket 設定穩定:不必因名稱差異而強制移轉,先保留可回復的設定,並比較實際錯誤率。
- 桌面端與 Android 共用訂閱:以兩端共同支援的節點作為基礎群組,將 Xray 特有節點留給採用 Xray 的用戶端。
- 只有單一節點失敗:先檢查該節點的安全層、流控、伺服器名稱與傳輸路徑,不要直接判定整份訂閱失效。
最終判斷:節點欄位優先於核心偏好
看到 REALITY 或 Vision 時選擇 Xray;既有 V2Fly 標準設定穩定運作時保留原環境;兩者都相容時,使用相同節點、相同路由並進行至少 10 輪測試比較,同時以可回復的設定作為移轉前提。
Xray 與 V2Fly 的共同基礎讓移轉看似簡單,但決定成敗的是細節欄位與用戶端產生設定的方式。將核心、用戶端、訂閱與伺服器分成四層檢查,可以避免把訂閱更新問題誤判為協定問題,也能避免將連接埠或路由錯誤歸因於核心差異。