请别随意动我的DNS,防范DNS被劫持风险

字节跳动旗下云计算服务推出的公共 DNS

究竟是何坑 

日前字节跳动旗下云计算服务火山引擎推出公共 DNS 公测版,采用 BGP 任播为国内用户提供更快的地址解析。回想前些年百度、阿里巴巴、腾讯、360 等集中推出公共 DNS,用来解决运营商的 DNS 速度慢和劫持等问题。现在字节跳动推出公共 DNS,不知道会不会带动其他中小型云计算厂商也推出公共 DNS 让用户有更多选择。

先得吐槽下字节跳动:

好消息是各位如果想要测试字节跳动的 DNS 只需要自己修改即可,只不过蓝点网变成冤大头贡献了实名信息。
原因在于字节跳动火山引擎官网的公共 DNS 公测版点击后提示要注册账号,注册账号后提示要实名认证,实名认证后要下单开通。然而在开通之后就直接提供 DNS 的 IP 地址以及支持文档,实际上这些都是公开的,完全没必要注册实名认证。
不得不说字节跳动这波着实有些坑,既然都是免费提供的为何在官网还强迫用户注册账号实名认证后才能看。

以下是火山引擎公共DNS信息:

目前仅支持 IPv4 协议: DNS IP 为 180.184.1.1 备用 DNS IP 为 180.184.2.2 目前只提供基本的 DNS 解析功能。
字节跳动的公共 DNS 采用 BGP Anycast 技术,在全国提供多个接入点,当用户发起请求时转发至最近节点。该 DNS 也会缓存 DNS 记录,当用户请求命中缓存时,无需向权威 DNS 服务器发送请求即可快速返回解析结果
另外该 DNS 使用流量清洗和 IP 黑名单等抗 DDoS 攻击方案 ,字节跳动也强调绝对不会利用公共 DNS 劫持用户。说到这,要是某电商公司后续也推出公共 DNS,那劝大家最好别用,手机上都能劫持,DNS 肯定也能动手脚。
 

DNS究竟是啥?

一、什么是DNS?首先,我们需要明白什么是DNS。DNS是Domain Name System(域名系统)的缩写,它是将网址转换成IP地址的一个服务。当我们在浏览器中输入一个网址时,DNS就会把网址转换为相应的IP地址,使得我们能够正常访问网站。

二、为什么要修改DNS?虽然DNS是一个十分重要的服务,但有时候我们还是需要修改它。下面是一些可能需要修改DNS的情况:

访问某些网站时速度很慢或者无法访问。需要加快特定网站的访问速度。需要通过DNS设置访问控制,以限制访问某些网站。

DNS小贴士: 

  • 域名与IP

不知道有没有这样的经历,有时候微信、QQ可以发送消息,也能登录,但是打不开网页,咨询有经验的大佬或者运营商的客服都会告诉你一件事,检查DNS是不是对的,那为什么要检查DNS呢?

学过之前的理论都知道在如今TCP/IP为主流的互联网中,不管访问什么应用都得知道对方的IP地址,那么我们在浏览器中输入baidu.com,ccieh3c.com的时候,主机怎么会知道这个域名对应的IP是多少呢?

这就是要使用到一个协议,叫做DNS,域名解析协议,它可以将域名转换成具体的IP地址。

  • 了解域名

DNS中的域名是使用句点来分割,来划分层次,比如zhidao.baidu.com,越往右边表示层越高。这里可能初学者一看有点迷糊,因为域名这个内容是外国人发明的,思维与我们正好相反,外国称呼一个具体地点为XX 街 XX 区 XX 市 XX 省,而中国的顺序 XX 省 XX 市 XX 区 XX街道,域名也是根据这样的思维排序的,最顶层是根域,下一层是顶级域(com)、再下一层是二级域名(baidu),再下一层就是三级域名(zhidao),连起来就是zhidao.baidu.com,可以发现域名的层次关系比较类似于树状结构。(其中根域是最后用【.】表示,但是在实际使用中并不表示出来)

 

  • 根域的DNS服务器中保存了互联网所有的DNS服务器地址,所以在互联网中任何DNS服务器能够顺利的找到根域DNS。(上图就是Windows服务器装了DNS服务后,内置的根域)

  • 对应的客户终端设备只要知道任意一台DNS服务器,就可以通过它找到其他的DNS,最终解析到目标,这就是客户端需要DNS的原因,如果没有DNS,则无法把域名解析成IP,导致访问失败。

 域名解析的流程

这里可以填下第二篇的一个坑,在第二篇里面介绍过打开一个网页它首先要知道对方的IP地址,所以浏览器会查看缓存里面是否有记录,如果没有,则向DNS服务器询问,具体步骤如下:

  1. 客户端会发出一个DNS请求,询问www.baidu.com的IP是什么,这个请求交给本地DNS服务器处理(本地DNS则为客户端TCP/IP中手动填写或者自动获取到的地址)

  2. 本地DNS服务器收到请求后,如果缓存中能找到www.baidu.com的记录,则直接告诉对应的IP地址,如果没有,本地DNS会去问根域:大哥,能告诉我 www .baidu.com的IP地址吗?从这里可以看出来当本地DNS没有对应的缓存记录的时候,会向根域进行求助,当然根域不会记录任何域名信息,它只记录DNS服务器地址,当有请求询问的时候,告诉对方找谁可以得到答案,指明一个方向。

  3. 根域收到本地DNS请求后,发现顶级域是.com,告诉本地DNS,”这个是.com区域管理的地址,你去问问它。“

  4. 本地DNS得到大哥的帮助后,继续发起请求“二哥,能告诉我www. Baidu.com的IP地址吗?”

  5. 顶级.com域名回复:“我知道baidu.com区域权威DNS服务器地址,你问问它应该能得到答案”

  6. 本地DNS继续向权威DNS发起请求:“三哥,www.baidu.com,对应的IP是多少”权威的意思就是这个区域,它说了算(负责维护、删除、新建)

  7. 权威DNS查询后将对应的IP地址告诉本地DNS

  8. 最终本地DNS将IP地址以DNS协议回应给客户端,客户端终于知道了目标的IP,开始发起访问。(本地DNS会缓存得到的结果)

怎么选DNS呢?

作为IT实施人员或者维护人员,在规划、搭建一个网络经常要考虑的一件事件就是,给客户分配什么样的DNS,错误的DNS会造成网页打不开等情况。在国内的话,分为两种类型(1)公共DNS  (2)运营商DNS,那这两种什么情况下使用呢?

  • 如果客户网络只存在一个运营商的情况下,使用运营商的DNS效果最佳(运营商DNS,通常运营商会写在猫上面,或者通过拨号可以看到)

  • 公有DNS:通常用在客户网络存在多个运营商,或者不知道对应运营商的DNS的情况下,可以使用公有DNS。(下面列出比较知名的公用DNS)

     

总结:

最后网玩君提醒大家,千万别随意更改你的DNS,因为一些不良软件或非法网站会劫持你的DNS来套取你的个人隐私,让你蒙受损失,切记!

如果感觉你的电脑异常,记住下面的命令帮你解决DNS被劫持的风险。

1、地址释放:ipconfig/release,释放掉获取的地址,通常是在测试的环境下使用,比如我们做了某些地址绑定,释放掉这个在重新获取看下是否成功。

2、重新获取:ipconfig/renew,重新获取IP地址,跟上面类似,测试的时候使用。

3、清空DNS缓存:ipconfig/flushdns,清空本机已经缓存的DNS记录,在获取到错误的解析的时候,可以使用该命令清空

4、查看DNS缓存:ipconfig/displaydns,查看本地缓存的DNS记录

今天的分享就到这,如果对大家有用,

原创文章,作者:速盾高防cdn,如若转载,请注明出处:https://www.sudun.com/ask/93429.html

(0)
速盾高防cdn's avatar速盾高防cdn
上一篇 2024年7月8日 下午6:18
下一篇 2024年7月9日 下午2:14

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注