Xray 核心與 V2Fly 核心差異:XTLS Vision、REALITY 與設定相容性

了解 Xray 與 V2Fly 核心分支的由來、XTLS Vision 和 REALITY 等功能差異,以及兩者設定檔互通時的注意事項。

本文重點

選擇核心時,應先確認伺服器端的要求,而非只看用戶端名稱。本文適合準備匯入節點、切換核心或移轉 JSON 設定的使用者:先分清用戶端與核心,再核對協定、傳輸方式及安全層,最後透過設定檢查與連線記錄找出問題。節點標示 REALITY 或 xtls-rprx-vision 時,應使用支援相應功能的 Xray 執行環境;一般節點則仍須核對具體欄位與版本。

用戶端與核心:先分清各自負責的工作

v2rayN、v2rayNG、v2flyNG 是供使用者操作的用戶端。伺服器清單、訂閱匯入、系統代理開關與介面設定都屬於用戶端層;解析設定、建立連線、執行路由規則及轉送流量,則主要由核心負責。用戶端顯示某項選項,不代表目前執行的核心一定支援該功能。

訂閱或節點 用戶端解析 產生執行設定 核心載入 連線至伺服器

在 Android 上,v2rayNG 使用 Xray 核心,v2flyNG 使用 V2Fly 核心。桌面版 v2rayN 則須依版本、節點類型及實際執行記錄確認使用的核心,不能只憑桌面捷徑判斷。排查問題時,應分別記錄用戶端版本與核心版本,兩者的版本號並不相同。

Xray 與 V2Fly:源自同一脈絡,不代表設定始終相容

V2Fly 是延續 V2Ray 發展的社群專案,其核心程式通常稱為 V2Ray Core。Xray 於 2020 年從 V2Ray 的程式碼基礎分支而出,之後沿著自己的方向持續演進。兩者保留了不少相似概念,例如入站、出站、路由與 DNS,但具體功能及設定結構已存在差異。

因此,「都能處理代理流量」和「可以直接替換執行檔」是兩回事。移轉時,協定名稱相同只能表示第一層可能相對應,不能證明傳輸參數、安全層、路由規則與 DNS 設定也完全一致。

比較項目XrayV2Fly實際影響
專案關係從 V2Ray 分支發展而來延續 V2Ray 的社群專案基礎概念相近,不能因此假設所有欄位都通用
VMess 等基礎協定有對應實作有對應實作仍須核對傳輸方式、安全層與使用版本
XTLS Vision支援相應的流控方案不能視為同等替代品來執行使用 Vision 的節點應搭配相容的 Xray
REALITY支援相應的安全層無法直接執行 Xray 的 REALITY 設定不能只改寫名稱來移轉
設定演進依照 Xray 的欄位與版本要求檢查須區分 V4、V5 等設定體系移轉前先確認設定格式與載入方式

判斷方式:先列出節點相依功能,再決定是否切換核心

若現有節點依賴 REALITY 或 Vision,請先保留 Xray;只有伺服器端另外提供目標核心支援的連線方案時,才測試移轉,不要直接刪除「不認得」的欄位。

XTLS Vision 與 REALITY:一個是流控,一個是安全層

在常見的 VLESS 設定中,XTLS Vision 會以 flow: xtls-rprx-vision 表示。它會針對符合條件的流量採用相應的處理方式,不是獨立的訂閱格式,也不是能隨意套用到任意傳輸組合的加速開關。若伺服器端未設定相應的流控,單靠用戶端填入 Vision 並無法完成相容設定。

REALITY 位於安全層,涉及伺服器身分驗證與相關握手參數。用戶端通常需要核對伺服器名稱、公鑰、Short ID 等資訊;介面可能將公鑰資料標示為 Public key,或因版本不同而使用其他名稱,不能只因標籤不同就互換參數。伺服器私鑰不應填入用戶端的公鑰欄位。

VLESS + Vision + REALITY

協定
VLESS
傳輸方式
TCP,部分版本稱為 RAW
Flow
xtls-rprx-vision
安全層
REALITY
核對重點
伺服器名稱、公鑰、Short ID

這是常見組合的欄位對應關係,並非完整的可連線設定;每個欄位都必須與伺服器端相符。

VMess + WebSocket + TLS

協定
VMess
傳輸方式
WebSocket
路徑範例
/ws
安全層
TLS
核對重點
UUID、Host、路徑、伺服器名稱

路徑僅供示範,不能取代訂閱中的實際值;一般 TLS 與 REALITY 的參數不可互換。

設定相容性:分四層檢查,不要全面取代欄位

分享連結、訂閱文字、用戶端儲存的資料,以及核心讀取的 JSON,分屬不同層次。vless:// 連結可以成功匯入,只表示用戶端解析成功;還要確認產生的執行設定是否保留流控、安全層與傳輸參數。反過來說,完整的 JSON 也不一定能以一般節點連結的方式匯入。

  1. 檢查協定層:確認使用 VMess 或 VLESS,以及使用者識別與驗證參數。舊版 VMess 設定可能包含歷史相容參數;移轉時應依據伺服器資訊與目前的實作確認,不要照抄舊教學中的固定值。
  2. 檢查傳輸層:核對 TCP/RAW、WebSocket 等類型,以及路徑、Host 等欄位。有些版本在名稱與設定表示方式上已有演進,不能只比較介面文字。
  3. 檢查安全層:確認使用 TLS、REALITY,或未啟用該層;核對伺服器名稱、憑證驗證、金鑰資料與指紋要求。略過憑證驗證並非通用的修復方式。
  4. 檢查執行環境:比較入站監聽位址、連接埠、路由標籤、DNS 與檔案路徑。即使協定握手參數正確,也可能因出站標籤參照失效,無法依預期分流。

V2Fly 的 V4 與 V5 設定體系也須分開看待。副檔名同為 .json,不代表欄位結構相同。移轉完整設定時,應依照目標核心的文件重新核對結構;一般使用者較適合匯入服務提供方提供的相容連結,讓用戶端產生相應的執行設定。

移轉驗證:分開測試本機監聽與遠端握手

比較兩種核心時,應固定伺服器、網路與測試目標,並記錄每次測試的參數。以下數值僅為本機對照測試的設定範例,不是用戶端預設值,也不是速度測試結果。範例將本機 HTTP 代理設為 10809,並只監聽迴路位址,避免測試連接埠暴露於區域網路。

10809
本機 HTTP 代理連接埠範例
443
遠端連接埠範例,實際值以節點為準
3 次
在相同條件下重複請求,排除偶發失敗

先確認核心能否讀取設定

以下為命令列檢查範例,請先準備目標核心可讀取的 client.json。Xray 範例採用其命令列格式,V2Fly 範例則使用 V5 命令列格式;若實際發行版本有所差異,請先執行相應程式的說明命令確認。設定測試只會驗證載入階段,無法證明遠端伺服器可連線。

# Xray 設定檢查
xray run -test -config client.json

# V2Fly V5 命令列設定檢查
v2ray test -c client.json

接著確認請求是否經過本機代理

啟動測試設定後,透過明確指定的本機代理位址發出請求。以下假設 10809 提供 HTTP 代理;若實際使用的是 SOCKS 入站,請勿照抄 http://。範例網址 https://example.com/ 可替換為已確認可連線的 HTTPS 位址。

curl --proxy http://127.0.0.1:10809 --connect-timeout 10 --max-time 30 -I https://example.com/

不要同時啟動兩組都使用 10809 的設定。進行對照前,先停止上一組設定,並維持相同的本機連接埠與測試命令;否則可能遇到連接埠占用,或請求仍進入舊程序,進而把本機狀態誤判為核心差異。

如何選擇:依節點功能與維護成本決定

目前運作正常的設定,不必因為「另一個核心更新了」就立即移轉。新版本的價值應依修正內容、協定支援與用戶端相容情況判斷。更新前記下目前的用戶端版本、核心版本與可用節點,並保留可還原的設定副本,就能大幅縮短復原時間。

使用情境選擇方向操作重點
節點明確要求 REALITY 或 Vision使用相容的 Xray核對用戶端支援情況與實際核心版本,保留完整節點參數
Android 使用 Xray 功能的節點查看 v2rayNG 的相容情況匯入後檢查傳輸方式、安全層與 Flow 是否完整
Android 使用 V2Fly 設定體系查看 v2flyNG 的相容情況確認節點功能、設定格式與內建核心的支援範圍
桌面環境需要管理不同節點使用 v2rayN 並核對執行中的核心從啟動記錄確認實際載入的核心,不要只看清單名稱

操作建議:每次只變更一項條件

先在原有核心下,對原節點完成基準測試,再測試目標核心支援的節點組合。不要同時更換訂閱、DNS、路由與傳輸方式,否則失敗後很難判斷是哪一層出了變化。

常見誤解:匯入成功、啟動成功與連線成功應分開判斷

將 v2rayNG 的節點匯入 v2flyNG,為什麼還是連不上?

先確認節點是否包含 REALITY 或 Vision。分享連結能被介面辨識,不代表 V2Fly 核心具備相應的實作。若是一般節點,再核對傳輸方式、安全層與驗證參數。需要更換的是伺服器提供的相容方案,而不是刪除專有欄位後繼續嘗試。

使用 Xray 就一定比 V2Fly 快嗎?

不能這樣推論。吞吐量與延遲還會受到伺服器負載、往返延遲、封包遺失、裝置效能與傳輸方式影響。Vision 的處理機制有其適用條件,不能把單次測速結果當成適用所有網路的固定結論。應固定測試環境、重複測試,並同時觀察連線錯誤。

同一個網域、同一個 443 連接埠,為什麼不能直接切換協定?

網域與連接埠只是連線入口。入口後方可能設定了特定協定、安全層或轉送規則。用戶端使用 VMess、VLESS、TLS 或 REALITY,都需要伺服器端有相應設定;連接埠相同,不代表握手方式也相同。

提供記錄請他人協助排查前,應先處理哪些內容?

保留用戶端與核心版本、錯誤類型、發生時間及必要的欄位名稱;隱藏訂閱網址、UUID、私鑰與其他憑證。完整訂閱網址可能包含存取權杖,不應直接貼到公開討論區。只提供與問題相關的記錄片段,更容易找出原因。

用戶端下載依平台選擇安裝套件