简单说下GFW怎么墙站的

尽量做到简单易懂,知道IP和DNS应该就能懂。我这里只解释GFW的主要功能,也就是屏蔽“不良”网站。GFW怎么审查邮件、屏蔽翻墙协议这些这里不说,不然篇幅太长。

一、IP封锁

GFW最早建立时,主要靠的是封锁IP。因为那时互联网还小,IPv4资源充裕,每个网站都能有一个独立的IPv4地址。但随着互联网的发展,IPv4不够用,许多网站共享同一IP,这让IP封锁这种一刀切的办法不再现实。当前,IP封锁仅针对Google、Facebook、Telegram、Wikipedia这样有自己IP段的大厂。

二、DNS投毒

DNS查询是明文的,GFW可以检测DNS查询中是否包含被禁域名,发现被禁域名后,GFW会利用其优势抢先应答,返回错误的DNS响应。通常,GFW会返回已经被墙的IP地址,例如Google、Facebook的IP地址。

DNS投毒可以通过修改本机HOSTS文件绕过,通过在本机提前将域名指向正确的IP地址,就能绕过DNS投毒。这也是为什么早期的一些翻墙教程教你改HOSTS上Google。这种方式翻墙已经不再有效,原因下面会说。

三、SNI过滤

GFW通过深度包检测技术,检测TLS握手中的SNI信息是否包含被禁域名,如果发现被禁域名,GFW将会返回错误的连接重置命令,导致连接中断。

SNI过滤通常和DNS投毒结合使用,这样即使改HOSTS文件,也一样无法正常访问被墙网站。

四、总结

以上就是GFW如何封禁网站的,与其说GFW是防火墙,它更像是一个结合IP封锁、DNS投毒、SNI过滤的大型审查机器。

本文的写作没有参考任何第三方来源,按照自己印象写的,如有错误请纠正。

8 个赞

没问题。

大方向没问题,我补充一些细节。
DNS投毒的IP地址就是IP封锁的地址(现在有些直接变成127.0.0.1了),这就是GFW设计最最最最最最最最最最最最最最最最巧妙精妙绝妙的地方,估计方滨兴当初想到这个设计都忍不住夸自己是天才。
等《冲浪小本本儿》续写再来讲解

另外就是对特定的一些网站会采取间歇性丢包的策略
https://web.archive.org/web/20211228092802/https://www.v2ex.com/t/824179
在GFW泄露文件公开后推测就是在内联模式完成

补充一下,GFW也会检测HTTP头中的Host字段是否包含违禁域名,只针对未加密的HTTP请求。

由于HTTPS加密了所有消息内容,GFW只能检测SNI。

HTTPS encrypts all message contents, including the HTTP headers and the request/response data. (HTTPS - Wikipedia)

GFW对GitHub和Steam有特殊定制。GitHub主域名访问间歇性不稳定,usercontent、pages域名完全被墙。Steam商店、社区完全被墙,CDN域名访问正常,可以正常下载游戏。

只有这两个网站是GFW不敢完全墙的。