VLESS REALITY 是一種躲在別人網站 TLS 交握後面的 VLESS 代理伺服器。VLESS 是 Xray 專案的輕量代理協定,而 REALITY 取代了它原本的 TLS 層:伺服器回應時就像一個真實、毫不相干的網站,因此不需要自己的網域或憑證,只有握有它公鑰和 short ID 的用戶端才能連到代理。它通常會搭配 Vision 流控(xtls-rprx-vision)一起使用。
本文會逐一說明每個環節、它們如何組合在一起,以及它們的不足之處。
VLESS 是什麼?
VLESS 是一種無狀態的代理協定。每條連線都以一段簡短的標頭開始:版本、使用者 ID(UUID)、指令(TCP 或 UDP)和目的地,接著才是你的資料。
差不多就這樣而已。VLESS 沒有內建加密。它的前身 VMess 會自己加密每個封包;VLESS 則把這件事交給下面那一層,通常是 TLS 或 REALITY。不重複加密兩次,手機和伺服器都能省下一些運算。
VLESS 在 2020 年由 V2Ray 社群提出,目前在 Xray 中持續開發,sing-box 和 Mihomo 也都支援。想看兩種協定的並列比較,請讀 VMess 與 VLESS 比較。
傳輸
VLESS 可以直接跑在 TCP 上,也可以包在承載連線的傳輸裡:
- WebSocket、HTTP Upgrade 和 gRPC,常用來穿過 CDN。
- XHTTP(前身為 SplitHTTP),Xray 以 HTTP 為基礎的傳輸,在 Xray 中取代了 HTTP/2 和 QUIC。
REALITY 可搭配無傳輸、gRPC 或 XHTTP 使用。
XTLS Vision 是什麼?
當你透過 TLS 代理打開 HTTPS 網站時,瀏覽器自己的 TLS 連線會在代理的 TLS 連線裡傳送。這種「TLS 套 TLS」有可辨識的樣貌:內層交握的封包大小和時序,會透過外層加密顯露出來。
Vision 流控(xtls-rprx-vision)就是為此而生。它會填充內層 TLS 交握最初的幾個封包,讓封包大小不再那麼明顯。內層連線完成加密後,Vision 就能直接放行資料,不必再加密第二次。
Vision 需要 VLESS 不搭配傳輸,並使用 TLS 或 REALITY。另一個變體 xtls-rprx-vision-udp443 還允許傳往 443 連接埠的 UDP(QUIC)。較舊的 XTLS 流控,例如 xtls-rprx-direct,已從 Xray 中移除。
REALITY 是什麼?
一般的 TLS 代理需要網域名稱和憑證。架設起來很費工,而且網域和網站內容太單薄的伺服器,反而容易引人注意。
REALITY 在 2023 年加入 Xray,採取了不同的做法。伺服器會設定一個目標:一個它借用的真實網站,例如 www.example.com。接著:
- 你的用戶端以目標網站的名稱作為 SNI,發起一個 TLS 1.3 交握,交握的樣子模仿真實瀏覽器。
- 交握中藏著一個值,只有握有伺服器公鑰和有效 short ID 的用戶端才算得出來。
- 如果這個值正確,伺服器就自己完成交握,你的用戶端再用同一把共用金鑰驗證它。VLESS 連線就在裡面執行。
- 如果不正確,例如有人在探測伺服器,伺服器就把連線轉給真正的目標網站。訪客拿到的是真實的網站和它真正的憑證。
因此伺服器永遠不需要自己的憑證,而探測者看到的只是一個普通網站。
公鑰、short ID、SNI 與指紋
REALITY 伺服器會提供你四項設定,全部都必須和伺服器一致。
| 設定 | 連結參數 | 說明 |
|---|---|---|
| 公鑰 | pbk |
伺服器的 X25519 公鑰,是一串 43 個字元的 Base64 字串。私鑰那一半留在伺服器上。 |
| Short ID | sid |
伺服器接受的一段短十六進位字串,最多 16 個字元。伺服器可以列出好幾個,每位使用者或每台裝置一個。 |
| 伺服器名稱(SNI) | sni |
伺服器借用的網站,必須是伺服器允許的名稱之一。 |
| 指紋 | fp |
要模仿哪一種瀏覽器的 TLS 交握,例如 chrome、firefox 或 safari。 |
指紋之所以重要,是因為 TLS 函式庫的交握和瀏覽器的交握看起來不一樣。模仿瀏覽器,才能讓交握和伺服器假扮的網站保持一致。
VLESS Encryption
Xray 在 2025 年加入了 VLESS Encryption,這是 VLESS 自己的選用加密層。它使用後量子金鑰交換(ML-KEM-768 搭配 X25519),用戶端的值以 mlkem768x25519plus 開頭。它可以不搭配 TLS 單獨使用,也可以疊在 TLS 之上,包括搭配 Vision。
它還很新,你遇到的大多數伺服器仍使用 TLS 或 REALITY,並設定 encryption=none。匯入連結、訂閱或 Xray 設定時,Potatso 會保留這項設定。支援的模式請見 VLESS 參考文件。
優點與缺點
優點:
- 不需要網域或憑證。 REALITY 借用真實網站的交握。
- 能抵抗主動探測。 沒有金鑰的用戶端會被轉給真實網站。
- 輕量。 VLESS 幾乎不增加額外負擔,Vision 也避免了重複加密。
- 彈性高。 同一個協定可以跑在原始 TCP、WebSocket、gRPC 或 XHTTP 上,搭配 TLS 或 REALITY。
缺點:
- 更難偵測,但不是無法偵測。 流量模式仍可能被分析。而 IP 位址明顯不屬於被借用網站的伺服器,也可能顯得格格不入。
- 選擇目標網站要謹慎。 它必須支援 TLS 1.3,選得不好可能讓伺服器更顯眼,甚至無法運作。
- REALITY 不能走 CDN。 不像 TLS 上的 WebSocket,REALITY 伺服器必須直接連線。
- 設定必須完全相符。 公鑰、short ID 或 SNI 有誤時,看起來只會像逾時或一般網站,不會有明確的錯誤訊息。
- UDP 需要另外開啟。 許多用戶端(包括 Potatso)預設對 VLESS 關閉 UDP,要你自己打開。
VLESS REALITY 與其他協定比較
| VLESS + REALITY | VLESS + TLS | Trojan | VMess | Hysteria 2 | |
|---|---|---|---|---|---|
| 加密 | REALITY(TLS 1.3) | TLS | TLS | 內建加密,可選 TLS | QUIC 中的 TLS 1.3 |
| 需要網域和憑證 | 否 | 是 | 是 | 僅搭配 TLS 時 | 是,或釘選的自簽憑證 |
| 可透過 CDN | 否 | 可以,搭配 WebSocket、gRPC、XHTTP | 可以,搭配 WebSocket 或 gRPC | 可以,搭配 WebSocket 或 gRPC | 否 |
| 執行於 | TCP | TCP | TCP | TCP | UDP(QUIC) |
| 遭探測時回應 | 被借用的網站 | 你自己的網站(若有設定) | 備援網站(若有設定) | 視設定而定 | 偽裝網站(若有設定) |
想看更完整的比較,請見代理協定比較,或延伸閱讀 Trojan 和 Hysteria 2。
VLESS REALITY 連結長什麼樣子
服務商通常會給你一條 vless:// 連結。以下是一條搭配 REALITY 與 Vision、借用 www.example.com 的連結:
vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=reality&sni=www.example.com&fp=chrome&pbk=Z84J2IelR9ch3k8VtlVhhs5ycBUlXA7wHBWcBrjqnAw&sid=0123abcd&type=tcp&flow=xtls-rprx-vision#REALITY-Vision
從左到右依序是:
3971e1b2-…是你的使用者 ID。vless.example.com:443是伺服器與連接埠。security=reality開啟 REALITY。sni=www.example.com是被借用的網站。fp=chrome是指紋。pbk和sid是公鑰和 short ID。type=tcp表示不使用傳輸,flow=xtls-rprx-vision開啟 Vision。#REALITY-Vision是伺服器在 App 中的名稱。
改用一般 TLS 的連結則會是 security=tls,而且沒有 pbk 或 sid。所有參數都列在 VLESS 參考文件中。
在 iPhone 上使用 VLESS REALITY
Potatso 是 iPhone 與 iPad 上的免費代理用戶端,支援搭配 REALITY、Vision、XHTTP 和 VLESS Encryption 的 VLESS,並已用 Xray 和 sing-box 伺服器實測。照著 iPhone 設定 VLESS REALITY 教學操作,幾分鐘內就能匯入連結並連線。
常見問題
- VLESS REALITY 簡單來說是什麼?
- 就是用 REALITY 取代一般 TLS 的 VLESS 代理伺服器。伺服器會出示另一個真實、毫不相干的網站的 TLS 交握,所以不需要自己的網域或憑證;只有知道它公鑰和 short ID 的用戶端,才能連進代理。
- VLESS 有加密嗎?
- VLESS 本身沒有內建加密,而是靠底下的 TLS 或 REALITY 來加密你的流量。Xray 較新的 VLESS Encryption 另外提供選用的加密層,但大多數伺服器仍使用 TLS 或 REALITY。
- xtls-rprx-vision 是什麼?
- 它是 Vision 流控,用於不搭配額外傳輸、走 TLS 或 REALITY 的 VLESS。它會填充你透過代理開啟的 TLS 連線開頭,讓代理 HTTPS 流量中「TLS 套 TLS」的特徵更難被辨識。
- VLESS REALITY 能完全不被偵測嗎?
- 沒有任何協定能完全不被偵測。REALITY 讓伺服器很難透過主動探測辨識出來,因為陌生的訪客看到的是一個真實網站;但流量分析和其他線索,例如 IP 位址明顯不屬於被借用的網站,仍可能讓它露餡。
- iPhone 可以用 VLESS REALITY 嗎?
- 可以,只要用支援 REALITY 的用戶端 App。Potatso 是 iPhone 與 iPad 上的免費代理用戶端,能匯入帶有 REALITY 和 Vision 的 vless:// 連結,並連上 Xray 與 sing-box 伺服器。