linux DNS 解析与配置 序 当我接收到一批新的服务器时,尝试连接外网,比如访问百度的首页: curl www.baidu.com 发现报错,不能解析正确的主机名。这个其实就是主机在解析主机名时没能正确发现对应的主机的 ip。当
当我接收到一批新的服务器时,尝试连接外网,比如访问百度的首页:
curl www.baidu.com
发现报错,不能解析正确的主机名。这个其实就是主机在解析主机名时没能正确发现对应的主机的 ip。当我们使用类似于域名等去访问时,最后都是由 DNS 解析并返回具体的 ip 地址,最终访问到具体的 ip 也就是某服务器。
当报错如上时,多半是 /etc/resolv.cof
文件未能正确配置导致,可以更改为:
# Generated by NetworkManagersearch huangyichun.comnameserver 8.8.8.8nameserver 114.114.114.114
这个文件是 DNS 的 client 端使用的文件,用于设置 DNS 服务器的 ip 地址以及 DNS 域名,还可以配置域名搜索顺序等等。主要包含如下关键字:
他们设置的格式都是 关键字
+空格
+ 参数
。他们之间是有顺序的,从上往下的顺序进行加载。
标示 DNS 服务器的 IP 地址,可以有多行的 nameserver,优先查找上面的 DNS 服务器,是尝试通过 DNS 服务器来解析主机名的主要方法。当第一个 DNS 超时时,会转向第二个 DNS 继续请求,除非配置了 options
。
主机的域名。不与 search
共存,只存在最后一条。表示该主机的域名是多少。比如 www.huangyichun.com
的域名就是 huangyichun.com
。详细看 search
。
可以有多个参数,当要查询没有域名的主机,那么将会在申明的域中进行查找。大体上来说 search
和 domain
并没有什么区别,他们都是在如果没有输入完整的网址时进行补全域名的功能。比如,我们直接 ping www
都不知道究竟是哪一个 www
,如果配置了 domain
或者 search
那么直接帮助补全:
cat /etc/resolv.conf# Generated by NetworkManager#domain huangyichun.com#nameserver 8.8.8.8#nameserver 114.114.114.114nslookup www
允许将得到域名结果进行特定的排序。
可选的参数。
rotate
,当配置rotate后,进行DNS解析时,对配置的多个search进行轮循查询,这样可以减轻第一个DNS的解析工作。debug
,开启debug模式。ndots:n
,设置在初始查询之前,必须出现的点数阈值。n默认为1,意味着如果名称中只要有点,就会在任何搜索列表元素附加到该名称之前,将首先尝试将名称作为绝对名称。 timeout:n
,设置等待nameserver
的秒数,如果超时则会开始访问下一个nameserver
,默认为5。attempts:n
,设置对于nameserver
重试次数,默认为2。这里只展示了部分参数,其余参数请参照:
我们之前配置的 search
与 nameserver
将设定域名在 huangyichun.com
下进行补全,DNS 解析时优先 8.8.8.8
,其次为 114.114.114.114
。
百度是我们的好朋友,我们直接想一下怎么解析的百度的网址 www.baidu.com
。
使用 nslookup www.baidu.com
可以直接解析完毕,并返回器结果:
nslookup www.baidu.comcd
可以看到解析的结果为 39.156.66.14
,在浏览器上直接访问该地址,可以访问百度页面:
现在我们使用 nslookup
查看一下域名的解析流程。
注意是域名的解析流程,在 linux 中,并不止是域名的解析,还有主机的解析,也就是 /etc/hosts 等等
ping www.baidu.com
,然后会根据 resolv.conf
文件发送 DNS 解析请求。DNS客户端
解析器会将解析请求发送到 本地DNS服务器
。.根服务器
发送 com.服务器
的解析请求。.根服务器
返回 com.服务器
地址,本地 DNS 继续请求 com.服务器
获取 baidu.com.服务器
地址。www.baidu.com.服务器
地址,获取后返回给 DNS客户端
。这里可能有几个疑惑的地方:
xxxx.root
,也就是后缀名都是 .root
,.root
服务器我们称之为 根服务器
。但是 根服务器
每次都是 .root
没有必要显示,所以可以简化去除。root
,后 domain
。xxxx服务器
可能知道。)根服务器
,当 本地DNS服务器
有缓存时,就会直接返回,并且标注 Non-authoritative
,如果是查询到 根服务器
,那么就会标注 authoritative
。我们使用 nslookup
来模拟整个域名解析的流程:
nslookup> set type=ns> .
type=ns 代表查询 nameserver,查询 根服务器
地址,返回了 a 到 m 的共计 13 个 nameserver,并且都是 Non-authoritative
。#53
标示 53 端口,也是默认的 DNS 端口(一般 UDP 传输)。
继续查询 nameserver 对应的 ip 地址:
查询地址的ipv4set type=aa.root-servers.net.
获取 跟服务器
的地址后,我们与 根服务器
进行沟通,获取 com.
地址。
server 198.41.0.4set type=nscom.
获取到了能够解析 com.
的 nameserver 列表,继续获取对应的 ip:
set type=aa.gtld-servers.net.# 这里的gtld 代表:通用顶级域名,generic top level domain
这样我们可以跟 com.
进行通话,获取 baidu.com
地址:
server 192.5.6.30set type=nsbaidu.com
可以看到 baidu.com
有几个可以进行解析,我们继续获取 ip,然后进行 www.baidu.com
的解析:
set type=adns.baidu.com.server 110.242.68.134www.baidu.com
最后我们得到了 www.baidu.com
的 dns 解析结果为 39.156.66.14
。
如果我们要解析 www.huangyichun.com
也是一样的,找到 .com
地址,然后看 huangyichun.com
哪里能解析,与对应的 nameserver
对话,解析即可。
gravel.dnspod.net.
mantis.dnspod.net.
这两个就是腾讯云的 DNS 解析,说明该服务器大概率部署在腾讯云上。
Google.com
这类服务器无法解析呢?那当然是 IPS 提供商的内容。.服务器
,Root Servers 当前有 13 个不同的域名,也就是之前的[a-m].root-servers.net
,当前公狗大概 1500 个服务器,在 12 个管理机构中运行。来源地址:https://blog.csdn.net/qq_36610426/article/details/128541090
--结束END--
本文标题: Linux DNS 解析与配置 nslookup使用 与 /etc/resolv.conf文件的配置
本文链接: https://lsjlt.com/news/551768.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0