DNS
Domain Name System:域名系统,主要用来将域名解析为IP。DNS以及相关系统存在,主要有两个原因:
- 可以让人容易记住名字,而不是记住IP;
- 它允许服务器改变IP,但是采用同样的名字;
上网的时候,经常要通过浏览器去访问一些网站,实际上就是访问网站所在的服务器IP地址
DNS工作的过程可以简单描述为:域名地址经过DNS服务器解析后,得到对应的IP地址,通过该IP地址访问到服务器获取我们要访问的内容
DNS通信主要使用UDP,TCP为辅,使用端口号53。当然,端口号可以修改,但是默认是使用53端口;在某些情况下,也会采用TCP协议。DNS是网络分层里的应用层协议,事实上他是为其他应用层协议工作的。
DNS协议运行在UDP协议之上,使用端口号53。
linux 中有三个文件是关于 dns 解析的:
- /etc/hosts 记录 hostname 对应的ip地址
- /etc/resolv.conf 设置DNS服务器的ip地址
- /etc/host.conf 指定域名解析的顺序(是从本地的hosts文件解析还是从DNS解析)
/etc/hosts 的存在是早期网络并不是特别发达,仅仅在 hosts 中保存主机名和 ip 地址的对应关系即可满足需要,随着网络的发展逐渐出现分布式 DNS 服务,但是 /etc/hosts 形式保留下来了。
resolv.conf文件
/etc/resolv.conf
是配置DNS 域名和 ip 地址的。它包含了主机的域名搜索顺序和DNS服务器的地址,每一行应包含一个关键字和一个或多个的由空格隔开的参数。下面是一个例子文件:
search mydom.edu.cn
nameserver 210.34.0.14
nameserver 210.34.0.2
合法的参数及其意义如下:
- nameserver 表明DNS服务器的IP地址。可以有很多行的nameserver,每一个带一个IP地址。在查询时就按nameserver在本文件中的顺序进行,且只有当第一个nameserver没有反应时才查询下面的nameserver。
- domain 声明主机的域名。很多程序用到它,如邮件系统;当为没有域名的主机进行DNS查询时,也要用到。如果没有域名,主机名将被使用,删除所有在第一个点( .)前面的内容。
- search 它的多个参数指明域名查询顺序。当要查询没有域名的主机,主机将在由search声明的域中分别查找。domain和search不能共存;如果同时存在,后面出现的将会被使用。
参考:
nslookup命令
# yum install bind-utils # centos
# sudo apt-get install dnsutils # ubuntu
dig命令
DNS解析
- 前端面试题:从url到页面展现,这之中发生了什么?:一个经典的面试问题
- linux下DNS解析(nslookup、dig、host)
- 推荐-How the Domain Name System (DNS) Works
- DNS 服务原理详解
- DNS(一)抽象理解DNS
- DNS(二)通过dig命令理解DNS
- DNS(三)如何安装DNS服务器
- DNS入门理解
- DNS 解析过程详解
- DevOps-DNS 解析过程详解
- 如何清空linux的DNS缓存
- Linux中如何清除DNS缓存