Xray 核心與 V2Fly 核心差異:協定支援、效能與設定相容性

比較 Xray 與 V2Fly 對 VLESS、XTLS、REALITY 的支援差異與設定檔相容範圍,並說明 v2rayNG、v2flyNG 各適用於哪些節點。

本文重點

先確認節點使用的協定、傳輸方式、安全層與 flow,再決定採用哪種核心。需要 REALITY 或 XTLS Vision 時,請選用支援相關功能的 Xray;既有 VMess、WebSocket 與 TLS 節點則應依實際設定確認相容性。本文整理桌面與 Android 的選擇方式、JSON 遷移限制,以及切換後無法連線時的排查順序。

先分清楚用戶端、核心與節點協定

v2rayN、v2rayNG、v2flyNG 都是用戶端,負責管理訂閱、編輯設定、顯示記錄與控制連線。核心則負責實際建立代理連線、套用路由規則及處理流量。節點清單中的 VMess、VLESS 是協定名稱,不是用戶端名稱;更換用戶端介面,不會自動改變伺服器接受的協定。

V2Fly 社群維護 V2Ray 專案,本文以「V2Fly 核心」稱呼這項實作。Xray 則是從 V2Ray 專案分支發展而來的獨立核心。兩者有共同的發展歷程,但如今不能視為「同一個程式的兩種名稱」。協定擴充、設定欄位與版本演進都可能不同。

協定支援:VLESS 不等於 REALITY,XTLS 不等於 TLS

比較核心時,最容易混淆的是把協定與安全層當成同一個概念。VLESS 屬於代理協定層;TCP、WebSocket 等是傳輸方式;TLS、REALITY 是連線安全相關設定;xtls-rprx-vision 則是需要相應實作支援的 flow 值。要看懂節點設定,必須分別確認這些層次。

功能支援Xray 核心V2Fly 核心選擇重點
VMess支援常見設定組合支援常見設定組合接著確認傳輸方式、TLS 與伺服器參數
基本 VLESS支援有相應實作,需確認版本與設定格式支援 VLESS 不代表支援所有擴充功能
XTLS Vision請使用支援此功能的版本不能直接取代 Xray Vision 設定看到 xtls-rprx-vision 時,請選用相符的 Xray
REALITY請使用支援此功能的版本不直接相容於 Xray 的 REALITY 節點設定公鑰、serverName、shortId 等參數都必須相符
WebSocket + TLS支援常見組合支援常見組合確認 Host、路徑、SNI 與憑證驗證設定

基本 VLESS 本身不提供傳輸加密。看到 VLESS 不代表可以省略安全層設定,也不能把 REALITY 下拉選單改成 TLS 當作相容處理。伺服器要求 REALITY 時,用戶端必須使用相應實作,並填入伺服器提供的參數。

XTLS 舊版設定也不能與現行 Vision 設定混用。舊教學中的 flow 值、傳輸名稱或安全欄位,可能已不適用於目前版本。遷移時請以節點提供方給的完整參數及核心記錄為準,不要因名稱相似就認定可以替換。

選擇用戶端:依節點實際需求選用 Xray 或 V2Fly

以下建議僅適用於「需要 REALITY 或 Vision」的情境,不代表某個核心在所有線路與硬體上都比較快。若伺服器已有可用的 V2Fly 設定,且目前沒有新增功能需求,保留原有組合通常比直接更換核心更容易掌握變因。

Xray 核心

建議

適用於節點明確要求 REALITY、XTLS Vision 等功能的情況。桌面端請在 v2rayN 確認目前協定所使用的核心設定;Android 端選用 v2rayNG,並確認內建核心版本能處理節點參數。

適用情況:VLESS + REALITY、明確指定 Vision 的節點

V2Fly 核心

適用於使用 V2Fly 設定格式部署且已完成驗證的連線。常見的 VMess、WebSocket、TLS 組合可依伺服器參數逐項確認,不必因訂閱名稱改變就遷移。

適用情況:既有 V2Fly 設定、常見協定與傳輸組合

  1. 查看欄位:開啟節點編輯頁面,確認是否有 security=reality 或 flow=xtls-rprx-vision。若有,請優先依 Xray 設定處理。
  2. 確認桌面端設定:在 v2rayN 開啟「設定」→「參數設定」,尋找目前版本的核心相關選項;若該版本支援依協定指定核心,請確認此節點協定對應的核心。不同版本的介面選項位置可能不同。
  3. 確認執行結果:儲存節點並設為作用中的伺服器,查看記錄中的核心名稱、版本與啟動錯誤。不要只看設定頁上的選項。
  4. 確認 Android 應用程式:在 v2rayNG 或 v2flyNG 的節點清單中長按目標節點,進入編輯介面查看參數。若應用程式無法設定必要欄位,請改用相符的用戶端,不要刪除該欄位。

設定相容性:分享連結可匯入,不代表 JSON 能直接互換

匯入訂閱與遷移完整設定是兩回事。分享連結通常只描述單一出站節點;用戶端解析連結後,還會建立本機入站、DNS、路由及其他設定。完整 JSON 則可能包含特定核心專用的擴充欄位。即使兩端都能匯入同一條 VMess 連結,也不代表兩份完整 JSON 可以直接互相取代。

遷移方式:區分節點參數與完整執行設定

節點連結或訂閱
  • 保留原始網址與存取參數。
  • 重新匯入後,檢查協定、連接埠與安全層。
  • 確認用戶端是否忽略不認識的欄位。
  • 依新用戶端重新設定本機監聽與路由。
完整 JSON 設定
  • 先備份原設定,再建立獨立的測試副本。
  • 逐項檢查 inbounds、outbounds 與 routing。
  • 確認 DNS 格式、標籤參照及擴充欄位。
  • 確認目標核心支援相應設定格式後再啟動。

優先遷移可逐項確認的節點參數;完整設定必須依目標核心重新驗證,不能只改程式檔名。

例如以下三個欄位來自 Xray 的 REALITY 與 Vision 設定情境,只用於說明辨識方式,不是可執行的設定,也不能據此組裝節點:

"protocol": "vless"
"security": "reality"
"flow": "xtls-rprx-vision"

遷移失敗時,先分辨是「設定解析失敗」還是「遠端交握失敗」。記錄若出現未知欄位、未知安全類型或不支援的 flow,代表問題仍在本機設定階段;若核心能啟動但交握失敗,再檢查位址、連接埠、識別參數、安全層與系統時間。不要以停用憑證驗證來掩蓋問題。

效能取向:在相同條件下測試,不按核心名稱排名

Xray Vision 針對特定 TLS 流量處理路徑進行最佳化,但不代表所有協定與負載都會有同樣的效益。線路壅塞、伺服器負載、傳輸封裝、裝置 CPU 與網路切換,帶來的影響都可能大於核心差異。比較兩個不同節點的延遲,無法得出核心效能的結論。

先統一測試入口。以下是排查時可用的連接埠範例,不是用戶端預設值:實際數字請以設定頁與啟動記錄為準。遠端使用 443,也不代表一定是一般 TLS 服務。

10808
本機 SOCKS 入口範例連接埠
10809
本機 HTTP 入口範例連接埠
443
伺服器監聽範例連接埠

如果只有 REALITY 節點可用,就沒有「維持相同協定並改用 V2Fly」的有效比較條件。此時應評估 Xray 在目前裝置上的連線穩定度與資源使用量,而不是為了比較而修改伺服器協定。

切換後的排查方式:先檢查核心啟動,再檢查路由與 DNS

核心能正常啟動,不代表應用程式流量已經進入代理。桌面系統代理只會影響遵循該設定的應用程式;Android VPN 連線與個別應用程式範圍,則決定哪些應用程式會經過代理。切換核心時若同時更動路由、DNS 與代理模式,問題就難以重現,建議一次只變更一項。

  1. 檢查啟動記錄:先排除設定解析失敗與 address already in use。如果範例連接埠 10808 已被舊程序占用,請先停止舊程序,再啟動新設定。
  2. 確認流量入口:桌面端檢查系統代理或應用程式的手動代理位址;Android 端確認已授權 VPN,並檢查個別應用程式清單是否包含測試應用程式。
  3. 確認路由標籤:自訂設定中的出站標籤必須存在。遷移後若規則仍參照舊標籤,可能導致啟動失敗或流量未依預期分流。
  4. 檢查 DNS:確認 DNS 伺服器的存取路徑,以及網域規則與網域解析策略之間的關係。DNS 查詢失敗不能一概歸因於 VMess 或 VLESS。
  5. 重新測試單一節點:暫時停用自動選擇與複雜分流,先使用明確的代理出站連線至固定目標。確認正常後,再逐條加回路由規則。

若要了解網域、IP 與出站規則之間的關係,可參閱協定詳解中的路由說明。若要重新設定代理入口,請依入門指南檢查用戶端設定,不要直接覆寫整份執行設定。

常見問題:訂閱、交握與 Android 端選擇

同一份訂閱,為什麼 v2rayNG 可以用,v2flyNG 卻不行?

先在節點編輯頁面檢查安全層與 flow。若是 REALITY 或 Vision 節點,應使用支援這些功能的 v2rayNG。若是兩者都支援的 VMess 組合,請比較匯入後的傳輸方式、Host、路徑與 TLS 參數,並查看啟動記錄;不能只看節點數量相同,就認定設定一致。

把 VLESS 改成 VMess,舊設定就能連線嗎?

不能只修改用戶端或伺服器其中一端的協定。協定由伺服器入站與用戶端出站共同決定,識別參數的結構也可能不同。請還原原設定,向節點提供方索取明確支援 VMess 的獨立設定,再透過訂閱匯入或手動新增節點。

更新用戶端後仍顯示不支援 flow,該怎麼查?

先中斷連線,再重新啟動並查看記錄中的實際核心版本。桌面端請確認 v2rayN 目前協定呼叫的核心是否仍是舊檔案;Android 端則確認使用的應用程式符合節點需求。接著比對伺服器提供的 flow 值,並確認沒有把舊教學中的參數套用到新節點。

填入 REALITY 公鑰後,為什麼仍然交握失敗?

請一併檢查位址、連接埠、UUID、serverName、shortId 與指紋設定,確認沒有複製到空格,也沒有誤用另一台伺服器的參數。校準裝置時間後再查看記錄。不要任意清空 shortId,也不要切換安全層至 TLS 來試圖繞過參數不符的問題。

最終選擇可歸納為兩步:先確認用戶端與核心符合節點的協定需求,再在相同條件下驗證連線與效能。REALITY、Vision 是明確的功能選擇依據;一般 VMess 或基本 VLESS 設定則應繼續確認傳輸方式、安全層與設定格式,而不是只看核心名稱做決定。

下載用戶端選擇平台與安裝檔