SaveClip

SNI检测:HTTPS为何无法隐藏你的目标网站

Last updated: 四月 9, 2026

解释为什么即使使用HTTPS加密,审查机构仍能通过SNI字段看到你访问的域名,以及ECH如何试图解决这个问题。

NordVPN — 中国可用
想象你用信封寄一封信,信的内容用密码加密了,别人打开不了。但信封外面用墨笔写着收件人地址——「某某新闻网站」。即使邮递员看不懂里面写了什么,也能从地址判断出你在读什么。这就是SNI检测的核心问题。

许多人误认为HTTPS就意味着完全隐私。事实更复杂。HTTPS确实加密了你和网站之间的通信内容,但建立这个加密连接的过程——称为TLS握手——暴露了一个关键信息:你要访问的域名。这个信息用一个叫SNI(Server Name Indication,服务器名称指示)的字段传输,完全是明文的。各国审查机构已经学会读这个字段,用它来阻止特定网站,甚至用户永远不会看到网站内容。


HTTPS为什么不能保护域名信息

要理解SNI为什么存在,需要先知道互联网的一个现实:许多网站共享同一个IP地址。就像一座大楼里有多个办公室,每个办公室有不同的门号一样。当你的电脑连接到一个IP地址时,服务器需要知道你具体想访问哪个网站。在互联网早期,这不是问题——一个IP一个网站。但今天,为了节省成本和IP地址,服务商让数千个网站运行在同一个IP上。

SNI就是解决这个问题的机制。在TLS握手还没完成、加密还没建立时,你的客户端会说:「嘿,我想和example.com讲话。」这个信息必须是明文的,因为服务器需要用它来找到正确的加密证书。只有确认了你要访问的域名,服务器才能建立安全通道。

这个设计在开放互联网上是合理的。但在审查者的眼里,这是一个完美的监控点。


审查机构如何利用SNI

一个审查系统不需要破解HTTPS加密。它只需要在你的网络流量通过时检查SNI字段,就能看到你的目标。如果那个域名在黑名单上,连接被立即拒绝。用户看到的通常是连接超时或者无法到达的错误。

这种阻止方式有两个优点——从审查者的角度:首先,它很便宜。审查系统不需要解密任何东西,不需要强大的计算能力,只需要基本的网络检查。其次,它很难被用户绕过,因为问题出在通信协议本身,而不是某个特定的工具或配置。

哪些地方使用SNI阻止?根据公开的研究,包括中国、伊朗、土耳其、俄罗斯和其他一些国家的审查基础设施都在进行SNI检测。这些国家有不同的动机和范围,但技术原理相同。


Encrypted Client Hello如何试图解决

安全研究人员意识到了这个漏洞,提出了改进方案。最新的是ECH(Encrypted Client Hello,加密客户端问候)。基本思想很简单:把包含SNI的握手消息本身也加密,这样审查者就看不到域名了。

ECH的工作原理需要一点复杂性的理解。在标准的TLS握手中,有一个鸡生蛋、蛋生鸡的问题:要加密信息,需要一个密钥;但密钥通常在握手中交换。ECH通过让服务器预先发布一个公钥解决这个问题——类似于把一个公开的锁放在网上,任何人都可以用它来加密信息,但只有持有私钥的服务器能解密。

较早的尝试,称为ESNI(Encrypted SNI),使用类似思路,但在实现上有技术局限。ECH是更完整的解决方案,不仅保护域名,还保护其他握手细节。

然而,ECH的部署非常缓慢。浏览器、服务器、证书颁发机构都需要更新。到2024年,大多数网站仍然不支持它。这意味着SNI检测仍然对绝大多数互联网用户有效。


现实中的权衡

这里没有完美的解决方案。加密SNI会增加技术复杂性,可能影响性能和兼容性。即使ECH变得普遍,审查机构也会寻找其他监控手段——IP地址、流量模式、DNS请求——这些都有各自的防御方法,但每一个防御都有代价。

理解SNI检测的重要性不在于恐慌,而在于知道为什么某些审查会发生,以及为什么简单的加密并不总是足够。互联网的隐私是多层的问题,需要在协议层、应用层、甚至国家政策层都有改进。

如果你想深入理解这个话题,可以探索DNS如何工作(另一个暴露你访问信息的地方)、VPN的原理(以及它们为什么可以隐藏SNI,但不总是安全的)、以及Tor网络如何采用不同的架构来解决这类问题。互联网的每一层都讲述一个关于透明度和隐私的故事。