GFW,即Great Wall of China, 中国防火长城的简称,是中国政府过滤和监控互联网的一套软硬件系统。GFW的作用主要是用于分析和过滤中国境内外网络间的互相访问。也就是说,他不仅能限制国内网民访问境外的某些站点,也能限制国外用户访问国内的站点。 我们通常说的“被墙”,就是指访问被GFW所限制。而”翻墙“,顾名思义,则是突破GFW的限制。本文着重探讨GFW的工作原理。
人们对于GFW的探讨从没有停止过,但其中的具体实现细节无从知晓,一些有着强烈好奇心的学者以及国内的翻墙爱好者们还是瞥见了一些端倪。普遍的看 法[1][3]是,GFW 的工作机制主要包括 IP 黑名单、内容审查和 DNS 劫持等三种。 IP黑名单:GFW可能维护着一张IP黑名单,这里用“可能”二字说明这个说法没有得到过100%的证实,只是通过实验结果推测出来的。事实上,我们无从得知GFW具体的工作原理,这应该属于机密。下面具体分析下IP黑名单:37.13.79.144是www.facebook.com众多IP中的一个,但是在浏览器中无法访问。173.252.120.6也是facebook的一个IP,通过这个IP可以访问到其网站。再举个例子,64.233.189.99是google的一个ip,可以通过浏览器访问谷歌首页,但同属于google 的一个ip 64.233.189.147就不能被访问。由此可以推测 37.13.79.144 和64.233.189.147在GFW的IP黑名单中,只要发现有发往这些ip的请求,就立即终止。 下面来做个实验,208.65.153.238是youtube的一个ip地址,我们在命令行下使用tracert跟踪,如图
在主机202.97.65.77处就断开了,说明此主机很有可能就是GFW的设备之一。
再tracert一下牛博国际的IP,也出出现了类似的情况。
根据以上结果我们猜测,GFW 很有可能维护了一张 IP 黑名单,一旦发现发往黑名单中 地址的请求数据包,就直接将其丢弃,这将导致源主机得不到目标主机的及时响应而引发超 时,从而达到屏蔽对目标主机的访问的目的。
DNS劫持:
DSN劫持我想应该是GFW最常用的手段,我们通常都是通过域名访问一个网站,而网络是不识别域名的,必须把域名交给ISP(网络服务提供商)的DNS服务器去解析。比如我们想访问www.facebook.com,这个域名会被发送给你的ISP(如:中国电信)。它会把你的请求,也就是www.facebook.com,解析到一个虚拟的IP地址,下面我们在命令行下通过nslookup 做个实验就明白了。
www.facebook.com被解析到了37.61.54.158 而这个地址显示来自阿塞拜疆,显然不是我们想访问的。
继续nslookup www.twitter.com
竟然和facebook解析到同一个IP. 实际上全球只有13个顶级域名服务器,可惜的是天朝一个也没有,为了分流减压,ISP通常都会缓存一些域名信息,而DNS劫持的一个手段就是污染这些缓存信息,也就是修改想要屏蔽的站点的域名信息。 GFW至少使用了两种DNS劫持机制:一方面,GFW对国内DNS服务器进行了缓存污染, 这种污染体现在使用国内DNS服务器对twitter进行解析会得到稳定的、虚假的IP地址;另一 方面,GFW会拦截和应答试图从国内发往国外的DNS解析请求(也可能是对国外DNS服务器 的应答进行了篡改)。