科普:校园网场景下,QQ可以使用但网页打不开的原因 - 知乎

adminadmin 意甲联赛 2024-04-15 56 0
科普:校园网场景下,QQ可以使用但网页打不开的原因 - 知乎

  本文分四个部分:

  1.信息收集与分析

  2.总结和猜想

  3.解决与验证

  4.相关知识点介绍(DNS是什么,为什么要进行公共DNS阻断等)

  先说结论:校园网场景下,出现QQ可以使用,但网页打不开的问题,最有可能的原因是设置了非法(即除校园网自动分配外)的DNS服务器地址。

  背景:

  今天基友找我,说他macbook连校园网,可以登QQ但是打开不了网页。

  作为直觉,一定是DNS(先记住这个词,作用和原理在第二部分详解)出了问题。所以我看了一下他的DNS服务器地址:8.8.8.8和114.114.114.114。可能是他某次手动加上去的(因为是黑色字)

  一般来说,这两个地址是可用的。

  但由于事先不了解校园网场景下,经常阻断公共DNS这件事,所以我又否定了是DNS的问题。

  经过一顿乱操作(重启、清空DNS缓存等),无果,只好又回到DNS上来。

  1:手机连校园网wifi正常吗?同时将校园网开热点给电脑,能打开网页吗?

  手机正常,电脑仍然不能打开网页。(可能是电脑配置问题)

  2:手机数据流量开热点给电脑,能正常打开网页吗?

  能,但很慢。(对比1,说明校园网也存在问题。)

  3:分别通过ip地址和http://www.baidu.com访问百度

  浏览器输入ip访问,正常输入域名访问,失败

  ip地址访问成功,网址访问失败。(问题一定出在DNS)

  4:nslookup www.baidu.comnslookup

  解析失败。(现有DNS未工作)

  正常情况下应该是这样:正常解析

  5:打开控制台 ping 8.8.8.8 ping通

  ping通。(DNS 服务器连通性没有问题)

  电脑的配置和校园网可能都存在问题(实际上主要问题在于校园网)。电脑可以访问互联网,同时8.8.8.8可以ping通,但仍然出现典型的DNS问题。

  所以我猜测8.8.8.8与114.114.114.114被学校禁掉了,只允许使用自动分配的内网DNS服务器地址。

  删除手动添加的DNS服务器地址,黑色字为手动添加。删除后出现自动出现灰色字。地址为自动分配得到的内网DNS服务器地址。灰色字,自动获取的地址

  打开网页,成功。

  为了排除“手动添加导致故障”的可能性,手动添加了10.1.1.1这个地址作为DNS服务器地址。

  打开网页,成功。

  说明校园网只允许使用内网DNS服务器地址(8.8.8.8与114.114.114.114属于公网DNS服务器地址)。

  到这里,回过头来看,似乎是一个很简单的东西,只是触及到了知识盲区。

  但是我又有了一个深深的疑问:

  学校为什么要这样做?

  DNS(Domain Name System)域名系统

  1.DNS是干嘛的?

  一句话,把域名转换成ip地址(http://www.baidu.com转换成14.215.177.39)

  实际上,我们访问任何网站,本质上都是在利用ip地址进行访问。

  举个便于理解的例子:DNS相当于一本电话簿,网址(域名)就是想要联系人的名称备注,ip地址就是电话号码。你和他打电话,不是在用名称备注打电话,而是在用11位手机号打电话。而网址(域名)是为了方便我们记忆而产生的。你肯定希望访问百度的时候是在地址栏输入http://www.baidu.com而不是14.215.177.39。

  不然又是数字又是点的,那么多网站,这我tm哪记得住啊?

  当你访问http://www.baidu.com的时候,DNS服务器会找到它相对应的ip地址,并且把这个地址告诉你的电脑。你的电脑将这个ip地址作为目标,发出数据包。但是直接输入ip地址14.215.177.39进行访问,无需经过DNS解析。

  当DNS出现问题时,地址解析功能无法生效,所以所有利用域名进行访问的操作都失效。

  你说你要打电话给cxk约他出来打球,你的手机伸手给你一掴脑:“电话号码都没有,我tm去哪给你找cxk?”

  2.工作原理

  一般查询步骤:

  缓存-->hosts文件(写入了一些域名和ip的绑定关系) -->本地DNS服务器-->转发器-->根服务器(内置13个地址)以新浪为例,查询.cn(根)-->查询.com.cn-->查询sina.com.cn

  对于我们的电脑来说,只进行递归查询(没钱就跟你爸要,就是不去打工赚钱)。而DNS服务器之间往往进行迭代查询(我儿子没钱了,我有钱就给他,没钱就去赚钱)。递归查询不包括5-6步。

  3.其他

  一个网址可能有多个ip与之对应。

  比如访问百度,http://www.baidu.com解析出来的可能是14.215.177.39,也可能是119.75.217.109以及其他很多ip。这里涉及DNS的记录知识,有兴趣的可以自行了解一下。好处是高可用性(一个服务器挂了,另一个仍然可以被访问)以及负载均衡(所有病人都询问同一个医生,这谁顶得住啊)。

  上文提到使用手机数据热点可以打开,但是很卡。

  是因为使用的是8.8.8.8(谷歌提供,服务器在美国)作为固定的DNS解析服务器而不是运营商给手机分配的DNS服务器(本地)。这就相当于本来可以在学校超市买牙膏,你非要坐高铁回家买然后再坐高铁回来。一般8.8.8.8是作为最低生活保障出现的。当然也有国内比较好用的DNS地址,这里就不多作介绍,搜一下有很多。

  4.为什么阻断公共DNS?

  按照学校的做法,只能使用10.1.1.1和10.1.89.98两个内网(私有、学校自己的)DNS服务器地址。

  目的大致如下:

  1)方便访问校园内网,访问速度优化。

  假如你的学校网站是http://www.xxx.edu.cn,学校里建了一个校内资源网站http://movie.xxx.edu.cn。这个域名没有注册,并不是公有域名,所以公有DNS服务器找不到这个域名对应的ip地址。这个时候,学校自己的DNS服务器里会写上一个记录,把http://movie.xxx.edu.cn对应上10.2.2.2。这样你就可以通过校园网访问校内资源网站了。

  以及其他所有学校自建的内网地址都可以这样访问,省去了数据包跑上互联网一顿乱找的过程。

  2)节省带宽

  DNS查询是以数据包传输形式进行的,它一定是会占用你的带宽。个人网络被占用的情况或许不严重,但是校园网出口带宽是上千上万人在用。利用本地DNS服务器,可以在很多情况下,直接通过查看缓存等方式返回ip地址,而不需要进行更复杂的迭代查询。一次迭代查询抓包实验

  3)限制

  就是你访问什么它都会过滤一遍,你懂的。

  4)其他

  对公网DNS不信任、会被公网DNS拒绝等并不是很常见的情况。

  一般场景下,qq能用(使用ip,不使用域名),但网页打不开,就几乎一定是DNS的问题。但具体是删掉手动配置的DNS地址,还是添加一个公有DNS地址视情况而定。在校园网的特殊情况下,往往是删掉,使用自动分配的DNS地址。

版权声明

本文仅代表作者观点,不代表xx立场。
本文系作者授权xx发表,未经许可,不得转载。

喜欢0发布评论

评论列表

发表评论

  • 昵称(必填)
  • 邮箱
  • 网址