本文適合已匯入 VLESS 訂閱,卻不清楚 REALITY 與 flow 欄位差異的 Mac 和 Android 使用者。先拆解應用程式 TLS、代理傳輸與 VLESS 三層,再說明 Vision 如何在特定條件下減少重複加密,最後整理 v2rayN 與 v2rayNG 的欄位核對方式及疑難排解順序。效能提升取決於流量類型與執行環境,並非改個流控名稱就能加速。
TLS 握手與代理通道:重複加密發生在哪一層
瀏覽器連線至 HTTPS 網站時,會先與目標網站協商 TLS。握手過程會確認協定參數、驗證網站身分並建立工作階段金鑰;之後的 HTTP 要求與回應則由 TLS 記錄層加密。即使要求經由代理傳送,網站這一層 TLS 通常仍是在瀏覽器與網站之間端對端運作。
如果代理用戶端與代理伺服器之間又建立一條 TLS 通道,瀏覽器產生的 TLS 密文就會成為外層通道的承載資料。用戶端再次加密已加密的資料,伺服器先解開外層,再將內層密文轉送至網站。這就是常說的 TLS over TLS,但兩層保護的是不同連線。
重複加密會增加密碼運算、記錄封裝與記憶體資料搬移的負擔,但不一定是連線緩慢的主因。首次開啟網頁還會受到 DNS 查詢、跨網路往返時間、封包遺失及伺服器排隊影響。Vision 只最佳化特定資料路徑,無法一併消除這些成本。
- 內層 TLS:瀏覽器與目標網站之間的加密;代理伺服器通常不會持有目標網站的工作階段金鑰。
- 外層安全傳輸:用戶端與代理入口之間的保護;REALITY 負責這一側的握手與驗證。
- VLESS:負責代理要求中的使用者識別、目標位址等資訊,本身並不是用來加密業務資料的演算法。
REALITY:真實網站憑證與用戶端驗證
REALITY 是 Xray 的傳輸安全機制。常見設定會指定一個真實 TLS 目標網站,並選擇與該網站相容的伺服器名稱及握手特徵。它運用目標網站真實的握手資料與憑證外觀,讓入口呈現近似一般 TLS 服務的行為,同時為預先設定的用戶端提供專屬驗證途徑。
「借用憑證」不代表下載一張憑證就能冒充任何網站,也不表示代理伺服器取得了目標網站的私鑰。REALITY 用戶端除了處理 TLS 握手,也會使用預先設定的公鑰等資訊驗證對應的 REALITY 伺服器。真實網站憑證不能取代使用者設定的公鑰。
| 概念 | 實際用途 | 常見誤解 |
|---|---|---|
| 目標網站 | 為 REALITY 握手提供目標,並須符合所用實作的要求 | 不是代理轉送後所有業務要求最終連線的網站 |
| serverName / SNI | 在握手中指定伺服器名稱,必須符合伺服器設定 | 不是連線位址;不能任意填入常見網域名稱 |
| 公鑰 / pbk | 對應伺服器私鑰,用於 REALITY 驗證程序 | 不是網站憑證內容,也不是 VLESS 使用者 ID |
| shortId / sid | 參與 REALITY 用戶端識別,必須符合伺服器允許的值 | 不是 VLESS 使用者 ID 的縮寫 |
未通過驗證的連線可能依照 REALITY 設定與實作轉往目標網站;這不代表所有探測都會收到完全相同的回應。目標網站是否連得上、TLS 行為是否相容,以及入口位址與網路路徑的特徵,都會影響結果。若目標選錯,通常無法只靠修改用戶端指紋解決。
XTLS Vision:何時能減少一層加密
Vision 對應常見的 flow 值 xtls-rprx-vision。它不只是設定標籤,也包含辨識連線初期資料、填充資料及後續轉送的處理方式。兩端都必須支援並正確設定;只修改用戶端欄位可能會直接導致連線失敗。
對於能辨識且符合條件的內層 TLS 1.3 流量,Vision 可在握手階段之後切換資料處理路徑,讓已受內層 TLS 保護的應用程式資料不再重複經過外層 TLS 記錄加密。目標網站的 TLS 仍然存在,瀏覽器也仍會驗證憑證;減少的是代理層對這部分密文的重複處理。
- 建立外層連線:用戶端先與代理伺服器完成安全連線及驗證,並須核對 REALITY 參數。
- 傳送代理要求:VLESS 帶上使用者身分與目標資訊,Vision 處理初期資料並判別內層協定特徵。
- 確認是否符合條件:只有能辨識且符合要求的 TLS 流量,才可能採用減少外層加密的路徑。
- 轉送後續資料:內層 TLS 密文會繼續傳送;不符合條件的流量不應被理解為「直接以明文傳送」。
一般 HTTP、無法辨識的流量、UDP,以及 QUIC 使用的 UDP 路徑,都不能直接套用「TLS 1.3 密文直通」的說法。TLS 1.2 流量也不能簡單視為具有相同的最佳化效果。是否能採用高效路徑,還取決於實際核心實作、傳輸組合與作業系統。
確認方式:先檢查核心與 flow,再評估速度
在用戶端節點編輯畫面確認 VLESS、REALITY 與 xtls-rprx-vision,再查看執行記錄,確認實際啟動的是支援這種組合的核心。只看節點顯示名稱,無法判斷 Vision 是否生效。
協定數值:TLS 版本、443 連接埠與效能限制
以下數值是協定與常見部署參數,並非本文的速度測試結果。這些數值有助於分辨「連線入口為何」與「資料如何處理」,不能據此推斷特定訂閱節點的實際速度。
大型檔案傳輸若讓用戶端或伺服器 CPU 滿載,減少重複加密可能降低 CPU 使用率並提升可用吞吐量。有些環境也能採用更有效率的資料搬移方式。不過,Mac 桌面用戶端與伺服器的系統能力不同,不能將某個平台的零拷貝表現直接套用到所有裝置。
延遲改善也有條件。負載較高時,減少處理開銷可能縮短排隊時間;閒置連線上的單次小型要求,延遲通常仍由網路往返時間主導。Vision 不是壓縮演算法,也不會縮短代理伺服器與目標網站之間的實際距離。
- 比較 CPU 使用率時,應同時觀察用戶端與伺服器,避免只看到本機使用率下降,卻忽略伺服器已成為瓶頸。
- 比較吞吐量時,固定相同的入口、目標資源、路由規則與並行數;每組至少重複 3 次並保留結果。
- 比較網頁延遲時,應區分首次連線與重複使用的連線;DNS 快取與連線重用會明顯影響結果。
- 不要直接移除 flow 來做所謂的對照測試。應由伺服器提供各自相符的設定,否則比較的只是成功連線與設定錯誤。
v2rayN 與 v2rayNG:匯入訂閱後核對欄位
使用桌面版 v2rayN 時,先匯入訂閱並更新群組,再開啟對應節點的編輯視窗核對欄位。Android 版 v2rayNG 使用 Xray 核心,可檢查相同概念的設定。v2flyNG 使用 v2fly 核心,不能因為它也能識別部分 VLESS 連結,就推定支援 Xray 的 REALITY 與 Vision 組合。
不同版本的編輯介面、翻譯與底層欄位名稱可能不同,因此以下依參數用途列出檢查項目,不將特定版本的選單視為固定標準。分享連結常見的 pbk 對應 REALITY 公鑰資訊;介面上也可能使用不同標籤,請以目前核心的要求為準。
| 檢查項目 | 預期內容 | 錯誤時的處理方式 |
|---|---|---|
| 協定與傳輸 | VLESS;較新介面也可能將傳統 TCP 設定標示為 RAW | 還原為訂閱提供的原始值,不要任意改成其他傳輸方式 |
| 安全傳輸 | security=reality | 確認是否誤匯入為一般 TLS |
| 流控 | flow=xtls-rprx-vision | 對照伺服器設定,不要根據節點名稱自行填入 |
| 位址與連接埠 | 服務提供者指定的入口位址與連接埠 | 入口可使用 443 或其他連接埠 |
| 使用者 ID、SNI、公鑰、shortId | 逐項與伺服器設定相符 | 重新更新訂閱;手動輸入時檢查空格與是否漏字 |
| 用戶端指紋 | 使用目前核心支援且符合節點要求的指紋 | 不要直接將完整的瀏覽器版本字串填入指紋選項 |
分享連結中也常見 encryption=none。這裡描述的是 VLESS 協定層,不代表整條連線都沒有加密;REALITY 負責外層安全傳輸,HTTPS 業務資料也有內層 TLS。不要為了讓欄位看起來「更安全」,擅自改成協定不支援的值。
握手失敗、連線成功卻無法瀏覽:依現象排查
排查時先區分三個階段:入口 TCP 是否可連線、REALITY 驗證是否成功,以及應用程式流量是否進入代理。每次只修改一項,並記錄相應的執行記錄。連續更換 SNI、連接埠、flow 與指紋,會讓故障原因更難判斷。
匯入成功,為什麼一連線就顯示握手失敗?
先啟用系統自動校時,再核對入口位址、SNI、公鑰與 shortId。REALITY 的時間檢查可能會因系統時間明顯錯誤而導致驗證失敗。若入口可連線且所有欄位都相符,請服務端檢查目標網站的連線狀態與握手要求,不要先關閉憑證驗證。
執行記錄顯示不支援 flow,可以刪除這個欄位嗎?
先確認實際執行的是支援 Vision 的 Xray 核心,並檢查啟動記錄是否有設定解析錯誤。用戶端與伺服器的設定必須相符;移除 xtls-rprx-vision 並非通用解法。更新用戶端後,應重新啟動核心,再使用原訂閱設定測試。
節點測試通過,Mac 瀏覽器還是無法開啟網頁?
確認 v2rayN 是否已設定系統代理,再前往 macOS「系統設定」→「網路」→目前的網路服務→「詳細資訊」→「代理」,核對實際位址與連接埠。系統代理只會影響遵循該設定的應用程式;命令列工具可能需要另外設定。連接埠請以用戶端目前的設定為準。
啟用 TUN 還是很慢,改用 Vision 有幫助嗎?
先在相同節點上關閉 TUN,只保留系統代理進行比較,以排除虛擬網卡路由、DNS 與其他網路工具的衝突。TUN 決定流量如何進入用戶端;Vision 則決定部分對外傳輸資料的處理方式。也應檢查目標流量是否被路由規則指定為直連。
如果執行記錄顯示 TCP 連線逾時,應先檢查網路路徑、入口監聽或防火牆問題;如果驗證完成後只有特定網站異常,再檢查該網站的解析結果、出口連線狀況與分流規則。不要把所有連線錯誤都歸咎於 REALITY,也不要反覆切換全域模式來掩蓋欄位錯誤。
操作順序:設定相符後再比較效能
先讓單一節點、單一連線方式與一個 HTTPS 目標穩定運作,再分別測試系統代理與 TUN。只有連線路徑明確,CPU 使用率與延遲的變化才有比較意義。