在 v2rayNG 中建立 VLESS Reality 節點時,最容易出錯的不是協定名稱本身,而是把伺服器端提供的資料填入錯誤欄位。例如,Public Key 不是 UUID,Short ID 也不是伺服器連接埠;SNI、指紋與 Flow 則分別影響 TLS 偽裝、用戶端特徵和 XTLS 流控。只要其中一項不一致,常見結果就是連線逾時、TLS 交握失敗,或節點顯示已啟動但實際網頁無法開啟。
本文以 v2rayNG 1.10.x 的常見介面為基準,從新增伺服器開始,逐項解釋 VLESS Reality 所需參數、欄位對照、建議值與完成後的檢查方法。不同版本的按鈕文字可能略有差異,但「手動設定」或「新增節點」中的核心欄位大致相同。
本文適合需要在 Android v2rayNG 手動建立 VLESS Reality 節點的使用者。你將了解 UUID、伺服器位址、連接埠、Public Key、Short ID、SNI、指紋與 Flow 各自的用途,並依照完整步驟完成儲存、啟用、日誌檢查和連線驗證。
VLESS Reality 需要哪些資料
VLESS Reality 通常由 VLESS 使用者認證、TCP 傳輸和 Reality 安全層共同組成。VLESS 本身負責識別使用者,Reality 則利用 TLS 相關參數完成更接近正常加密連線的握手。這些欄位必須和伺服器端設定成對,不能只填入看起來相近的值。
| v2rayNG 欄位 | 伺服器提供的資料 | 用途 |
|---|---|---|
| 地址 | 伺服器 IP 或網域 | 連線到 Reality 入站 |
| 連接埠 | 通常是 443 | 伺服器監聽的 TCP 入口 |
| UUID | 使用者識別碼 | 通過 VLESS 認證 |
| Public Key | Reality 公開金鑰 | 完成 Reality 握手 |
| Short ID | 十六進位識別值 | 匹配伺服器端 Reality 識別 |
| SNI | 伺服器端指定的目標網域 | 填入 TLS serverName |
| 指紋 | 通常為 chrome | 模擬常見 TLS 用戶端特徵 |
其中「地址」是實際要連線的節點伺服器,不一定等於 SNI。地址可以是 IP 或節點網域;SNI 則是 Reality 設定中的目標名稱,常見為公開可用的 HTTPS 網域。除非服務提供者明確要求,否則不要把地址、SNI 和 Public Key 三個欄位互相替換。
先做好參數對照與格式檢查
開始輸入前,建議把訂閱內容或服務提供者給出的資料拆成幾行,再逐項核對。Reality 參數通常具有大小寫和字元格式要求,複製時如果多出空格、換行或引號,也可能導致握手失敗。UUID 中的連字號要保留,Public Key 和 Short ID 則通常不應加入空格。
VLESS 基本欄位
- 協定
- VLESS
- 地址
- 伺服器 IP 或網域
- 連接埠
- 依服務提供者資料,常見 443
- 使用者 ID
- UUID
- 加密
- none
VLESS 的加密欄位通常填寫 none,實際安全層由 Reality 與傳輸設定共同負責。
Reality 安全欄位
- 傳輸方式
- TCP
- 安全性
- REALITY
- Public Key
- 伺服器提供的公開金鑰
- Short ID
- 伺服器允許的十六進位值
- SNI
- 伺服器端指定的網域
Public Key、Short ID 和 SNI 必須來自同一組 Reality 設定,不能混用不同節點資料。
- UUID:通常是帶有連字號的標準識別碼,例如
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx。不要把節點名稱、訂閱短碼或 Public Key 填在這裡。 - Public Key:這是伺服器端 Reality 金鑰的公開部分,通常是一串 Base64URL 形式的字串,複製時要保留大小寫、底線和連字號。
- Short ID:通常是偶數位的十六進位字串,只能使用
0-9和a-f。若伺服器提供多個 Short ID,應選用服務端指定給該使用者或該設定的值。 - SNI:常見格式是網域名稱,例如
www.example.com,不要加入https://、路徑或連接埠。 - 指紋:常見值為
chrome。若伺服器設定或訂閱明確提供firefox、safari或其他值,才依照指定內容修改。
判斷重點:先確認參數來源,再檢查輸入格式
Reality 連不上時,最有效的第一輪檢查不是不停更換指紋,而是重新確認 Public Key、Short ID、SNI 是否來自同一個伺服器設定,並清除複製內容前後的空白字元。
在 v2rayNG 新增 VLESS Reality 節點
以下操作適用於手動建立節點的情況。如果你拿到的是完整的 VLESS 分享連結,也可以先匯入,再開啟節點編輯畫面核對欄位。手動輸入的好處是能清楚理解每個參數,匯入後也比較容易定位錯誤。
-
開啟新增頁面
開啟 v2rayNG,點選主畫面右下角的加號或「新增設定」按鈕,選擇「手動設定」中的 VLESS。若目前畫面顯示的是節點清單,先確認不是在訂閱分組編輯頁面。
-
填寫基本資料
在「地址」輸入伺服器 IP 或網域,在「連接埠」輸入服務提供者指定的數值,常見為 443。「使用者 ID」填入完整 UUID,「加密」保留 none。備註名稱可寫成「VLESS-Reality-主節點」,方便日後辨識。
-
選擇傳輸設定
將傳輸方式設為 TCP,安全性或底層安全性選擇 REALITY。不要同時套用 WebSocket、HTTP headers 或 gRPC 路徑,除非伺服器資料明確要求其他傳輸方式。
-
輸入 Reality 參數
在 Reality 設定區填入 Public Key、Short ID 和 SNI。指紋選擇 chrome,Flow 則依伺服器端要求填寫;常見 VLESS Reality 配置會使用 xtls-rprx-vision,但不應在服務端未啟用時自行猜測。
-
儲存並選取節點
返回節點編輯頁,確認協定、地址、連接埠和安全性沒有被重設,再點選儲存。回到主畫面後點選剛建立的節點,使其成為目前活動設定。
-
啟動 VPN 連線
點選主畫面的連線按鈕,依 Android 系統提示允許 v2rayNG 建立 VPN 連線。狀態顯示執行中後,先測試單一網頁,再查看日誌,不要在尚未確認節點可用時同時修改 DNS、分流和 TUN 相關選項。
部分 v2rayNG 版本會將 Reality 欄位收納在「底層安全性」或「進階設定」中。若找不到 Public Key,先確認協定確實選為 VLESS,再把安全性設為 REALITY;如果仍然沒有相關欄位,可能是核心版本或用戶端版本過舊,應先透過本站的前往下載頁面確認可用版本。
Flow、指紋與 SNI 應該如何選
Flow 是 VLESS 使用的流控設定,不能和傳輸方式混為一談。TCP 描述資料如何建立傳輸連線,Reality 描述安全握手方式,Flow 則是特定 VLESS 連線的流控模式。伺服器端若使用 XTLS Vision,v2rayNG 通常需要在 Flow 欄位填入 xtls-rprx-vision;若伺服器端未設定 Flow,則應保持空白,而不是為了「更安全」自行加入。
| 項目 | 常見起始值 | 錯誤時的表現 |
|---|---|---|
| 傳輸方式 | TCP | 連線建立方式不匹配,可能立即失敗 |
| 安全性 | REALITY | 無法完成 Reality 握手 |
| Flow | xtls-rprx-vision 或空白 | 認證後斷線、核心日誌顯示流控不相容 |
| 指紋 | chrome | 握手特徵不符合服務端限制 |
| SNI | 服務端指定網域 | TLS serverName 不匹配或握手被拒絕 |
指紋的作用是讓 TLS ClientHello 呈現接近特定常見客戶端的特徵。它不是瀏覽器代理,也不會改變節點出口。一般情況可以先使用 chrome;如果修改指紋後結果沒有改善,應回到 Public Key、Short ID、SNI 和伺服器位址檢查,因為指紋通常不是最常見的根本原因。
SNI 只填網域名稱,例如 www.example.com。不要填入節點地址後再自行加上路徑,也不要把 www.example.com:443 當成 SNI,除非特定用戶端欄位明確要求包含連接埠。Reality 的 SNI 必須屬於伺服器端設定允許的目標,隨意改成其他熱門網域不會自動提高連線成功率。
啟動後如何確認節點真的可用
v2rayNG 顯示 VPN 已啟動,只能代表本機服務成功建立,不能完全證明遠端 Reality 握手、代理出站和 DNS 都正常。建議依照由近到遠的順序驗證:先看用戶端狀態,再看核心日誌,接著測試網頁與出口位址。每次只修改一個參數,才知道哪個改動造成結果變化。
- 在節點清單確認目前選取的確實是剛建立的 VLESS Reality 節點,而不是同名的舊節點。
- 啟動連線後查看 v2rayNG 日誌,留意是否出現
REALITY、handshake、connection refused或timeout等訊息。 - 先開啟一個一般 HTTPS 網頁,再測試需要長連線或較大流量的網站,避免只用單一頁面的快取結果判斷。
- 確認系統顯示的 VPN 圖示仍在,並觀察 v2rayNG 的上行、下行流量計數是否持續增加。
- 中斷連線後再開啟同一網頁。如果中斷後立即無法存取,而連線時可以正常開啟,表示代理路徑大致生效。
常見錯誤與修正順序
若節點完全無法連線,先確認手機目前能否正常存取其他網路,再檢查伺服器地址和連接埠。若地址無法解析,問題可能是網域 DNS 或網路環境;若可以連到伺服器但握手失敗,則優先核對 Reality 參數,而不是先改路由模式。
錯誤:REALITY handshake failed
原因與解法:Public Key、Short ID、SNI 或指紋與伺服器端不一致;重新從同一份節點資料複製 Reality 欄位,並確認沒有加入空格或引號。
錯誤:connection timeout
原因與解法:伺服器地址、連接埠不可達,或目前網路封鎖了該入口;先用服務提供者給出的地址和連接埠測試,確認不是把 SNI 誤填成地址。
錯誤:connection refused
原因與解法:遠端連接埠沒有服務監聽、服務端防火牆拒絕,或填錯了連接埠;443 並非所有 Reality 節點的固定值,應以實際設定為準。
錯誤:TLS flow is not compatible
原因與解法:Flow 和服務端的 VLESS 設定不一致;確認伺服器是否要求 xtls-rprx-vision,不需要時將 Flow 清空後重新測試。
如果連線成功但部分網頁無法開啟,先不要立即重新建立節點。確認 v2rayNG 是否處於活動狀態、Android 是否仍允許 VPN、DNS 是否能解析目標網域,並查看是否啟用了只代理特定應用程式的分流設定。某些應用程式使用 UDP 或自訂 DNS,可能和基本 HTTPS 測試呈現不同結果。
最省時間的排錯順序
先驗證地址與連接埠是否可達,再核對 UUID,接著一次檢查 Public Key、Short ID、SNI,最後才調整 Flow、指紋與分流。這樣可以把「入口不可達」和「Reality 參數不匹配」分成兩類處理。
儲存前的完整檢查清單
完成設定後,可以按照以下清單做最後核對。若節點來自分享連結,建議開啟編輯頁逐項查看,而不是只相信節點名稱中寫著「Reality」就代表所有欄位正確。
- 協定為 VLESS,地址是實際伺服器地址,連接埠與服務資料一致。
- 使用者 ID 是完整 UUID,沒有少字元,也沒有把 Public Key 貼入。
- 加密欄位為 none,傳輸方式為 TCP,安全性為 REALITY。
- Public Key 來自正確節點,Short ID 僅包含合法十六進位字元。
- SNI 只包含服務端指定的網域名稱,不含協定前綴、路徑或多餘連接埠。
- 指紋通常使用 chrome,Flow 依伺服器端設定填寫或保持空白。
- 儲存後重新選取節點,啟動 VPN,查看日誌並完成中斷前後對照測試。
如果你使用的是訂閱節點,手動修改後要注意下一次更新可能覆蓋本機欄位。遇到同一節點反覆恢復舊設定時,應檢查訂閱更新規則或改用服務提供者重新產生的完整連結。需要查閱其他用戶端與核心操作時,可以前往查看教程,再依裝置平台選擇對應設定方式。