REALITY 與 XTLS Vision 原理解析:少一層加密為何更快

圖解說明 XTLS Vision 如何避免重複加密、REALITY 如何借用真實網站的 TLS 握手,以及兩者如何搭配 Xray 核心運作。

本文重點速覽

REALITY 解決代理連線的驗證與握手外觀問題,XTLS Vision 則處理代理通道中的資料封裝與重複加密。本文適合已匯入 VLESS 節點,想了解安全選項與 Flow 欄位的讀者。讀完即可分辨連線位址與 SNI、核對用戶端參數,並判斷速度瓶頸是否真的與加密有關。

先釐清三個名稱:VLESS、REALITY 與 Vision

在 v2rayN 或 v2rayNG 中,常見的節點組合是「VLESS + REALITY + XTLS Vision」。這三者不是可以互換的協定名稱。VLESS 說明代理請求如何帶上使用者身分與目標位址;REALITY 負責外層連線的安全握手與驗證;Vision 則是 Xray 的流量控制機制,決定通道內部分資料的處理方式。先釐清這三個層次,才能知道出錯時該從哪個欄位查起。

層次對應設定主要用途無法取代的項目
代理協定VLESS傳遞使用者身分、目標位址與請求資訊無法單獨提供完整的傳輸加密
安全層reality建立經過驗證的安全連線,並處理未通過驗證的握手無法取代路由分流規則
流量控制xtls-rprx-vision辨識符合條件的 TLS 流量,並最佳化後續資料傳輸無法改善所有線路的封包遺失與壅塞

VLESS 的 encryption 常見值為 none。這表示 VLESS 協定本身不會再額外加上一層負載加密,不代表整條連線都以明文傳輸。使用 REALITY 時,安全層仍會參與建立連線;瀏覽器瀏覽 HTTPS 網站時,應用程式本身的 TLS 加密也依然存在。

HTTPS 經過代理時,為什麼會有兩層加密?

瀏覽器開啟 HTTPS 網站時,會先與目標網站進行 TLS 握手。接著,網頁內容、登入資訊與回應資料都會成為應用層的 TLS 密文。代理的工作只是將這條連線傳送至目標網站,不會因此取得網站連線的解密金鑰。

如果代理通道本身也使用 TLS,瀏覽器產生的密文就會再包進代理連線的 TLS 記錄中。用戶端加密一次外層,伺服器解密外層後,再將內層密文轉送至網站。這種「雙層封裝」很常見,也有實際用途;不過在大量傳輸時,會增加額外的加解密、緩衝區處理與資料複製成本。

瀏覽器送出請求 網站 TLS 代理再次封裝 伺服器拆封 目標網站

Vision 的核心不是取消 HTTPS,而是辨識內層 TLS 所處的階段,並在符合條件時調整後續資料的傳輸方式。對於辨識出的 TLS 1.3 流量,它能在適當階段切換為直接轉送,讓已加密的應用程式資料不必再經過外層 TLS 加解密。初始握手與必要的代理資訊仍會受到保護,並非連線成功後就把所有資料裸露傳送。

REALITY 如何借用真實網站的握手外觀

一般 TLS 代理服務通常需要準備自己的網域與憑證。REALITY 採用不同的設計:伺服器會設定合適的真實 TLS 目標,用戶端則帶上約定的驗證參數發起握手。通過驗證的連線會在用戶端與 REALITY 伺服器之間建立代理通道;未通過驗證的連線則可由伺服器轉交給設定的目標,呈現與真實網站正常進行 TLS 交握的樣貌。

「借用真實網站」是為了方便理解的說法,不表示持有該網站的私鑰,也不代表代理的所有流量都會先繞到該網站。驗證成功後,伺服器會依目標位址轉送代理資料;設定的真實網站主要參與握手外觀與未驗證連線處理等機制。用戶端用來信任 REALITY 伺服器的依據,也不是單純把目標網站的公開憑證複製到本機。

發起握手 驗證參數 伺服器驗證 建立通道 轉送請求

位址、SNI 與真實目標是不同欄位

在 v2rayN 與 v2rayNG 中,哪些參數需要核對?

建議先從可信任的訂閱匯入完整節點,再進入節點編輯頁面核對欄位。不同版本的用戶端可能會更改選單名稱,但協定、傳輸方式、安全層與 Flow 的意義不變。以下兩張卡片呈現同一連線兩端的核對關係,並非可直接複製使用的完整節點。連接埠 443 只是常見範例,實際設定請以伺服器監聽的連接埠為準。

用戶端節點欄位

協定
VLESS
傳輸方式
TCP;較新版本也可能標示為 RAW
安全層
reality
Flow
xtls-rprx-vision
指紋
chrome,請依伺服器設定確認

還需要向節點提供者取得正確的位址、連接埠、使用者 ID、SNI、金鑰參數與 Short ID。

伺服器端對應條件

入站協定
VLESS
監聽連接埠
443,或實際指定的連接埠
使用者 Flow
xtls-rprx-vision
安全設定
REALITY 私鑰與允許的名稱
握手目標
符合需求且伺服器可連線的 TLS 網站

私鑰必須留在伺服器端;用戶端的驗證資料應與伺服器設定相符,不可任意產生後替換。

REALITY 的金鑰參數在用戶端介面與不同版本的 Xray 設定中,名稱可能有所不同。舊版設定常見 publicKey,較新的設定則可能使用 password。不要只看欄位名稱就手動搬移 JSON,應依目前執行的核心文件與用戶端匯入規則處理。伺服器私鑰則絕不可提供給一般使用者。

TLS 1.3
Vision 直接轉送最佳化的重要辨識條件
443
常見監聽連接埠,並非必填值
≤16
Short ID 的十六進位字元長度上限

Short ID 使用十六進位字串;若非空值,字元數必須是偶數,且最多 16 個字元。是否允許空值取決於伺服器設定。它不是使用者 ID,也不是可以隨意填寫的備註。若訂閱中已提供 Short ID,請保留原值;即使只自行修改一個字元,也可能導致驗證失敗。

結論:先確認欄位彼此相符,再調整指紋

先核對位址、連接埠、使用者 ID、Flow、SNI 與驗證參數。只有在基本設定相符,且核心確認支援後,調整指紋才有助於排除問題;一次修改多個參數,只會讓下次發生錯誤時更難定位。

少一層加密為何可能更快?又為何不一定?

加密並非唯一的成本,但在高吞吐量連線中,可能成為明顯的負擔。Vision 會減少符合條件的資料重複加解密,並在實作允許時採用更有效率的傳輸路徑,降低 CPU 使用率與資料搬移負擔。伺服器同時處理多條大流量連線時,這種改善比短小的網頁請求更容易顯現。

如果瓶頸來自行動網路封包遺失、伺服器出口頻寬、電信業者網路壅塞或目標網站限速,少一層加密不見得能提升下載速度。TCP 壅塞控制依然存在,REALITY 也不會增加線路的實體頻寬。不能因為某個節點速度快,就推論「所有 REALITY 節點都比其他組合快」。

觀察到的現象優先檢查項目Vision 可能發揮的作用
下載時單一核心持續接近滿載用戶端與伺服器的 CPU、核心版本及實際使用的 Flow符合最佳化條件時,可能降低處理負擔
CPU 使用率偏低,但速度忽快忽慢封包遺失、網路壅塞、出口頻寬與目標限速通常無法直接排除線路瓶頸
網頁首次開啟緩慢,但持續下載正常DNS、握手往返時間、連線重用與目標回應速度長時間傳輸的最佳化,不代表首次開啟延遲一定會降低
更換節點後速度明顯改變兩台伺服器是否位於相同線路,且負載條件是否一致不能單憑這個結果歸因於流量控制

如何進行可比較的測試

  1. 固定使用同一台裝置、同一個網路、伺服器與下載目標,關閉其他大量傳輸工作,避免把 Wi-Fi 訊號變化誤當成協定帶來的效益。
  2. 使用伺服器明確支援的兩組測試設定,不要直接清空 Flow 欄位當作對照;用戶端與伺服器的設定必須互相吻合。
  3. 每組連續下載 60 秒,重複 3 次,同時記錄平均傳輸量、用戶端 CPU、伺服器 CPU 與連線錯誤。
  4. 分別測試大型檔案下載與網頁首次開啟。如果只有 CPU 使用率下降、傳輸量沒有變化,表示最佳化確實有效,但目前的速度瓶頸可能在其他地方。

結論:以傳輸量與 CPU 兩項指標判斷

先確認線路、目標與負載條件相同,再比較速度與處理負擔。本文不提供固定的加速百分比,因為裝置效能、核心實作與網路條件各不相同,單一數字無法代表所有節點。

連線失敗時,依握手階段逐步排查

「握手失敗」只代表安全連線尚未完成,不能直接判定是憑證問題。REALITY 驗證參數不符、SNI 不在允許清單中、伺服器無法連上目標,或裝置時間有誤,都可能造成連線失敗。先確認 TCP 能否建立,再檢查 REALITY 驗證,最後核對 VLESS 使用者與 Flow,通常比反覆切換加密選項更有效。

  1. 先檢查連線位址:確認用戶端連線的是代理伺服器,而不是握手目標。如果記錄顯示連線逾時或遭拒,請檢查監聽連接埠、防火牆與網路連線狀況。
  2. 接著檢查系統時間:在 Windows 的「設定」→「時間與語言」→「日期與時間」中,確認自動設定時間與同步狀態;Android 也應開啟自動日期和時間。REALITY 可依伺服器政策限制時間差。
  3. 核對驗證參數:逐一比對 SNI、用戶端驗證金鑰參數與 Short ID。伺服器更換金鑰後,即使位址沒有變更,舊訂閱也可能無法繼續使用。
  4. 檢查使用者與 Flow:確認伺服器上存在該 VLESS 使用者 ID,且兩端使用相容的 Vision 設定。不要混淆 REALITY 安全層選項與 Flow 欄位。
  5. 確認實際使用的核心:確認 v2rayN 目前使用的是支援此組合的 Xray 核心。介面能儲存節點,不代表所選核心一定接受所有欄位。
  6. 最後檢查目標與轉送:若握手已成功但網頁仍無法開啟,請檢查伺服器 DNS、出站路由、目標連線狀況,以及用戶端是否將該流量送進代理。
啟用 allowInsecure 能修復 REALITY 驗證失敗嗎?

不要把它當成通用修復方式。略過一般 TLS 憑證驗證,無法讓錯誤的 REALITY 金鑰、Short ID 或 SNI 自動吻合。請還原節點提供者給的完整參數,並根據握手記錄找出具體原因;也不要為了測試而關閉瀏覽器對目標網站的憑證驗證。

REALITY 節點可以直接套用 WebSocket 或中轉嗎?

本文介紹的組合使用 TCP/RAW,不能在用戶端任意改成 WebSocket,或填入路徑後就期待繼續正常運作。常見的 HTTPS 中轉若會終止並重新建立 TLS,就會改變端對端握手條件。其他傳輸方式或轉送架構是否可行,必須依所用的 Xray 版本與完整伺服器設計確認。

匯入訂閱後,為什麼還要檢查路由?

訂閱提供節點參數,路由則決定哪些請求會使用節點。連線測試成功,但某個網站仍直接連線,可能是分流規則先套用了 direct,而不是 REALITY 沒有運作。請先確認該請求實際採用的出站方式,再修改規則,避免把路由問題誤判為安全層故障。

下載v2rayN