DNS劫持?本地装个BIND玩玩

DNS作为互联网产品基础服务, 由于太过基础, 人们甚至会忘记如果没有这个跟互联网历史一样长的技术, 连想访问的网站在数字世界中的门牌都不知道, 更别提怎么找到那里了。

2016年10月21日,美国域名服务商Dyn遭到ddos攻击,导致该服务商的多家客户网站域名不能访问, 包括twitter(这个在天朝不存在),Paypal, Spotify 等公司的网站都不能访问。 据说,攻击Dyn的脚本小子原意是要攻击Dyn的客户PSN(Playstation Network), 结果直接导致了其他网站躺枪。

DNS作为互联网基础设施, 平常人也可以在局域网本地安装, 观察DNS服务的工作情况。 BIND 作为DNS的开源参考实现,直接可以在其网站上下载, 其有windows版和linux版, windows套件直接自带了linux中的工具dig, nslookup等,也算方便。

搭一个本地DNS, 能有以下好处:

  • 我们可以弄一个域名指向本地局域网中的IP。

  • 可以运行一些复杂的转发规则,包括端口转发,绕过Windows host文件的限制。

  • 当做本地DNS缓存:提高网上冲浪的速度。

  • Bind安装包里有很多好工具: dig,nslook,nsupdated等能给可怜的Windows命令行加光环。

  • 简单处理下天朝普遍存在的运营商/路由器/国家级别劫持DNS解析结果问题,聊胜于无

这里跳过安装过程,以下只介绍下我装了Bind后认为需要注意的一点小事:

  1. 为了使用BIND Windows版中自带的命令,装好后需要将环境变脸PATH指向安装目录 **BINDbin。

  2. 装好用命令rndc-confgen -a 生成rndc.key文件,这个key文件用来让rndc的命令行客户端能控制服务端。有些教程又让你生成一个rndc.conf,这个没有必要,弄了之后反而有问题,会报错(rndc key已经存在但是用了rndc.conf中的缺省值)。

  3. 每次配置变更记得使用ipconfig /flushdns。

  4. rndc status 能显示BIND的工作状态,很有用。

  5. ipconfig /displaydns 可以用来显示Windows系统目前缓存的DNS名称。

其他需要知道的

  1. dig /nslookup命令用的DNS缓存是自己的,直接忽略了Windows DNS缓存。

  2. 浏览器缓存是自己的, 通常我们通过CTRL+F5强刷解决,这个也能解决js文件的缓存问题。

  3. Windows DNS 缓存能通过上面第五条命令来看。

影视时间

最后,相信很多人看过了《釜山行》,其实导演在这部之前还弄了一个动画电影《首尔站》, 算是釜山行之前的故事, 讲述了僵尸是怎么从首尔开始传播的。 想再多了解釜山行的世界, 可以再看看这个。


文章来自微信平台「麦芽面包」
微信公众号「darkjune_think」转载请注明。
如果觉得有趣,微信扫一扫关注公众号。

你可能感兴趣的:(dns)