”老虎,在吗?“
“在的!怎么啦?”
“我们的站点又不能访问了!”
“我看看。呃……我可以正常访问啊!土豆(服务器)……咱们的土豆(服务器)也很新鲜(正常)啊!“
“我们的都不行!很多同志都反馈不能访问!”
“呃……那我就明白了——DNS被污染了!”

作为一只负责任的产品汪,即便是在疫情期间,也是要认真为客户提供服务的。上面的对话,就是老虎经常面对的日常之一。

而作为经典的问题之一,DNS污染造成的站点问题,常常困扰着用户、运维、研发、PM……等等一堆人。不仅仅是用户可能不了解这个经常出现的网站访问“拦路虎”,有不少运维/研发的同学也不是太了解这个问题。

不了解 → 一脸懵逼 → 无法处理 → 无能狂怒 → 泄愤/甩锅——经典的恶性循环链条。

了解 → 一目了然 → 愉快处理 → 顺利下班——这才是我们应有的姿势。

老虎今天写这篇文章的目的,就是为了帮大家了解和处理这个问题。接下来,就跟着老虎涨姿势吧。

什么是DNS?

DNS,全称为Domain Name System,也即“域名服务系统(协议)”。这玩意儿是做什么的呢?

鉴于大部分人都不是网络工程专业出身,也不常和网络工程打交道,老虎觉得真没有必要用过于专业的方式来给大家讲解。专业版本的讲解,大家可以咨询度娘或者其它大神。老虎打算用通俗的方式来演绎DNS的日常生活。

我们来举一个例子。

当我们想给一个人打电话,却又不知道这个人的电话号码时(比如,有一辆车停在了你的私人车位上,你找车主挪车时)。我们往往会求助于114咨询服务。

我们知道的,是这辆车的车牌号。而车主在车管局登记的信息里,车牌号又和电话号码进行了绑定。114还能获取这些信息。

于是,当我们告知114车牌号的时候,我们常常可以获取车主的电话号码,于是,我们就联系到了车主本尊。

你是不是隐隐约约感到了114的角色并不简单?

嗯,有内味了。

在这个故事里面,车主就是我们想要访问的站点,更准确的说,是想要访问的站点的具体IP地址。车牌号就是我们知道的域名。

一个正常使用的域名,是需要进行解析绑定和备案的。这就类似于车管所要求车主等级车牌号和车主信息并绑定。只不过,实际执行的是网监局和运营商。

114就是我们的DNS。

114可以获取/保存着车牌号和车主绑定的信息,也就是保存着域名和实际IP地址。当我们询问的时候,她就风轻云淡地看上一眼自己的小本本,然后告诉我们要找的车主电话(网站IP地址)到底是多少。

我们拨打电话(访问站点IP地址),电话联通(访问成功)。

这就是DNS的主要任务,其它的类似品还有电话黄页、导购目录之类的玩意儿。

DNS污染又是什么?

前面的小例子中,我们说道,114(DNS)是先“风轻云淡”地看了一眼自己的小本本,才告诉我们结果的。“小本本”其实就是指DNS服务器的地址缓存。

网络中分布着大量的DNS服务器,这个也很好理解,就好比是洛阳移动、郑州移动、南阳移动、新乡移动……一个地区都有自己的移动公司(DNS服务器)来为本地提供服务。

DNS服务器集群的行为模式和移动公司的套餐变更也很像。河南移动要求下属公司推出新产品,会下发一份文件(就是“小本本”),洛阳移动拿到之后,会更新自己的“小本本”。河南移动就是洛阳移动的上级DNS服务器,中国移动总公司就是根服务器。根服务器、上级服务器的变更,会影响下级服务器的内容。但是,和行政工作一样,这都有一个效率问题。根据不同级别的变更,上级服务器的变更向下影响有一个时间差,即时至2-24小时不等。这就是DNS变更之后,往往不会立即生效,需要等待的原因。

DNS污染,就是有人故意在这个“小本本”上面乱涂乱画。只不过,这极有可能是运营商的行为。当然,也有可能是CNNIC的行为。这个,咱们按下不谈。

DNS被污染时,有这样的一些表现:

  • 标准DNS污染,以不让访问为目的。比如,www.baidu.com的真实目标IP地址是1.1.1.1,DNS的小本本上给你改成“查无此人”,那么,当你访问的时候,你得到也就是个“查无此人”的结果,也就访问不到了。
  • DNS劫持,这玩意儿有另一个词儿描述——截胡。还是以上面的例子,把对应的记录改成阿里巴巴的2.2.2.2,当你访问的时候,你会自然而然地被跳转到阿里巴巴的站点上,并且你还不知道发生了什么。
  • 一般情况下,DNS污染发生的时候,你会发现直连IP或者Ping IP地址都会有反应,但就是直接访问域名不会有反应或者有错误反应。这就是DNS污染事件和常规服务器问题的重要区别。

DNS污染该怎么处理?

关于DNS污染事件的处理,我们需要分几个方面进行讨论:

个人用户

作为普通的个人用户,当发现自己希望访问的站点突然间就不能访问了,或者实际跳转到的是奇怪的站点时,就需要调整自己的DNS服务器设置,或者修改Hosts文件了。

鉴于Windows 10是目前的主力操作系统之一,也是大家最常用的操作系统。本文就详细介绍一下,如何在Windows 10下进行相关的配置。

DNS设置-Windows 10部分

  1. 找到任务栏中的网络链接图标,然后使用鼠标右键点击该图标,在出现的对话框中选择”打开网络和Internet设置“一项。
  2. 在打开的对话框中,选择“更改适配器选项”一项。
  3. 在弹出的“网络连接”文件夹中,选择自己正在使用的网卡图标。本文以机载无线网卡为例。然后,打开右键菜单,选择“属性”一项。
  4. 在打开的属性面板中,选择IPV4协议,并点击“属性”按钮。
  5. 选择“使用下面的DNS服务器地址”,并填写自己想要使用的DNS服务器地址。我个人喜欢使用DNSPod提供的Public DNS服务器。

    填写完毕后,点击”确定“按钮,并关闭所有对话框,设置完毕。然后,你就可以试试能不能打开目标站点了。国外站点不一定适用,因为有GFW(The Great Fire Wall,国家防火墙)存在。

DNS设置-路由器部分

前面说的,也就是设置计算机自己的DNS解析指向。但是,作为现代社会的一员,同时拥有众多的设备,一个一个设置,岂不是很麻烦?更何况,部分设置可能还找不到设置项的位置。那么,对自己使用的路由器进行设置,一次设置,全部通用,岂不美哉?

路由器的设置思路,也是修改所指向的DNS服务器地址。路由器厂家众多,就不一一说明了。我们说一下通用的设置位置。
一般情况下,在登录路由器的设置后台页面后,找寻“网络设置”或者“WAN口设置”,最差也在“高级设置”之中,就找DNS服务器一项,然后,修改之,保存即可。

暂时还没有遇到过不提供本设置项的路由器品牌。

DNS污染解决-修改Hosts文件

关于修改Hosts文件,我个人不提倡使用。

因为,麻烦。并且,能解决的问题真的不多。

不过,有兴趣的同学还是可以看一下下面的链接,学习一下。我就不再赘述了。同时,感谢下文作者。

如何修改Hosts文件

DNS污染解决-运营商部分

当我们设置了自身的DNS服务器,并且确认我们的项目、生产服务器环境、网络设置真的没有任何问题之后,如果还是不能访问,那就需要找我们的服务器、尤其是域名解析服务所在的运营商好好聊聊了。电话沟通一下总是最有效的。

这一小节看似废话,但是,确实是最终的解决手段,也是最有效的解决手段之一。

DNS污染解决-最无奈的方法

这一点,是提给运维的兄弟的。当你发现实在是无能为力的时候,不妨和客户商量一下,修改域名解析策略,甚至使用多域名跳转。一般情况下,主动进行域名解析设置变更后,会逐步推送到各级DNS服务节点,DNS污染的情况也会随之好转。但是,被运营商或者某机构“特别关照”的DNS污染这种方案可能也无法解除。

结语

以上,我们简单讨论了一下DNS污染的相关内容。老虎衷心希望,能够帮到正在阅读本文的你。时间有限,精力有限,水平也有限,就写到这里吧。

喜欢的,可以留言交个朋友。嘛,请老虎喝一杯咖啡也是极好的~

不喜欢的,嘛,请安静移步离开,咱们相忘于江湖。

就这样吧。

“Mayday!我们的站点又不能访问啦!”之DNS污染篇相关推荐

  1. 为什么有的站点别人能访问但我无法访问

    本人freebuf文章:https://www.freebuf.com/articles/web/264585.html 为什么有的站点别人能访问但我无法访问 写在前面:域名分级与域名解析过程(DNS ...

  2. github博客突然无法访问_紫菜头博客被DNS污染攻击关站

    原标题:紫菜头博客被DNS污染攻击关站 近日,网赚圈老牌博客"紫菜头博客"站长爆料,网站这阵子持续遭遇勒索攻击,随后网站域名也DNS污染,彻底被搞垮了,以后网站关站,不玩了,之前, ...

  3. DNS劫持及网页跳转到莫名站点时应该怎么办?(DNS劫持和HTTP劫持及解决方法)

    如有更新及改动请参考我的博客原文 https://alvincr.com/2021/01/dns%e7%9b%b8%e5%85%b3%e7%9f%a5%e8%af%86%e4%b8%aa%e4%ba% ...

  4. 修改WordPress主题导致整个站点404无法访问

    今天下午发现自己用WordPress搭建的站点www.hainter.com的主题有一些bug,决定对其进行一些修改. 由于主题原先并不是自己设计的,是在知更鸟的Ality主题基础上修改的,所以对于里 ...

  5. 部署站点支持Https访问的方法

    1.申请公钥和私钥,放到服务器 2.编辑default配置文件 改为 加上证书路径 ps:泛域名支持admin.xxx.com.demo.xxx.com等等,而免费的Let's Encrypt仅支持w ...

  6. ASP.NET数据库访问系列教程01-概述篇 创建数据访问层(下)

    ASP.NET数据库访问系列教程 本教程深入探讨了基于ASP.NET 2.0技术的数据库访问方法和模式.这些介绍非常简明,并且提供了一步步的指导和大量的截屏. 该系列教程包括: 概述篇 基础报表 主/ ...

  7. ASP.NET数据库访问系列教程01-概述篇 创建数据访问层(中)

    ASP.NET数据库访问系列教程 本教程深入探讨了基于ASP.NET 2.0技术的数据库访问方法和模式.这些介绍非常简明,并且提供了一步步的指导和大量的截屏. 该系列教程包括: 概述篇 基础报表 主/ ...

  8. iodine免费上网——本质就是利用dns tunnel建立tcp,然后tcp proxy来实现通过访问虚拟dns0网卡来访问你的dns 授权server...

    我的命令: server端: sudo iodined -P passwd -f -DD 10.0.0.100 abc.com client端(直连模式,-r表示使用xxx.abc.com的xxx来转 ...

  9. Flink 异步IO访问外部数据(mysql篇)

    接上篇:[翻译]Flink 异步I / O访问外部数据 最近看了大佬的博客,突然想起Async I/O方式是Blink 推给社区的一大重要功能,可以使用异步的方式获取外部数据,想着自己实现以下,项目上 ...

最新文章

  1. 神器:REST测试工具[wiztools.org restclient]客户端Jar依赖Java安装环境
  2. react 从零开始搭建开发环境
  3. 基于STC8H1K28的人机键盘界面
  4. 一文带你深入拆解Java虚拟机
  5. confluence 卡顿原因总结
  6. [zz]GNU C __attribute__ 机制简介
  7. VS2005工程增加SDK
  8. Python之socketserver模块和验证客户端链接的合法性
  9. 被讨厌的勇气--总结
  10. 信息学奥赛C++语言:最小数输出
  11. 多线程服务器(python 版)
  12. DDMS连接bluestacks找不到设备
  13. 别想了:全系iPhone12将不配120Hz高刷屏
  14. 从零开始学_JavaScript_系列(22)——dojo(9)(表单、JsonRest的post方法,widget的使用思路)...
  15. 单片机练习 - 计时器
  16. 多智能体协同视觉SLAM技术研究进展
  17. 电视机魔百盒显示连接服务器失败,【当贝市场】魔百盒EPG主页加载不出来办法详解...
  18. 购物直播系统搭建 新型电商开发方案
  19. 关于ASO优化刷榜、冲榜、维榜、锁榜科普百科
  20. 凯斯西储大学轴承数据介绍及处理

热门文章

  1. 青岛新媒体运营教程:短视频没脚本怎么行,镜头脚本模板直接套用
  2. 侧滑、、、mark一下、、、
  3. 2021年美国大学生数学建模竞赛E题思路分析
  4. 国三数据库系统工程师与软考中的数据库工程师,谁的难度更高?
  5. 产品需求文档到底该怎么写?【转】
  6. iPhone自动旋转控制代码-IOS开发
  7. 清明节海报设计软件测试,PS清明节海报设计教程
  8. python做erp系统教程_“python2.7教程廖雪峰“刚开始学openERP Python,如何快速入门?...
  9. FPGA和eeprom通信
  10. 我的世界服务器盖亚3缴械修改,我的世界盖亚魔典3mod教程怪物系统介绍