本文重點

VLESS 負責代理協定與使用者驗證,REALITY 負責連線安全與握手特徵,XTLS Vision 則負責辨識流量並最佳化轉送。本文適合已取得 VLESS 節點、需要確認 REALITY 參數的使用者:先釐清三者的分工,再檢查 flow、fingerprint、serverName、公鑰與 shortId,最後依據記錄檔找出連線失敗原因,而非反覆更換指紋。

VLESS、REALITY、Vision 各自負責什麼?

節點名稱中的「VLESS + REALITY + Vision」並不是三種並列的協定。VLESS 位於代理協定層,透過 UUID 等資訊辨識使用者,並傳遞目標位址。VLESS 本身不像 VMess 一樣提供資料加密機制,因此透過公網使用時,需要適當的安全傳輸機制來保護連線。將 VLESS 的 encryption 設為 none,不代表整條連線都以明文傳輸。

REALITY 是 Xray 生態系中的安全傳輸機制,結合 TLS 握手特徵、伺服器金鑰與客戶端驗證資訊,建立受保護的連線。XTLS Vision 則透過 flow 選項,負責初始流量處理、填充,以及符合條件時的轉送最佳化。客戶端名稱中有 V2Ray,不代表其使用的核心一定支援這組設定;本文討論的是 Xray 核心的實作。

應用程式請求 VLESS 封裝 REALITY 握手 Vision 處理 目標連線

這段流程呈現的是邏輯上的分工,不代表每個階段都會另外建立一條網路連線。實際連線時,驗證、握手與流量處理會彼此銜接。排除問題時,先找出失敗的層級:連接埠無法連線屬於連線問題,公鑰不符屬於安全握手問題,UUID 不符屬於代理驗證問題;網頁分流錯誤通常則應檢查 routing。

從 TLS 握手了解 REALITY 的作用

瀏覽器連線至 HTTPS 網站時,會先傳送 ClientHello,其中包含支援的 TLS 版本、密碼套件與擴充項目等資訊。伺服器回覆相應的握手訊息,雙方協商出金鑰。傳統代理的外層 TLS 也需要完成類似流程;若內層還有瀏覽器與網站之間的 HTTPS,就會形成「網站 TLS 包在代理 TLS 裡」的結構。

REALITY 的設計並不是讓使用者隨便填入知名網域,就能呈現相同的握手特徵。伺服器需要設定合適的目標網站與允許的服務名稱;客戶端也必須持有與伺服器設定相配套的公鑰、shortId 等參數。合法客戶端會利用這些資訊驗證伺服器並建立連線,並非只依賴目標網站一般的憑證信任鏈。

對於未通過相應驗證的連線,REALITY 可以將其交由設定的目標網站處理,讓對外行為更接近真實網站。這裡所說的「借用」不代表合法代理流量都會經過該網站,也不代表目標網站會替代理伺服器轉送使用者資料。目標網站的選擇、連線狀況與握手相容性,仍會影響部署結果。

XTLS Vision 如何減少 TLS in TLS

一般加密代理轉送 HTTPS 時,瀏覽器已將應用程式資料加密為 TLS 記錄,代理外層又會再加密一次。這能提供通道保護,但也會增加加解密與封裝的負擔,並可能形成可觀察到的巢狀流量特徵。Vision 的目標之一,是辨識合適的內層 TLS 流量,並在符合條件時,避免對已加密的有效負載再套用相同的外層加密路徑。

Vision 會處理連線初期的資料並進行填充,再依辨識出的 TLS 狀態決定後續路徑。對於受支援、可辨識且符合實作條件的 TLS 1.3 流量,可以進入最佳化轉送階段;這不代表所有位元組、所有協定和所有連線從一開始就直接透傳。非 TLS 流量或不符合條件的連線,仍需要通道提供安全保護。

流量情境應如何理解不能據此推論
符合條件的 TLS 1.3 流量可進入 Vision 的最佳化轉送路徑所有請求都會以相同比例加速
非 TLS 的 TCP 流量仍需保留通道提供的安全保護VLESS 的 none 會讓公網連線裸露傳輸
UDP 與 QUIC 流量應另外檢查 UDP 轉送與相關封裝的支援情況TCP 情境中的最佳化結論可直接套用
握手或驗證失敗先修正基本連線問題與參數不符啟用 Vision 就能略過驗證錯誤

Vision 不需要解密瀏覽器與目標網站之間的 HTTPS 內容。網站憑證仍由瀏覽器驗證,內層 TLS 的端對端關係也依然存在。REALITY 負責保護並驗證客戶端至代理伺服器的連線;網站 TLS 則保護瀏覽器至目標網站的應用程式資料,兩者的安全邊界不能混為一談。

判斷方式:先確認連線,再比較效能

確認同一個節點能穩定完成請求後,再以相同檔案、相同時段與相同並行數比較傳輸量和 CPU 使用率。不要用單次延遲測試判斷 Vision 是否進入最佳化路徑,也不要把伺服器頻寬差異歸因於 flow。

flow 與 fingerprint:逐項檢查客戶端設定

在 v2rayN 中,先確認目前節點使用 Xray 核心執行,再編輯現有的 VLESS 節點。常見介面可在選取節點後按右鍵,選擇「編輯伺服器」;手動新增通常位於「伺服器」選單中的 VLESS 新增項目。不同版本的選單文字可能不同,請以編輯視窗中的協定、傳輸、安全性與流控欄位為準,不要只看節點備註。

協定與傳輸

protocol
vless
encryption
none
flow
xtls-rprx-vision
傳輸方式
常見設定為 TCP;部分新版介面會標示為 RAW

這些值僅適用於伺服器已啟用相應組合的節點,並非所有 VLESS 節點都適用。

REALITY 安全參數

security
reality
fingerprint
chrome,或使用服務提供者指定的值
serverName
須與伺服器允許的服務名稱一致
公鑰與 shortId
使用該節點提供的配套參數

匯入訂閱後也要檢查安全類型,不能將 REALITY 參數填入一般 TLS 表單後就直接使用。

flow 代表流控方式,不是加密演算法的下拉選單。伺服器端使用者設定必須與客戶端相容;伺服器要求 Vision 時,客戶端留空可能導致驗證或流控檢查失敗。舊資料中的其他 XTLS 流控值,不能直接取代 xtls-rprx-vision。

fingerprint 控制客戶端 TLS ClientHello 的模擬特徵。chrome 是常見值,但不會讓代理程式變成瀏覽器,也不保證連線不會被辨識。填入任意字串可能會遭核心拒絕;頻繁切換指紋也無法修正錯誤的公鑰。除非有明確的相容性需求,建議保留節點提供的設定。

{
  "flow": "xtls-rprx-vision"
}

{
  "security": "reality",
  "realitySettings": {
    "fingerprint": "chrome"
  }
}

以上是分別呈現欄位所屬位置的兩段 JSON 摘錄,並非完整設定,不能直接合併後執行。第一段的 flow 位於 VLESS 出站使用者物件;第二段的安全設定則位於 streamSettings。實際設定還需要伺服器位址、UUID、服務名稱與金鑰相關欄位。公鑰在介面、分享連結及不同版本核心中的欄位名稱可能不同,請使用客戶端產生的設定,避免跨版本照抄。

連接埠、核心與記錄檔:依序檢查連線

排除問題前,先區分遠端連接埠與本機入口。節點使用的遠端連接埠由伺服器決定,443 只是常見設定,並非 REALITY 的必要條件。本機代理監聽連接埠則由客戶端決定;應用程式連到錯誤的本機連接埠時,即使遠端節點設定完全正確,請求也不會進入預期的出站路徑。

443
常見遠端 TCP 連接埠,請以節點設定為準
10808
本機代理連接埠範例,請確認監聽設定
TLS 1.3
掌握 Vision 最佳化條件所需的關鍵版本
  1. 記錄目前設定。保留節點位址、遠端連接埠、UUID、flow、SNI、公鑰與 shortId 的原始值。分享螢幕截圖時請遮蔽驗證資訊,也不要公開完整訂閱網址。
  2. 確認實際使用的核心。檢查啟動記錄中的核心名稱與版本。v2rayN 可以管理不同核心;介面版本更新,不代表目前執行的核心也已切換。Android 版 v2rayNG 使用 Xray 核心;不要把使用 V2Fly 核心的 v2flyNG 當成 REALITY 設定的替代入口。
  3. 檢查 TCP 是否可連線。遇到連線逾時或遭拒時,先檢查遠端監聽、防火牆與位址解析。TCPing 成功只能表示 TCP 連接埠可建立連線,不代表 REALITY 驗證已通過。
  4. 檢查握手與驗證。若連接埠可連線但請求失敗,請逐項比對服務名稱、公鑰、shortId、UUID 與 flow,並同步兩端系統時間。金鑰錯誤無法靠路由規則修正。
  5. 重新發送請求測試。儲存後重新載入節點,再發起新的網頁請求。瀏覽器現有連線可能仍在沿用舊工作階段;同時查看記錄中的出站標籤,確認請求確實進入目標代理。

如果核心能啟動、節點測試也能完成,但只有部分網站無法開啟,請改為檢查 DNS 與 routing。網域提前命中直連規則、應用程式未使用系統代理,或 UDP 請求未進入代理,都可能造成「節點正常、應用程式失敗」。此時反覆修改 REALITY 公鑰,只會增加新的變因。欄位說明可參考設定大全,初次連線步驟可參考使用指南。

REALITY 與 Vision 常見問題

VLESS 的 encryption 是 none,需要改成 auto 嗎?

不用。VLESS 出站通常使用 none,不能直接套用 VMess 的 auto 設定。編輯節點時應確認安全類型為 REALITY,並檢查公鑰、SNI、shortId 是否齊全;傳輸保護由相應的安全機制負責。

把 fingerprint 改成 chrome 就能連線嗎?

只有原本的指紋不受支援,或不符合設定要求時,修改才可能有幫助。請先保留服務提供者指定的值,再查看記錄檔判斷問題是逾時、握手失敗還是使用者驗證失敗。位址、UUID 或公鑰錯誤,都無法靠更換指紋修正。

REALITY 一定要啟用 Vision 嗎?

兩者職責不同,不能將 REALITY 與某個 flow 值視為同義詞。客戶端是否填入 xtls-rprx-vision,應與伺服器端使用者設定及核心支援範圍一致。取得現成訂閱時,請先使用匯入的設定,不要為了測速自行增刪 flow。

TCPing 延遲很低,為什麼網頁還是很慢?

TCPing 不會測到完整的代理驗證、目標網站連線與內容下載。請先進行實際連線測試,再以固定目標測試下載;同時檢查 DNS 查詢時間、封包遺失、伺服器負載與出口頻寬。如果只有特定網域出問題,查看路由規則的比對結果,比修改 SNI 更有幫助。

一般 TLS 節點可以直接改成 REALITY 嗎?

不能只修改客戶端的安全類型。伺服器必須先設定 REALITY 對應的金鑰、目標、服務名稱與使用者參數,再將配套資訊提供給客戶端。一般 TLS 的憑證設定無法取代這套驗證設定;現有節點應先由伺服器端完成部署,再重新匯入。