如何区分国内上网环境中不同的人为网络故障

  众所周知,在国内上网会遇到各种各样不同的人为网络故障,使得我们无法正常访问很多网站。但由于很多人并不熟悉网络,很多时候会无法区分不同的网络故障,导致明明是网络故障,却认为是服务器故障;或明明是服务器故障,却认为是网络故障的情况。我觉得有必要说明一下不同网络故障的特征,以及区分它们并解决它们的方法。

  在国内上网环境中,我们经常遇到的网络故障有:DNS劫持、DNS污染、IP封锁、服务器防火墙IP过滤、服务器宕机、基于关键词的TCP连接重置、无状态的TCP连接重置、SSL证书过滤、SSL劫持、HTTP会话劫持等网络故障。下面我就依次进行说明:

  1、DNS劫持

  DNS劫持会导致我们访问了一些不存在的或不稳定的网站的时候,访问到的却是电信114搜索或访问Google却显示了Baidu的主页》。

  如果需要确认自己是否处在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或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.

  *** Can't find server name for address 144.223.234.234: Timed out

  Server: UnKnown

  Address: 144.223.234.234

  DNS request timed out.

  timeout was 2 seconds.

  DNS request timed out.

  timeout was 2 seconds.

  *** Request to UnKnown timed-out

  我们看到,www.SomeRandomDomainName.com 没有返回结果,那么它没有被DNS污染。

  如果要解决DNS污染,我们只能使用各种加密代理进行远程DNS解析、VPN或利用系统的漏洞了。

  3、IP封锁

  这里IP封锁指的是国内把国外服务器的IP加入了系统的黑名单,导致大部分地区甚至全国无法直接访问服务器。由于系统是分布式的,所以有可能出现部分地区可以访问,部分地区不能访问的情况。比如现在知名的云存储服务Dropbox的主页,就是遭到了IP封锁。

  首先我们把域名服务器设置为国外的,排除了DNS劫持的问题。之后我们诊断一下dropbox的域名是否遭到了DNS污染:

  C:\>nslookup www.dropbox.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

  DNS request timed out.

  timeout was 2 seconds.

  DNS request timed out.

  timeout was 2 seconds.

  *** Request to UnKnown timed-out

  显然也没有遭到DNS污染。那么接下去我们可以在没有过滤ICMP协议的网络环境中(有些小区宽带和有些公司的内部网络过滤了ICMP协议,无法使用tracert),我们可以在Windows命令行cmd中使用Windows自带的网络诊断工具tracert进行一下网络诊断是网站遭到了IP封锁还是其他的故障:

  C:\>tracert -d www.dropbox.com

  Tracing route to www.dropbox.com [174.36.30.70]

  over a maximum of 30 hops:

  1 18 ms 19 ms 26 ms 58.35.240.1

  2 15 ms 20 ms 29 ms 58.35.240.1

  3 13 ms 10 ms 14 ms 124.74.20.45

  4 14 ms 14 ms 15 ms 124.74.209.137

  5 10 ms 15 ms 14 ms 61.152.86.58

  6 * * * Request timed out.

  7 * * * Request timed out.

  8 * * * Request timed out.

  ……

  我们看到,最后一个IP为61.152.86.58(不同地区的IP不一样),之后就不通了,显然在61.152.86.58附近遭到了IP封锁。那么我们打开ip138查一下61.152.86.58是谁在掌控:

  您查询的IP:61.152.86.58

  * 本站主数据:上海市 电信

  * 参考数据一:上海市 电信

  * 参考数据二:上海市 电信

  显然,问题在上海电信这里(其他地区可能是地区的本地电信),而不是dropbox服务器的问题。

  4、服务器防火墙IP过滤和服务器宕机

  把这两点放在一起写是因为这两种情况的对外表现是一样的。但和IP封锁却有很大区别。IP封锁的最后一个可达IP是中国的,而服务器防火墙IP过滤和服务器当机时的最后一个可达IP却是国外的。比如我们拿75.101.142.137做试验,之前在上面部署过alexa的网站,现在这个IP上暂时没有服务器(可以看成服务器宕机):

  C:\>tracert -d 75.101.142.237

  Tracing route to 75.101.142.237 over a maximum of 30 hops

  1 25 ms 18 ms 18 ms 58.35.240.1

  2 25 ms 42 ms 27 ms 58.35.240.1

  3 10 ms 15 ms 14 ms 124.74.37.9

  4 49 ms 59 ms 12 ms 124.74.209.129

  5 14 ms 14 ms 14 ms 61.152.86.142

  6 10 ms 14 ms 15 ms 202.97.35.154

  7 14 ms 15 ms 14 ms 202.97.34.126

  8 194 ms 195 ms 194 ms 202.97.51.138

  9 171 ms 170 ms 173 ms 202.97.50.54

  10 215 ms 179 ms 175 ms 63.146.27.133

  11 279 ms 280 ms 278 ms 67.14.36.6

  12 * * * Request timed out.

  13 249 ms 249 ms 244 ms 72.21.199.40

  14 254 ms 254 ms 254 ms 72.21.222.157

  15 250 ms 250 ms 249 ms 216.182.232.53

  16 270 ms 270 ms 273 ms 216.182.224.22

  17 272 ms 269 ms 289 ms 75.101.160.35

  18 * * * Request timed out.

  19 * * * Request timed out.

  20 * * * Request timed out.

  我们看到最后一个可达IP为75.101.160.35,然后我们查一下这个IP是谁的呢:

  您查询的IP:75.101.160.35

  * 本站主数据:美国

  * 参考数据一:美国

  * 参考数据二:美国 华盛顿州金县西雅图市亚马逊公司

  显然,这个是服务器故障。

  如果要解决IP封锁,我们只能通过加密代理、VPN或利用系统的漏洞进行访问这些网站了。

  5、基于关键词的TCP连接重置

  国内的系统在人们通过http协议访问国外网站时会记录所有的内容,一旦出现某些比较“敏感”的关键词时,就会强制断开TCP连接,记录双方IP并保留一段时间 (1分钟左右),我们的浏览器也就会显示“连接被重置”。之后在这一段时间内(1分钟左右),由于我们和服务器的IP被摄查系统记录,我们就无法再次访问这个网站了。我们必须停止访问这个网站,过了这段时间再次访问没有这些关键词的网页,就又能访问这个网站了。

  由于这些特征,我们判断是否遭到了基于关键词的TCP连接重置的情况也比较容易。如果浏览器显示“连接被重置”,并且在一段时间内无法再次访问这个网站,之后过了这段时间访问这个网站上没有这些关键词的网页又能访问的时候,我们就是遭到了基于关键词的TCP连接重置的故障。

  正是因为http协议是明文传输的,所以才能基于关键词进行TCP连接重置。所以如果网站支持https加密访问,我们可以通过https方式访问网站,从而解决这个问题。但如果网站不支持https方式访问,我们只能通过加密代理、VPN或利用系统的漏洞进行访问了。而且国内的系统对付https也不是没有其他手段了。除了IP封锁外,还有无状态的TCP连接重置、SSL证书过滤、SSL劫持等手段,下面进行依次介绍。

  6、无状态的TCP连接重置

  由于https是加密传输数据的协议,系统无法知道通过https协议传输了什么内容,但又不允许民众使用https访问“有害信息”,所以系统只要监测到(系统只是知道访问了这个网站的https协议,并不知道其中传输的内容)访问了指定网站的https协议(比如Google Docs的https访问方式),就会强制断开TCP连接。这样,这些网站的https协议在国内就无法直接使用了,很多人被迫使用http协议,从而传输的所有内容被系统所记录。

  无状态的TCP连接重置的结果也是浏览器显示“连接被重置”,只不过无论访问这个服务器上的任何网页都会被重置。如果要解决这个问题,也只能依靠加密代理、VPN或利用系统的漏洞了。

  7、SSL证书过滤

  和无状态的TCP连接重置一样,由于https是加密传输数据的协议,系统无法知道通过https协议传输了什么内容,但又不允许民众使用https访问“有害信息”,除了域名污染和无状态的TCP连接重置防止无法审查内容外,还有SSL证书过滤的审查手段。由于https传输过程中,SSL证书却是明文传输的,所以可以监测SSL证书是否掰发给指定域名的。如果确实如此,那么就强制断开TCP连接,浏览器也会显示“连接被重置”。SSL证书过滤只发生在使用https访问网站的时候。

  SSL证书过滤的情况比较少。如果需要解决这个问题,也只能依靠加密代理、VPN或利用系统的漏洞了。

  8、SSL劫持

  断开https连接虽然能阻止民众访问“有害信息”,但并不知道访问了什么有害信息。基于这一点,针对https的弱点(信任所有证书颁发机构CA),CNNIC申请成为了顶级证书颁发机构(Root CA),从而可以发假证书进行中间人攻击,从而破解https传输的内容。

  如果遭到了SSL劫持,很难发现。我们通过https访问国外网站的时候必须每次检查一下证书是否为国内的证书颁发机构颁发。如果为国内的证书颁发机构颁发,那么很可能遭到了SSL劫持,必须马上停止继续访问。

  如果要解决SSL劫持,我们可以去浏览器中禁止比如CNNIC那样的国内证书颁发机构的证书(比如《CNNIC,我不信任你》)。但这并不能完全解决问题,如果某一天一个不知名的国内证书颁发机构参与了SSL劫持就很难发现。最终我们还需要依赖加密代理或VPN。

  9、HTTP会话劫持

  HTTP会话劫持是修改正常的http返回结果,可以在其中加入广告,甚至是病毒木马。而一般上网被http会话劫持加入广告,很有可能认为是网站自己的广告。由于http协议是明文传输的,http会话劫持也就可以做到。月光博客中《电信级的网络弹出广告》、《获取了电信恶意弹出广告的罪证》和《谁控制了我们的浏览器?》也有详细介绍http会话劫持。HTTP会话劫持通常是ISP为了推送广告而实施的,但并不排除这一手段今后会被系统所利用。

  要解决HTTP会话劫持,月光博客中也提供了一种解决思路——《解除ADSL弹出广告的方法》。使用浏览器插件屏蔽广告能解决部分问题,也不能完全解决问题。如果要从技术手段解决HTTP会话劫持,一种办法是使用加密代理和VPN访问所有的网站,包括国内的,但也不能完全解决问题,如果HTTP会话劫持是在服务器附近的路由器上设置的,这种方法也无法解决;另一种办法是针对不同的HTTP会话劫持,我们通过刷路由器固件的方式再劫持回来(dd-wrt和tomato路由器固件支持自定义,可能可以把HTTP会话再劫持回原来的数据),或者针对不同的HTTP会话劫持,使用不同的本地应用层代理服务器进行广告过滤。

  在国内常见的人为网络故障都介绍完了,同学们都可以区分不同的故障了并加以解决吗?

  来源:读者投稿。 作者Twitter:@davidsky2012,作者Google Reader: https://www.google.com/reader/shared/lehui99

  原创文章如转载,请注明:转载自月光博客 [ http://www.williamlong.info/ ]

  本文链接地址:http://www.williamlong.info/archives/2195.html

时间: 2024-10-28 02:08:01

如何区分国内上网环境中不同的人为网络故障的相关文章

新手学上网:教你怎样排除网络故障

在平常的上网过程中经常发生各种各样的网络故障,导致不能上网,这是最郁闷的时候.但要保持冷静,其实只要你认真按照如下所说步骤检查一下,问题都不难解决. 1.先查看他人是否可以上网,来判断是否整个网络出现了问题.如其它人也不能上网的话,就检查Hub.交换机.或傻瓜式的小路由器是否正常工作.主要是观察它们的指示灯是否亮.这些设备都没有问题的时候,再查看一下你的"猫"是否正常工作. 2.当只有你一个人不能上网的时候,右键单击"网上邻居"查看"本地连接"是

宽带上网环境中的Sniffer攻防实例_网络冲浪

似乎有很多介绍宽带上网安全的文章,但往往提到的是木马.IE的漏洞之类的问题,殊不知有一类更危险的问题却好像未被用户注意,甚至不为防火墙所重视,但是一旦被人入侵却可以随意共享你的所有驱动器和其中的文件,而且实现起来是如此的简单.是何危险?且听我慢慢道来. 思考 近来我正在装修新居,这两天考虑到新家的局域网的网络结构,因为我早使用上了有线通,到时候肯定移机过去,所以现在有两种方案能被我考虑: 1.CABLE MODEM--HUB--各台主机: 2.CABLE MODEM--服务器(软路由)--HUB

如何在没有域的环境中搭建AlwaysOn(一)

对DBA而言,不需要域就可以搭建SQL Server AlwaysOn是Windows Server 2016中最令人兴奋的功能了,它不仅可以降低搭建的成本,而且还减少了部署和运维的工作量.       该特性可以使用户不必额外准备一台或者两台(为了避免单点故障)AD域服务器,从而降低了部署的成本:对DBA而言,可以把更多的精力放在数据库上,而不需要去了解AD域的知识,特别是对MySQL和Oracle转型过来的DBA而言,这绝对是一个非常贴心的特性,要知道windows AD 域的复杂度足够用几

互联网公司在更加成熟的环境中再一次迎接资本的青睐

继2000年互联网泡沫之后,现在的互联网公司在更加成熟的环境中再一次迎接资本的青睐.同时,国内传统行业的中小企业蓬勃发展,电子商务成为他们拓展新希望的重要途径.这些因素是否能够给IDC产业带来灿烂的未来?或者仅仅是又一个美丽的肥皂泡? 近日,由中国IT实验室 和<中国计算机报>联合主办的2006中国IDC产业年度大典盛大开场.此次盛典以"交流.合作.发展.超越"为主题,100余家IDC厂商.数十家电信基础运营商.上百位关心IDC产业未来发展方向的用户以及相关人士等齐聚北京国

国内安卓环境有多差:200元做空壳app有36人中招

数月来,从<恐怖!700元就买到同事行踪,包括乘机.开房.上网吧等11项记录>开始,到互联网黑灰产业链调查,南都持续关注公民个人信息.隐私泄露与被盗. 近日,南都记者再次调查发现,手机恶意程序可以做到侵入用户手机.获取个人短信.通讯录等信息,用户却毫不知情. 然而,这类恶意程序在QQ群里,淘宝网上肆意售卖.即使不会制作,花费20元,甚至5元就能买到.在这个产业链上,还有人专门出售钓鱼网站,以供恶意程序传播. 南都记者花了不到200元,请人制作一个空壳App,以"安装送话费"

新营销环境中,网络广告投放的“三三制原则”

新营销环境中,网络广告投放的"三三制原则" 网站媒体的兴起彻底改变了广告主媒体投放的分配模式,网络广告的营销价值日渐得到广告主的认可,投放比例日渐提高.思考网络广告的不同类型和模式,发现网站(website).搜索引擎(search).邮件(mail)是三类最容易量化的网络广告形式.所谓的三三制原则也就是网络广告投放在WSM这三种网络广告类型中按着三三三的比例来搭配,同时留出是10%的预算来尝试更新的媒体形态,在投放阶段上,先网站,再搜索,最后邮件营销的投放策略更容易取得较好的营销效果

LNMP环境中WordPress程序伪静态解决方案

LNMP环境是目前我们国内站长使用的Linux VPS配置环境中使用较多的.作为新手我们很可能会看到笔者类似的"LNMP安装教程"然后依葫芦画瓢的去安装VPS.我们是否有发现环境中我们较为常用 的wordpress伪静态不生效,内页出现404错误页面.这个问题很好解决,因为我们lnmp采用的是nginx,而不是apache,所以不如 apache直接丢htaccess文件到网站根目录就可以生效伪静态. 首先,默认安装的lnmp环境中已经有伪静态文件wordpress.conf文件在&q

《DB2性能管理与实战》——2.6 DB2 pureScale环境中内存管理

2.6 DB2 pureScale环境中内存管理 DB2性能管理与实战 本节将要介绍与pureScale特性相关的内存管理,可以对比前面的单节点环境下的内存管理,来分析它们之间的异同点.本节为学习后续章节中的相关案例奠定了基础. 2.6.1 集群高速缓存设施 在DB2 pureScale环境中,又引入了集群高速缓存设施(CF),CF将不同内存堆用于以下用途. 1.组缓冲池内存 组缓冲池内存被用于DB2pureScale实例的组缓冲池.如果以一致方式将此类型的内存用至最大已配置能力,那么可能会对性

云环境中虚拟机的三大相关技术详解

为了能够提高云环境中虚拟机的部署速度,我们首先需要考虑到的是并行部署以及协同部署.首先看一下并行部署,它是将虚拟机同时部署到多个物理机上, 理想情况下,并行部署可以成倍地减少部署所需时间,但这种方式容易受网络带宽和云部署服务器读写能力的影响.例如,在网络带宽有限的情况下,云部署服务器同时运行多个部署任务,这些任务就会争抢网络带宽,当网络带宽被占满后,部署速度就不能再被进一步提高.在这种情况下,协同部署技术可以用来进一步提高部署速度.以下介绍云计算. 协同部署的思想是将虚拟机镜像在多个目标物理机之