選擇核心時,先看節點需求,而非客戶端名稱。一般 VMess、WebSocket 與 TLS 設定可能在兩個核心家族間移轉;使用 REALITY 或 xtls-rprx-vision 的節點則須搭配 Xray 實作。本文依功能、欄位與排錯順序說明差異,適合正在挑選 Android 客戶端、切換桌面核心,或遇到「匯入成功卻無法連線」的使用者。
一、Xray、V2Fly 與客戶端各自負責什麼
V2Ray 最初是代理工具專案及其核心程式的名稱。V2Fly 社群持續維護 v2ray-core;Xray-core 則於 2020 年從相關程式碼分支發展,之後形成自己的功能與設定演進路線。兩者有共同淵源,但並非同一程式的不同顯示名稱,也不能只看名稱判斷哪個版本較新。
核心負責協定交握、傳輸、DNS 與路由等實際工作。客戶端提供訂閱管理、節點編輯、啟動開關與記錄檔介面,並將介面欄位轉換為核心設定。節點能否使用,取決於客戶端能否表達這些欄位,以及核心是否具備相應功能。
- v2rayN:桌面客戶端。排錯時應確認目前使用的核心,不能把客戶端版本號當成 Xray 或 V2Fly 的版本號。
- v2rayNG:Android 客戶端,本文討論其 Xray 核心設定方式,適合需要 REALITY、Vision 等功能的節點。
- v2flyNG:Android 客戶端,使用 V2Fly 核心;選用前應確認節點的協定、傳輸方式及設定格式都受目前版本支援。
例如,節點出現在清單中,只代表訂閱已解析為一筆資料。必須等核心成功載入設定並完成遠端交握,才能確認整條連線可用。成功匯入並不代表相容性測試已完成。
二、功能差異:著重比較 Vision 與 REALITY
VMess、VLESS 是代理協定;WebSocket、TCP 是傳輸方式;TLS、REALITY 則是連線安全層的選項。XTLS Vision 是搭配特定連線組合使用的流量控制機制。這些功能屬於不同層級,不能用「把 VMess 改成 REALITY」來描述完整的設定變更。
| 功能 | Xray 核心 | V2Fly 核心 | 選擇時確認 |
|---|---|---|---|
| VMess | 支援 | 支援 | 接著確認傳輸方式、TLS 與驗證欄位 |
| 基本 VLESS | 支援 | 特定版本支援 | 不能只因為是 VLESS,就推定支援 Vision |
| WebSocket + TLS | 支援 | 支援 | 確認路徑、Host、SNI 與憑證 |
| XTLS Vision | 支援相應流量控制 | 不支援 Xray 的 Vision 流量控制 | 確認 xtls-rprx-vision |
| REALITY | 支援 | 不支援 Xray 的 REALITY | 確認安全層與伺服器公鑰參數 |
| DNS 與規則路由 | 具備 | 具備 | 須分別確認實際欄位與設定格式 |
Vision 常見的欄位值為 xtls-rprx-vision。它不是舊式 XTLS 設定的別名,也不是任何傳輸方式都能加上的加速選項。常見部署會組合使用 VLESS、TCP,以及 TLS 或 REALITY;客戶端的流量控制設定必須與伺服器端相符。
REALITY 也不等於停用憑證驗證。它採用不同的交握與身分驗證機制,客戶端通常需要伺服器公鑰、允許的伺服器名稱、short ID 和指紋等資訊。不能只把一般 TLS 節點的安全層改成 REALITY,就預期可以直接連線。
結論:依節點所需功能選擇核心
節點參數出現 security=reality 或 flow=xtls-rprx-vision 時,應優先確認 Xray 設定流程;一般 VMess + WebSocket + TLS 則先檢查欄位是否一致,不必只因名稱不同就切換核心。
三、兩類節點的關鍵欄位比較
以下兩張卡片用於核對欄位關係,並非可直接匯入的節點。範例連接埠和路徑僅說明各自用途;實際值請向節點提供者確認。伺服器監聽 443,不能證明使用 TLS,更不能證明使用 REALITY。
VLESS + REALITY + Vision
- 傳輸方式
- TCP
- 安全層
- REALITY
- 流量控制
- xtls-rprx-vision
- 身分欄位
- UUID、伺服器公鑰、short ID
- 交握欄位
- serverName、fingerprint
使用支援此組合的 Xray 核心,並逐項對應伺服器參數;short ID 是否可留空,也須依伺服器允許的值確認。
VMess + WebSocket + TLS
- 傳輸方式
- WebSocket
- 安全層
- TLS
- 驗證
- UUID;現代設定通常使用 alterId=0
- 路徑範例
- /ws,大小寫須與伺服器一致
- 網域欄位
- WebSocket Host 與 TLS serverName
兩個核心家族都具備相應功能;Host、連線位址和憑證名稱用途不同,不應不加區分地互相替代。
REALITY 分享連結中的 pbk 通常是伺服器公鑰,sid 對應 short ID,sni 對應伺服器名稱,fp 對應客戶端指紋識別。分享連結欄位、客戶端編輯欄位與原生 JSON 鍵名不一定相同,應由支援該格式的客戶端正確對應。
四、設定相容性:分享連結不等於原生 JSON
同一個節點可能以分享連結、訂閱項目或原生 JSON 呈現,但三者並非可互換的檔案。分享連結主要描述節點參數;原生設定還可能包含本機入站、DNS、路由、記錄檔與多個出站。將完整設定濃縮成節點連結,通常無法保留所有行為。
- 先區分設定來源。
vmess://與vless://是分享連結前綴;採用物件結構的 JSON 可能是完整核心設定,也可能只是服務提供者的 API 回應。 - 再辨認 JSON 格式。V2Fly 的不同設定格式與 Xray 的欄位演進不能混為一談。即使頂層都有
inbounds和outbounds,巢狀欄位仍可能不同。 - 逐層比較出站設定。先看協定與使用者驗證,再看傳輸方式、安全層和流量控制。缺少 REALITY 專用設定時,不要用一般 TLS 設定補上。
- 最後移轉環境設定。確認本機監聽位址、連接埠、DNS、路由標籤與規則順序。節點交握成功但分流異常時,通常不必繼續修改 UUID 或公鑰。
將原生 JSON 從 Xray 移轉到 V2Fly,不能只替換執行檔。某個核心可能直接拒絕未知值,也可能在特定解析流程中忽略部分欄位;兩種情況都不算移轉成功。應先用目標核心檢查設定,再實際發出代理請求。
xray version
xray run -test -config client.json
v2ray version
以下命令適用於桌面命令列環境:前兩行分別查看 Xray 版本及檢查現有的 client.json,第三行查看 V2Fly 版本。請先準備好檔案;不同發行套件的命令參數可能不同,使用前應先查看 help。設定檢查只能找出解析及部分初始化問題,不能取代網路連線驗證。
五、如何選擇 v2rayNG 與 v2flyNG
在 Android 上,依節點功能選擇客戶端,比看名稱猜測更可靠。如果提供者明確要求 VLESS + REALITY + Vision,請選用 v2rayNG 的 Xray 設定流程,並確認客戶端及內建核心能正確處理訂閱欄位。如果手上已有 V2Fly 原生設定,先確認 v2flyNG 的設定匯入方式與核心版本是否支援該格式。
- 節點要求 REALITY 或 Vision:使用 v2rayNG,並確認安全層、公鑰、short ID、指紋與流量控制設定都完整。
- 現有節點使用 VMess + WebSocket + TLS:兩者都可能適用。保留能正確匯入、完成交握並正常分流的組合,切換前先備份訂閱與本機設定。
- 依賴自訂 DNS 或路由:優先檢查客戶端實際產生的設定,不要以「節點可以匯入」作為完全相容的判斷依據。
- 在桌面使用 v2rayN:分別記錄客戶端版本與所選核心版本。切換核心後重新啟動連線,避免依據舊記錄檔判斷。
沒有「Xray 一定比較快」或「V2Fly 一定比較穩」這種通則。節點位置、網路封包遺失、伺服器負載、傳輸方式與路由都會影響使用體驗。比較核心時,應使用相同伺服器、相同協定組合、相同測試目標,並選擇相近時段;否則觀察到的差異可能來自網路線路,而非核心。
六、匯入成功卻無法連線:排錯順序
先區分「本機代理入口」與「遠端伺服器連接埠」。以下數字只是排錯環境的範例,並非所有客戶端的預設值,也不是速度測試結果。本機連接埠以實際設定為準,遠端連接埠則以節點資料為準。
- 確認目前執行的核心。啟動目前節點後查看最新記錄檔,記下核心家族、版本與第一筆錯誤。不要只看安裝套件名稱。
- 處理設定載入失敗。若出現未知的協定、安全層或流量控制值,先確認功能是否受支援;核心尚未成功啟動時,反覆更換 DNS 並無幫助。
- 處理網路無法連線。確認伺服器位址可解析、遠端連接埠正確,且網路允許建立連線。TCP 連接埠可連通,只能證明傳輸入口可存取,不能證明驗證成功。
- 處理交握錯誤。一般 TLS 請檢查裝置時間、serverName 與憑證鏈;REALITY 請檢查伺服器公鑰、short ID、允許的伺服器名稱與指紋設定;使用 Vision 時再確認流量控制設定。
- 處理請求未經代理。桌面端檢查系統代理或應用程式代理設定;Android 檢查 VPN 授權及個別應用程式規則。連線已建立但目標流量未經代理時,繼續修改協定欄位只會讓問題更複雜。
桌面端若確認本機 SOCKS 入口確實為 127.0.0.1:10808,可使用下方命令指定代理連線至本站。socks5h 會將目標網域交由 SOCKS 代理端解析,方便與本機 DNS 流程區分。
curl --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://v2rayid.com/
命令有回應,只能表示在目前規則下,這個目標可經由本機入口完成請求;如果核心規則讓它直接連線,仍無法證明遠端代理出口正常。請搭配存取記錄確認出站,再使用可信的出口 IP 查詢服務核對結果。單次逾時也不能直接判定核心不相容,應回頭確認失敗發生在本機連線、遠端交握,還是目標存取階段。
結論:一次只修改一個層級
先讓核心載入設定,再驗證遠端交握,最後檢查 DNS 與路由。每次只修改一個欄位並保留前後記錄檔,才能分辨問題是功能缺失、參數錯誤,還是流量沒有進入代理。
七、常見相容性問題
VLESS 節點一定要使用 Xray 嗎?
不一定。基本 VLESS 與 VLESS + REALITY + Vision 所需的功能並不相同。應檢查傳輸方式、安全層與 flow,而非只看連結是否以 vless:// 開頭。若使用 Xray 專屬功能,就應選擇相應實作。
開啟 allowInsecure 可以修正 REALITY 錯誤嗎?
不能把它當成修正方法。略過一般 TLS 憑證驗證,既無法補上缺少的 REALITY 支援,也無法修正錯誤的公鑰、short ID 或流量控制設定。請恢復正常驗證設定,並依據記錄檔核對連線所需參數。
切換核心後,台灣與其他地區的分流設定會維持不變嗎?
不一定。路由標籤、規則順序、網域解析策略與地理資料檔都可能影響結果。移轉時先保留一條明確的代理測試路徑,確認節點可用後再逐步還原原有規則,並檢查各類目標實際使用的出站。