网站封锁方式完全解析(DNS封锁·SNI封锁·IP封锁)

同样是“打不开网站”,但采用的封锁方式不同,原理、症状和绕过难度也完全不同。弄清楚是哪一层在起作用,也有助于区分故意封锁和普通的网络故障。

打开一个网页要经过哪几步

访问网站要经过几个步骤,每一步都可能被拦截。首先,设备通过DNS查询域名对应的IP地址;然后向这个IP地址建立连接;如果是HTTPS网站,还要进行TLS握手,握手的第一条消息会说明想访问哪个服务器;最后才是发送请求并接收网页内容。各种封锁方式,本质上就是在这四个环节之一进行干预。

DNS封锁——在域名解析阶段拦截

在把域名转换为IP地址的DNS查询阶段,故意返回错误结果或者干脆不响应的方式。运营商或管理员在指定的DNS服务器上设置,当查询到特定域名时,返回一个提示页面的地址而非真实IP,或者干脆不作任何响应。这种方式实现起来相对简单,但用户只需换用其他公共DNS服务器(如1.1.1.1、8.8.8.8),或使用DNS over HTTPS(DoH),就能轻易绕过。典型症状是提示“找不到服务器”或跳出意料之外的提示页,而换一个网络同一网站却能打开。

IP封锁——直接拦截目标地址本身

防火墙或路由器直接拦截发往特定IP地址的所有数据包,与域名无关。IP封锁只根据目标IP判断是否丢弃数据包,所以无法靠更换DNS绕过。但缺点是当多个网站共用同一个IP(比如同一CDN或云服务商)时,很容易发生“过度封锁”——把无关的其他网站也一并封锁掉。典型症状是域名解析正常,连接却一直卡住直到超时。

URL与关键词过滤

针对未加密的HTTP请求的地址或内容,一旦发现包含特定字符串就予以拦截的方式。代理服务器或防火墙会检查HTTP请求中的URL路径或页面内容,一旦命中屏蔽词列表,就切断连接或跳转到提示页面。由于路径和内容在HTTPS中是加密的,这种方式原则上无法直接应用于HTTPS请求,面对如今占据网络流量绝大多数的HTTPS流量,局限性十分明显。若要在HTTPS上使用,通常需要机构在受管设备上安装自己的证书并解密流量。

SNI封锁——截获加密前暴露的域名信息

通过窥探HTTPS连接初期TLS握手阶段以明文传输的SNI(服务器名称指示)字段来实施拦截的方式。HTTPS虽然会加密实际数据,但连接初期的ClientHello消息中包含的SNI字段,为了确认要连接哪台服务器,会以未加密的明文形式传输。SNI封锁正是在通信路径中截获这段明文域名,一旦命中黑名单就强制断开连接,这种做法在多个国家都曾引发争议。随着与TLS 1.3搭配使用的加密客户端问候(ECH)逐渐普及,SNI封锁预计会变得越来越难以实施。典型症状是连接在握手阶段被重置,而共用同一IP的其他网站却能正常访问。

深度包检测(DPI)——深入分析数据包内容的精细手段

深度包检测(Deep Packet Inspection)不仅查看地址和端口,还会分析数据包内部的实际内容或流量特征,判断具体是哪种应用、协议,是否包含特定文件格式。它既被用于国家层面的互联网审查,也被企业用于流量管理(QoS)。实施成本和处理负担都较高,但却是最精细的流量识别手段。即使内容经过加密无法读取,有时也可以根据数据包的大小和时间间隔等特征判断流量类型。

各种封锁方式的绕过难度比较

一般来说,DNS封锁通过更换DNS服务器或使用加密DNS(DoH、DoT)就能较容易地绕过。SNI封锁可以通过加密客户端问候(ECH)或VPN绕过。相比之下,直接拦截目标IP的IP封锁,以及分析流量内容的DPI则相对更难突破,除非借助VPN彻底改变流量的出口路径。实际中,国家或机构级别的封锁系统往往会把这几种方式叠加组合使用,所以突破了其中一层,可能马上又遇到下一层。

如何判断自己遇到的是哪一种封锁

几个简单的检查可以缩小范围:如果域名在你的网络上解析失败,换一个公共DNS就能解析,问题多半出在DNS层;如果解析出的地址正确,但连接一直超时,要怀疑是IP封锁;如果连接刚开始建立、安全握手阶段就被重置,要怀疑是SNI封锁;如果普通HTTP页面被跳转到提示页,则很可能是URL过滤。把手机网络和家庭网络的结果对比一下,是一个简单有效的第一步。

附带影响与过度封锁

较粗糙的封锁手段会波及目标之外的内容。IP封锁可能让共用该地址的所有网站一起打不开,对上级域名实施的DNS封锁则可能让其所有子域名也无法访问。在多个国家都曾有共享主机地址被封锁而造成误伤的记录,这也是为什么对封锁命令的技术和法律审查常常关注是否符合比例原则。

想进一步了解加密DNS吗

DNS over HTTPS(DoH)和DNS over TLS(DoT)都会对DNS查询本身进行加密,这也正是它们能有效绕过基础DNS封锁的原因。它们不再发送可被运营商DNS服务器(或任何监听流量的一方)检查和篡改的明文查询,而是把请求包裹进加密通道,只有最终未被篡改的结果才会到达用户手中。DoH与普通网页流量使用相同的端口,更难被单独识别,而DoT使用专用端口,网络更容易将其整体封掉。

VPN会带来怎样的变化

VPN会把流量通过加密隧道转发到其他地方的服务器,因此从本地网络的角度看,能看到的只是发往VPN服务器IP地址的加密流量——上述DNS、SNI、内容检测等封锁方式所依赖的信息都不再可见。这正是VPN能够一次性绕过大多数封锁手段的原因,不过它并不会改变目标网站本身的封锁机制,而且本地网络看不到的内容,VPN服务商是能够看到的。一些网络也会封锁已知的VPN服务器,这又回到了IP封锁的问题上。

并非所有封锁都是审查

封锁并不只是审查手段。学校会为学生过滤内容,企业会拦截恶意软件和钓鱼域名,家长会在家用路由器上设置基于DNS的过滤,许多国家的法院也会责令运营商封锁盗版或违法内容网站。同样的技术服务于截然不同的目的,真正的争议在于由谁决定封锁什么、过程是否透明、受影响的人能否申诉。

关于绕过封锁的说明

各国法律以及各单位、学校的规定对绕过封锁的态度差别很大,即便在法律上并不违法,违反机构的使用规定也可能带来后果。本页仅出于技术科普目的说明原理,不构成法律意见。

常见问题

公司防火墙打不开某个网站,原理是一样的吗?

是的,原理和国家层面的封锁并没有太大区别。公司或学校的网络防火墙也常常组合使用DNS封锁、URL过滤和SNI封锁,来限制访问特定网站或服务。

SNI封锁为什么会引发争议?

SNI封锁虽然只窥探HTTPS连接中极小的一部分信息(域名),但由于涉及对通信内容进行监听这一做法本身的担忧、可能连带影响使用同一服务器的无关网站,以及围绕国家直接限制访问特定网站所引发的社会争论,这种方式在多个国家都曾成为热议话题。

为什么同一个网站在这个网络打不开,换个网络就行?

每个网络运营方各自设定过滤规则。网站可能被你所在运营商的DNS或防火墙拦截,却能通过手机网络、公司网络或其他国家访问,因为封锁发生在你的流量所经过的路径上,而不是网站本身。

用了HTTPS就不会被封锁吗?

不会。HTTPS保护的是连接内容不被读取或篡改,但网络仍能看到目标IP地址,很多情况下还能通过SNI字段看到域名,所以依然可以选择切断连接。

加密客户端问候(ECH)能终结SNI封锁吗?

它让封锁变得更困难,因为服务器名称被隐藏了,但并不是万能的。网络仍然可以按IP地址封锁,或者直接封锁ECH这一机制本身,而且普及程度也取决于浏览器、服务器和CDN是否支持。