·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设问答 >> 如何区分国内上网环境中不同的人为网络故障

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

作者:佚名      网站建设问答编辑:admin      更新时间:2022-07-23

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

在国内上网环境中,我们经常遇到的网络故障有: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搜索了。

“但是对于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污染。