翻墙 | GFW封锁网络的几种常用方法
原文: http://allinfa.com/gfw-blockade-network-method.html 注:这是一篇旧文章,原文作者Twitter:@davidsky2012,题目为”如何区分国内上网环境中不同的人为网络故障”。 美博园 转载时根据内容将标题改为: GFW 封锁网络的几种常用方法。相关内容文章还可参考: 维基百科之”长城防火墙”(GFW) 。保存下来作资料参考。原文如下: 众所周知,在国内上网会遇到各种各样不同的人为网络故障,使得我们无法正常访问很多网站。但由于很多人并不熟悉网络,很多时候会无法区分不同的网络故障,导致明明是网络故障,却认为是服务器故障;或明明是服务器故障,却认为是网络故障的情况。我觉得有必要说明一下不同网络故障的特征,以及区分它们并解决它们的方法。 在国内上网环境中,我们经常遇到的网络故障有:DNS劫持、DNS污染、IP封锁、服务器防火墙IP过滤、服务器宕机、基于关键词的TCP连接重置、无状态的TCP连接重置、SSL证书过滤、SSL劫持、HTTP会话劫持等网络故障。下面我就依次进行说明: 1、DNS劫持 DNS劫持会导致我们访问了一些不存在的或不稳定的网站的时候,访问到的却是电信114搜索(详见月光博客《断网后互联星空的 浏览器 劫持》)或访问Google却显示了Baidu的主页(详见月光博客《Google博客搜索摇身一变成百度》)。 如果需要确认自己是否处在DNS劫持的环境中,我们可以在Windows命令行cmd中使用Windows自带的网络诊断工具nslookup查找一个不存在或不稳定的域名进行一下网络诊断: C:> nslookup www.SomeRandomDomainName.com Server: ns-pd.online.sh.cn Address: 202.96.209.133 Non-authoritative answer: Name: www.SomeRandomDomainName.com Address: 218.83.175.155 我们看到, www.SomeRandomDomainName.com 本应该是一个不存在的域名,DNS服务器应该告诉我们这个域名不存在,但我们却看到DNS服务器告诉我们这个域名的IP为218.83.175.155(不同地区的114搜索的IP都不同,可能得到的IP并不是218.83.175.155,而是自己所在地区的114搜索的服务器IP地址),而这个IP却是114搜索的IP,导致我们在浏览器中访问这个网站时看到的是114搜索的网页。 如果需要解决DNS劫持的问题,可以把自己的域名解析服务器换乘国外的,比如OpenDNS(详见月光博客《使用OpenDNS解决DNS域名劫持》)或Google DNS(详见月光博客《Google推出免费DNS服务》)。 解决之后我们再次使用nslookup查找一下这个网站: C:> nslookup www.SomeRandomDomainName.com Server: google-public-dns-a.google.com Address: 8.8.8.8 *** google-public-dns-a.google.com can’t find www.SomeRandomDomainName.com : Non-existent domain 我们看到DNS服务器正确的告诉了我们这个域名不存在,我们不会被劫持到114搜索了。 不过,正如《使用OpenDNS解决DNS域名劫持》中最后一段所说的那样,”但是对于DNS污染的劫持,使用OpenDNS也无法解决问题”。那么接下来,我就介绍一下DNS污染。 2、DNS污染 由于DNS劫持可以通过把域名解析服务器更换为国外的来解决问题,所以系统需要使用DNS污染来封锁一些域名。这样,即使使用国外的域名服务器也得不到服务器的正确IP,所以也就无法访问这些服务器了。比如现在著名的微博客始祖twitter主页就遭到了DNS污染。 如果需要确认域名遭到了DNS污染而不是其他的故障,首先要了解,DNS劫持是由国内的域名服务器完成的,所以我们把域名服务器换成国外的就可以解决问题;而DNS污染是由系统完成的,所以即使更换了域名服务器,系统仍旧可以发送伪造的域名解析结果替换正确的解析结果。所以我们可以通过使用一个不存在的国外IP作为我们的域名服务器进行诊断究竟是DNS劫持还是DNS污染。我们仍旧通过使用nslookup进行网络诊断,选一个不存在的国外IP为144.223.234.234: C:> nslookup twitter.com 144.223.234.234 DNS request timed out. timeout was 2 seconds. *** Can’t find server name for address 144.223.234.234 : Timed out Server: UnKnown Address: 144.223.234.234 Name: twitter.com Address: 93.46.8.89 我们看到,由于144.223.234.234不存在,理应没有任何返回。但我们却得到了一个错误的IP:93.46.8.89。我们再测试一下刚才被DNS劫持的IP的情况: C:> nslookup www.SomeRandomDomainName.com 144.223.234.234 DNS request timed out. timeout was 2 seconds.
Read More