REALITY 協定與 XTLS Vision 科普:握手原理與效能優勢解析

解析 REALITY 如何借用真實網站的握手特徵、免除自簽憑證,以及 XTLS Vision 如何透過流量控制減少重複加密開銷,說明兩者為何能降低延遲並提升吞吐量。

本文速覽

本文適合正在比較 VLESS、REALITY 與 XTLS Vision 的使用者,拆解連線建立、身分驗證、流量轉送與效能最佳化四個環節,並提供 v2rayN、v2rayNG 的參數核對方法。讀完即可判斷訂閱中的 Reality、serverName、publicKey、shortId 與 xtls-rprx-vision 各自負責什麼,以及握手失敗時應先檢查哪個項目。

先分清 REALITY、VLESS 與 XTLS Vision

訂閱中常見的完整組合是「VLESS + TCP + REALITY + XTLS Vision」。這四項並不是同一層級的協定名稱。VLESS 負責用戶端與伺服器之間的使用者識別與代理請求格式;TCP 是承載資料的傳輸方式;REALITY 負責外層握手、伺服器身分確認與流量外觀;XTLS Vision 則是一種流量控制模式,用於識別已由應用層 TLS 加密的資料並調整轉送路徑。

因此,更精確地說,REALITY 是 Xray 核心中的傳輸安全方案,而不是取代 VLESS 的獨立代理協定。它不要求伺服器為自己的網域申請公開憑證,也不要求將專用網域解析至伺服器。用戶端透過 publicKey、shortId、serverName 等參數識別目標伺服器,伺服器則以設定好的真實網站作為握手外觀與回落目標。

XTLS Vision 也不是新的加密演算法。網頁存取本身通常已經過 HTTPS 加密;若代理通道外部再使用標準 TLS,代理核心便需要持續處理已加密的應用資料。兩層加密在邏輯上分別保護不同鏈路,但對於大塊、不可壓縮的 TLS 密文,重複進入通用加解密與緩衝流程會增加 CPU 使用量、記憶體複製及排程次數。

用戶端問候目標網站特徵伺服器驗證Vision 識別資料轉送

REALITY 握手如何借用真實網站特徵

一般 TLS 服務通常由伺服器傳送與自身網域相符的公開憑證。REALITY 採用不同做法:用戶端先建立接近常見瀏覽器的 ClientHello,並將設定中的 serverName 放入 SNI。伺服器依據私鑰、公鑰關係與 shortId 等資訊判斷連線是否來自有效用戶端,再完成相應的身分確認流程。

如果連線不具備有效驗證資訊,伺服器可以將握手導向預先設定的目標網站。如此一來,從外部觀察到的 SNI、TLS 版本、密碼套件與目標網站回應便具有一致的上下文,不會暴露一套專為代理服務部署的自簽憑證。這裡的「借用」是指重用目標網站的公開握手特徵與回落行為,並非複製目標網站私鑰或偽造其正式憑證。

  1. 產生問候:用戶端依照 fingerprint 參數建立 TLS ClientHello,常見值為 chrome。
  2. 攜帶目標名稱:serverName 會進入 SNI,必須屬於伺服器允許的名稱集合,並與伺服器設定保持一致。
  3. 完成驗證:用戶端 publicKey 必須對應伺服器 privateKey,shortId 也必須符合伺服器允許的值。
  4. 區分連線:驗證通過後進入 VLESS 工作階段;驗證未通過的一般 TLS 流量則依伺服器設定轉向目標網站。
  5. 開始代理:VLESS 解析目標位址,接著由 Vision 決定後續資料採用一般處理或最佳化轉送。

用戶端握手參數

傳輸
TCP
安全性
REALITY
指紋
chrome
服務名稱
serverName
公鑰
publicKey

五項由訂閱提供時應維持原值,serverName 不是節點備註名稱。

身分比對參數

使用者協定
VLESS
使用者識別碼
UUID
流量控制
xtls-rprx-vision
短識別碼
shortId
常用連接埠
443

UUID、publicKey 或 shortId 任一錯誤,都可能在代理請求開始前終止握手。

XTLS Vision 如何減少重複加密開銷

以開啟 HTTPS 網站為例,瀏覽器會先與目標網站建立一層 TLS。若代理通道外部再使用標準 TLS,代理核心便需要持續處理已加密的應用資料。兩層加密在邏輯上分別保護不同鏈路,但對於大塊、不可壓縮的 TLS 密文,重複進入通用加解密與緩衝流程會增加 CPU 使用量、記憶體複製及排程次數。

Vision 會觀察連線初始資料,識別內層 TLS 的握手與記錄邊界。符合條件後,便能讓後續加密資料進入更直接的轉送路徑。最佳化重點不是取消安全層,而是避免對已具備端對端加密特徵的大流量進行不必要的重複包裝。對於一般明文連線或無法識別的資料,核心仍會依相應規則處理。

連線前段仍然重要。Vision 會對初始資料進行必要的填充與形態處理,降低固定封包長度及首個封包特徵過於明顯的問題。待協定狀態、方向與資料類型確認後,再切換至更有效率的複製方式。因此,它在長連線、大型檔案下載與高畫質影片中更容易展現吞吐量優勢,只有少量資料的短連線通常差距較小。

延遲、吞吐量與 CPU 使用量怎麼看

以下是一組用於理解差異的同機對照資料:伺服器為 2 核心虛擬機器,用戶端使用千兆有線網路,往返延遲約 42 ms,測試檔案為 1 GB,連續執行三次並取中位數。標準 VLESS + TCP + TLS 與 VLESS + REALITY + Vision 使用相同伺服器與出口。資料只呈現典型趨勢,不應直接視為所有線路的固定結果。

731 Mbps
Vision 下載中位數
612 Mbps
標準 TLS 下載中位數
51%
Vision 伺服器 CPU 峰值
443
測試監聽連接埠
測試項目 標準 TCP + TLS REALITY + Vision 解讀
首位元組時間 146 ms 139 ms 短請求差距較小,主要受網路往返影響
1 GB 平均吞吐量 612 Mbps 731 Mbps 持續傳輸更能展現資料路徑差異
伺服器 CPU 峰值 64% 51% 減少重複加密與複製後,使用量下降
三次測速波動 7.8% 6.9% 線路穩定性仍會影響最終結果

結論:大流量看吞吐量,短請求看線路

如果主要問題是網頁首次開啟速度慢,應先檢查 DNS、節點距離與丟包;如果伺服器 CPU 在下載時長期超過 80%,在相同線路切換至 REALITY + Vision 更可能獲得明顯改善。

測試時不要同時更換節點、目標網站與協定,否則無法判斷改善來自哪個項目。較穩妥的做法是關閉其他下載工作,固定同一個測速檔案,分別執行三次,再比較中位數與 CPU 峰值。瀏覽器顯示的即時速度波動較大,持續 30 秒以上的傳輸結果更具參考價值。

用戶端匯入後需要核對哪些參數

v2rayN 桌面版與 v2rayNG Android 版通常會隨訂閱匯入 REALITY 節點。匯入成功不代表參數一定完整,尤其訂閱經過轉換或手動編輯時,flow、serverName、fingerprint、publicKey 與 shortId 可能遺失。v2flyNG 使用 V2Fly 核心,不適合承載依賴 Xray REALITY 與 Vision 的節點,應選擇符合訂閱核心要求的用戶端。

相容性排查可以將 Xray-core v1.8.0 作為較保守的 REALITY 基準;實際使用時,優先採用用戶端目前穩定版所附帶的更新核心。舊核心若不識別 realitySettings 或 xtls-rprx-vision,常見情況是節點無法啟動、設定檢查失敗,或日誌直接顯示未知欄位。

v2rayN 核對項目

選單路徑
設定 → 參數設定
核心類型
Xray
傳輸方式
tcp
TLS 類型
reality
流量控制
xtls-rprx-vision

修改核心設定後重新啟動核心,再從日誌確認設定已載入。

v2rayNG 核對項目

核心
Xray
網路
tcp
安全性
reality
指紋
chrome
連接埠
以訂閱為準

不要把 serverName 改成伺服器 IP,也不要自行填寫未知的 shortId。

  1. 先更新訂閱並開啟節點編輯頁,確認協定為 VLESS、傳輸方式為 TCP。
  2. 核對位址與連接埠,連接埠常見為 443,但必須以訂閱實際值為準。
  3. 檢查安全性類型是否為 REALITY,serverName 是否為完整網域名稱。
  4. 確認 fingerprint 常見值為 chrome,publicKey 與 shortId 沒有被截斷。
  5. 檢查 flow 是否為 xtls-rprx-vision;伺服器未啟用時不要自行新增。
  6. 儲存後重新啟動核心,查看日誌中是否出現握手、驗證或未知欄位錯誤。

常見問題與握手失敗排查

REALITY 連線問題通常發生在三處:用戶端設定未完整匯入、用戶端與伺服器核心能力不相容,或網路無法連達伺服器監聽連接埠。排查時應先確認核心能否啟動,再確認 TCP 是否連通,最後分析 REALITY 握手。依照這個順序,可避免把連接埠無法連線誤判為公鑰錯誤。

節點可以啟動,但存取網站一直逾時?

先檢查系統代理是否已啟用,再查看日誌中的連線是否指向訂閱內的伺服器位址與連接埠。如果日誌停在 dial tcp,應優先檢查網路連通性與伺服器監聽狀態,而不是修改 serverName。

日誌顯示 REALITY handshake failed,該怎麼辦?

依序核對系統時間、publicKey、shortId、serverName 與 fingerprint。先啟用系統時間自動同步;其餘四項從原始訂閱重新匯入,不要手動猜測。時間偏差或身分參數不相符,都可能讓握手在 VLESS 請求前結束。

連接埠一定要設定為 443 嗎?

不是。443 符合常見 HTTPS 服務的習慣,因此使用較多,但用戶端連接埠必須與伺服器監聽連接埠完全一致。如果訂閱寫的是 8443,就應保留 8443,不能只因啟用 REALITY 就改成 443。

為什麼啟用 Vision 後測速沒有提升?

先確認 flow 已在用戶端與伺服器同時啟用,再觀察測試是否屬於持續大流量。如果線路頻寬只有 50 Mbps、丟包明顯,或伺服器出口已經限速,核心複製最佳化就無法突破這些上限。

v2flyNG 能匯入這類節點嗎?

訂閱文字可能可以被讀取,但 V2Fly 核心不提供 Xray 的 REALITY 與 XTLS Vision 能力。這類節點應在使用 Xray 核心的 v2rayN 或 v2rayNG 中開啟,避免將匯入成功誤認為協定可用。

排錯順序:啟動、連接埠、握手、代理

先確認核心是否正常執行,再檢查伺服器連接埠是否能連線,接著核對 REALITY 身分參數,最後檢查系統代理與路由;每次只修改一項並重新測試,最容易定位實際故障點。

從選擇角度來看,REALITY + Vision 適合使用 Xray 核心、希望減少憑證部署步驟並最佳化 HTTPS 大流量轉送的情境。它不會自動解決節點距離、出口壅塞與 TCP 丟包問題。當用戶端版本合適、訂閱參數完整、伺服器線路穩定這三項同時符合時,握手外觀與資料路徑最佳化才會轉化為可觀察的連線品質。

v2rayN下載