

嘿!兄弟们
今天咱们来聊聊DNS。
咱们都知道,TCP/IP协议能让设备通过IP地址相互连接。
但对咱们用户来说,记一串IP地址实在太费劲了,所以就有人设计了用字符串给主机命名的方式,这些主机名和IP地址是一一对应的。
而在IP地址和主机名之间进行转换查询的系统,就是域名系统DNS(Domain Name System)。
可能还有刚入门的朋友对DNS不太清楚,今天就从DNS是什么、怎么配置DNS、以及推荐些好用的DNS服务器这三个方面,跟大伙好好说道说道。
今日文章阅读福利:《网工入门指南》
扫添加小助理微信,备注【入门】,即可获取。
一、到底啥是DNS?
一句话概括DNS的功能:DNS就好比一本通讯录,通讯录能根据人名查到对应的电话号码,而DNS能根据域名查到对应的IP地址。
可能有新手会问:为啥非得用IP地址,只用域名不行吗?这就得从互联网通信协议的相关知识说起了。
简单来讲,IP地址是每台计算机的唯一标识,就像每个人的身份证号一样独一无二,只有通过IP地址才能准确找到一台计算机。
但IP地址是一长串数字,记起来特别麻烦,于是就有了域名。
域名相当于IP地址的“昵称”,不过它和IP地址是一对多的关系,也就是说一个域名可能对应多个IP地址,用户访问时,只会被引导到其中一个。
所以,通过DNS查询IP地址是很有必要的。
那DNS到底是怎么工作的呢?
咱们拿www.baidu.com举个简单的例子来看看DNS的工作流程:
com被叫做“顶级域名”(top-level domain);
baidu被叫做“次级域名”(second-level domain);
www被叫做主机名,也可以称为“三级域名”。
常见的域名往往只显示三个层级,比如上面说的www.baidu.com。这是因为所有域名的最后一个根域名都是.root,平时都省略了。实际上完整的域名应该是www.baidu.com.root。
所以,域名其实是一个有四个层级的结构,也就是:主机名,次级域名,顶级域名,根域名,即host.sld.tld.root。
DNS解析域名时,就是按照这个层级结构,从根域名开始逐级向下查询。
比如咱们要查www.baidu.com:
首先会访问根域名服务器,查询.com(顶级域名)由哪台顶级域名服务器维护;
根据返回的结果,访问对应的顶级域名服务器,查询.baidu(次级域名)由哪台次级域名服务器维护;
再根据返回的结果,访问对应的次级域名服务器,查询www(主机名)对应的IP地址。
不过上面这个查询流程是由本地的DNS服务器完成的,不是咱们自己的电脑。
当咱们用浏览器访问一个域名时:
首先会查询本地电脑的/etc/hosts文件,看看里面有没有自定义的域名和IP映射设置(比如在/etc/hosts文件里把www.baidu.com映射成了127.0.0.1,那浏览器访问www.baidu.com时,实际上访问的就是自己的电脑);
如果没有对应的自定义设置,就会访问本地DNS服务器。
本地DNS服务器的IP地址可以在/etc/resolv.conf文件里查到。
本地DNS服务器会先查看自己的本地缓存,看看有没有这个域名和IP的映射,如果有,就直接返回给咱们的电脑;如果没有,就会进行上面说的查询流程。
二、6个好用的DNS服务器,哪个合你心意?
01、阿里DNS(Alidns)
这组DNS是阿里巴巴提供的,在国内的连通性还不错,但在海外部分地区的连通性就没那么理想了,具体效果大伙可以自己测试下。
阿里DNS同时提供了IPv4/IPv6服务。
IPv4:223.5.5.5、223.6.6.6
IPv6:2400:3200::1、2400:3200:baba::1
02、腾讯DNS(DNSPod)
这是由DNSPod提供的公共免费DNS,后来DNSPod被腾讯(Tencent)收购,现在属于腾讯公司。它的稳定性和连通性都不错,经测试在海外也能使用。
IPv4:119.29.29.29
IPv6:2402:4e00::
03、Google Public DNS
Google Public DNS是最受欢迎的免费DNS服务器之一,它的服务器分布在全球各地的数据中心。
一旦连接到它的IP地址,会自动分配距离最近的服务器,能给不同地区的用户提供稳定又快速的访问体验。
谷歌DNS的IP地址很好记,是8.8.8.8。
把默认DNS改成谷歌的公共DNS服务器,能获得更快的浏览速度和更高的安全性,而且它提供了两个DNS服务器地址,可以分别设为首选和备用。
地址:8.8.8.8、8.8.4.4
04、360安全DNS
这是360提供的DNS服务,只支持IPv4服务。
针对中国电信/铁通/移动的IPv4:101.226.4.6、218.30.118.6
针对中国联通的IPv4:123.125.81.6、140.207.198.6
05、百度DNS
这是中国最大的搜索引擎百度提供的公共DNS,经测试在海外的连通性也不错。
目前百度只提供了一组IPv4和IPv6 DNS地址。
IPv4:180.76.76.76
IPv6:2400:da00::6666
06、CNNIC DNS
这是由中国互联网信息中心CNNIC提供的免费公共DNS,同时支持IPv4和IPv6。
IPv4:1.2.4.8、210.2.4.8
IPv6:2001:dc7:1000::1