很多代理或 VPN 节点显示“延迟正常”,但真正打开网页时失败,日志里出现 handshake failed、certificate verify failed、tls alert、no application protocol 等提示。这类问题往往不是单纯速度慢,而是 TLS 握手层没有完成。
快速答案
TLS 负责加密握手,SNI 告诉服务器要访问哪个域名,ALPN 用来协商 HTTP/2、HTTP/3 或其他应用层协议。VPN/代理客户端配置里的 server name、host、path、security、transport、alpn 只要有一项和服务端不一致,就可能出现测速可见但连接失败。
TLS 是什么
TLS 是 HTTPS 和许多现代代理协议使用的加密层。客户端会验证服务器证书、协商加密参数,然后建立安全通道。如果系统时间不对、证书过期、证书链缺失或中间网络篡改,TLS 握手会失败。
SNI 为什么重要
SNI 是 TLS 握手里携带的服务器名称。多域名服务器、CDN、反向代理都依赖 SNI 判断该返回哪张证书、转发到哪个后端。如果客户端 SNI 填错,服务器可能返回默认证书,最终触发证书不匹配或连接被拒绝。
ALPN 会影响什么
ALPN 用于协商应用层协议,例如 h2、http/1.1、h3。某些传输方式要求客户端和服务端 ALPN 一致,否则会出现握手完成但应用层无法通信的情况。尤其是 gRPC、HTTP/2、Reality、WebSocket、QUIC 场景,要关注这个字段。
排查顺序
- 确认手机或电脑系统时间准确,时区和日期错误会导致证书验证失败。
- 检查节点配置里的 SNI、host、serverName 是否和证书域名一致。
- 确认传输层类型没有写错,例如 TCP、WebSocket、gRPC、HTTP/2、QUIC。
- 查看客户端日志,区分 DNS 失败、TCP 失败、TLS 失败和应用层失败。
- 如果使用 CDN,确认端口、TLS 模式、回源协议和域名解析都一致。
测速为什么不能代表可用
很多客户端测速只测试 TCP 连接、延迟或简单握手,不一定完整模拟真实网页访问。节点延迟低,只说明网络路径可能通,不代表 TLS、SNI、ALPN、DNS 和规则都正确。此前的 节点测速和真实速度区别 也解释过类似现象。
什么时候应该换节点
如果多个客户端、多个网络环境都出现同样 TLS 错误,并且确认本地时间、SNI、传输层配置都正确,才更可能是服务端证书、CDN 或节点配置问题。否则先改本地配置,比盲目换节点更有效。
FAQ
SNI 可以随便填一个域名吗?
不建议。SNI 应该和服务端证书、CDN 配置或节点提供方要求一致。
证书错误一定是节点不安全吗?
不一定。系统时间错误、旧系统根证书缺失、域名写错都可能造成证书错误。
ALPN 不填可以吗?
普通 HTTPS 场景可能可以自动协商,但某些协议或服务端配置要求明确填写。