設定 VLESS 或 VMess 時經常碰到三個看起來差不多的欄位:位址、SNI(有的用戶端寫作 serverName),還有偽裝網域 / Host。它們在不同的網路層上運作,值可以相同也可以不同,得分開理解。
位址:真正去連誰
TCP 連線的目標,可以是 IP,也可以是網域。填網域時用戶端會先解析成 IP 再連。走 CDN 的節點,這裡填的通常是 CDN 的位址,而不是你自己的伺服器。
合作推薦訂閱連結從哪來?本站合作機場註冊即送 1GB 香港高速體驗流量,可直接一鍵匯入。取得高速節點SNI:TLS 交握時報的名字
TLS 的 ClientHello 裡有個明文欄位,告訴對方「我要存取哪個網域」,伺服器據此挑選憑證。SNI 和憑證對不上,交握直接失敗,日誌裡會看到 handshake failure 或憑證名稱不符。
順帶一提,SNI 是明文的,中間設備能看到你存取的網域——這正是很多封鎖手段的抓手,也是 REALITY 要借用真實網站網域的原因。
Host:HTTP 層的網域
WebSocket 或 HTTP 傳輸才有這一項,寫在 HTTP 請求標頭裡。CDN 靠它決定把請求回源到哪個站台,所以走 CDN 時 Host 必須是你在 CDN 上設定的那個網域,填錯了 CDN 會直接回傳 404 或 502。
典型組合
- 直連自己的伺服器:位址 = 伺服器 IP,SNI = 憑證網域,Host 一般同 SNI。
- 套 CDN:位址 = CDN 優選 IP 或 CDN 網域,SNI = 你的網域,Host = 你的網域。
連不上時不要順手勾 allowInsecure。這個開關只是讓用戶端不驗證憑證,交握會過,但中間人也能過。真出問題應該去核對 SNI 和憑證,見 WebSocket + TLS + CDN。