长城防火墙(GFW)是如何封锁网站的?又该如何突破封锁?
长城防火墙的目的就是禁止国内用户直接访问国外某些网站,比如:谷歌绝大部分服务/tiktok/Facebook/推特等等
我们来简单了解一下他是如何实现封锁的。
DNS 污染
封锁的原理
DNS 叫做 域名服务,可以理解为一个保存了所有域名和 IP 对应关系的数据库,主要作用就是通过域名查询 IP。我们的程序最终是和返回的 IP 进行通讯。
所以DNS污染,其实就是返回一个假的IP,让我们无法正确的打开我们想访问的网站。
可以理解为一个人给你瞎指路,给你一个错误的地址,这样当然无法把数据正确的发到目标,于是就表现为打不开,被墙。
突破封锁的方法
在多年前,还可以通过修改 hosts 文件来访问谷歌。这种原理就是绕过了DNS污染。
这是因为 DNS 解析的过程大致是这样的,首先会检测本地 hosts 文件,本地没有找到要查询的域名对应的IP,再向DNS服务器发起请求。
所以我们直接修改 hosts 文件,让被墙的域名 指向 真实的目标服务器。这样就可以正常访问被墙的网站了。
可惜道高一尺魔高一丈,哪怕我们绕过DNS污染,GWF 还有 IP 黑名单等着我们。
IP黑名单
封锁的原理
这个是最容易理解的,只要检测到我们访问的目标 IP 在他的黑名单中,直接就不给我们转发数据包即可,毕竟整个物理通道都在他们手里。
突破封锁的方法
搞一个国外服务器进行中转就行,我们把本地 hosts 文件中添加域名对应我们的中转服务器,中转服务器收到数据就转发给目标,举个例子。
这个ip是谷歌真实地址:172.217.194.113
由于已经该 IP 进入 GFW 黑名单了,所以我们直接修改hosts文件也没法访问。
这时候只需要借助一个不在黑名单内的国外服务器,比如ip是:1.2.3.4
这样我们只需要在hosts文件中 让 www.google.com 解析到 1.2.3.4,当我们访问谷歌的时候,数据就会发到 1.2.3.4。
我们再 1.2.3.4 上面配置防火墙规则,让80和443端口收到的数据都转发到谷歌的真实ip 172.217.194.113。
这样就绕过了 IP 黑名单的封锁。
到这里看似很完美了,但是翻墙和翻墙工具总是在不断的进步,下面说下他们如何通过域名来拦截。
域名黑名单
封锁的原理
在 HTTPS 还没有普及的时候,所有数据都是明文传输,想要通过域名拦截就十分简单,因为直接能看到发送和接收的所有数据,也包括域名。
虽然现在已经普及了 HTTPS ,理论上数据已经加密,但是为了要区分一个服务器上的多个网站,于是在加密之前,TLS 握手的阶段,就会明文传输要请求的域名。
如下图,在握手期间就会发送域名,所以在握手期间,GFW 一样可以根据这个域名来拦截。

绕过封锁的方法
理论上只要让GFW无法知道要访问的域名就行,真实场景几乎不会这么做。
其实哪怕不翻墙,在握手的时候明文发送域名也是会泄漏隐私的,这暴露了用户访问过哪些网站。
所以在 TLS1.3 协议中提供了对 ESNI(Encrypted Server Name Indication,加密服务器名称指示)的扩展,也就是 SNI 也进行加密了,GFW 也不知道访问的是哪个网站。
从而可以绕过 GFW 的封锁,但是 GFW 可以很无耻的直接把用 ESNI 的流量都丢掉,从而一杆子打死。
目前主流的做法大方向有几种:
- 把整个流量都加密,封装成 GFW 不认识的格式,比如以下协议
- openvpn(vpn其实本身只是为了创建加密隧道,方便异地组网,只是正好他数据加密传输可以暂时用来翻墙,不过他的流量有特征,很容易被识别,导致被封)
- 把流量伪装成最常见的流量,比如 HTTPS 流量(藏一滴水最好的方法是融入大海)【这是目前最主流的做法】
- trojan 先建立一条HTTPS 的加密通道,之后的数据在其中传输,在GFW 看起来,他好像就是普通的网站访问流量。
- 其他的比如 vmess/vless以及各种混淆插件,本质上都是为了伪装成 HTTPS 流量
- 走专线,绕过墙
- IEPL(国际以太网专线)和IPLC(国际专线电路)都是物理专线,这种线路是不经过 GFW 审查的,所以根本就不需要加密数据,不存在墙不墙一说。但是价格贵,不适合一般场景。
所以目前还是以第二种 伪装主流流量的协议为主。
流量特征检测
随着技术的发展,GFW 也在进步,目前已经可以对流量特征进行检测,通过机器学习识别异常流量。
比如:长时间和一个网站发送大量数据,哪怕你是https流量,也非常可疑。
再比如:trojan 这类协议存在 TLS over TLS 的问题,也就是加密流量中传输加密流量 由于TLS 的握手数据包的发送频率和大小本身有特征,也会被 GFW 检测到你在 TLS 加密通道中传输 TLS 加密的数据,这就不正常了。
上面大概就是防火墙与翻墙技术相关的大概知识。