配 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。