Linux DNS 解析与配置 nslookup使用 与 /etc/resolv.conf文件的配置

这篇具有很好参考价值的文章主要介绍了Linux DNS 解析与配置 nslookup使用 与 /etc/resolv.conf文件的配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Linux DNS 解析与配置


当我接收到一批新的服务器时,尝试连接外网,比如访问百度的首页:

curl  www.baidu.com

resolv.conf,shell,linux,服务器,运维

发现报错,不能解析正确的主机名。这个其实就是主机在解析主机名时没能正确发现对应的主机的 ip。当我们使用类似于域名等去访问时,最后都是由 DNS 解析并返回具体的 ip 地址,最终访问到具体的 ip 也就是某服务器。

当报错如上时,多半是 /etc/resolv.cof 文件未能正确配置导致,可以更改为:

# Generated by NetworkManager
search huangyichun.com
nameserver 8.8.8.8
nameserver 114.114.114.114

resolv.conf

这个文件是 DNS 的 client 端使用的文件,用于设置 DNS 服务器的 ip 地址以及 DNS 域名,还可以配置域名搜索顺序等等。主要包含如下关键字:

  • nameserver
  • domain
  • search
  • sortlist
  • options

他们设置的格式都是 关键字+空格 + 参数。他们之间是有顺序的,从上往下的顺序进行加载。


nameserver

标示 DNS 服务器的 IP 地址,可以有多行的 nameserver,优先查找上面的 DNS 服务器,是尝试通过 DNS 服务器来解析主机名的主要方法。当第一个 DNS 超时时,会转向第二个 DNS 继续请求,除非配置了 options


domain

主机的域名。不与 search 共存,只存在最后一条。表示该主机的域名是多少。比如 www.huangyichun.com 的域名就是 huangyichun.com。详细看 search


search

可以有多个参数,当要查询没有域名的主机,那么将会在申明的域中进行查找。大体上来说 searchdomain 并没有什么区别,他们都是在如果没有输入完整的网址时进行补全域名的功能。比如,我们直接 ping www 都不知道究竟是哪一个 www,如果配置了 domain 或者 search 那么直接帮助补全:

cat /etc/resolv.conf
# Generated by NetworkManager
#domain huangyichun.com
#nameserver 8.8.8.8
#nameserver 114.114.114.114


nslookup www

resolv.conf,shell,linux,服务器,运维


sortlist

允许将得到域名结果进行特定的排序。


options

可选的参数。

  • rotate,当配置rotate后,进行DNS解析时,对配置的多个search进行轮循查询,这样可以减轻第一个DNS的解析工作。
  • debug,开启debug模式。
  • ndots:n,设置在初始查询之前,必须出现的点数阈值。n默认为1,意味着如果名称中只要有点,就会在任何搜索列表元素附加到该名称之前,将首先尝试将名称作为绝对名称。
  • timeout:n,设置等待nameserver的秒数,如果超时则会开始访问下一个nameserver,默认为5。
  • attempts:n,设置对于nameserver重试次数,默认为2。

这里只展示了部分参数,其余参数请参照:

resolv.conf(5) - Linux manual page


举个例子

我们之前配置的 searchnameserver

resolv.conf,shell,linux,服务器,运维

将设定域名在 huangyichun.com 下进行补全,DNS 解析时优先 8.8.8.8,其次为 114.114.114.114


怎么解析百度

百度是我们的好朋友,我们直接想一下怎么解析的百度的网址 www.baidu.com

使用 nslookup www.baidu.com 可以直接解析完毕,并返回器结果:

nslookup www.baidu.comcd

resolv.conf,shell,linux,服务器,运维

可以看到解析的结果为 39.156.66.14,在浏览器上直接访问该地址,可以访问百度页面:

resolv.conf,shell,linux,服务器,运维

现在我们使用 nslookup 查看一下域名的解析流程。

注意是域名的解析流程,在 linux 中,并不止是域名的解析,还有主机的解析,也就是 /etc/hosts 等等


流程

  1. ping www.baidu.com,然后会根据 resolv.conf 文件发送 DNS 解析请求。
  2. DNS客户端 解析器会将解析请求发送到 本地DNS服务器
  3. 本地 DNS 服务器会向 .根服务器 发送 com.服务器 的解析请求。
  4. .根服务器 返回 com.服务器 地址,本地 DNS 继续请求 com.服务器 获取 baidu.com.服务器 地址。
  5. 根据返回的地址信息,本地 DNS 继续请求 www.baidu.com.服务器 地址,获取后返回给 DNS客户端
  6. 客户端拿到 DNS 后进行 ip 访问。

这里可能有几个疑惑的地方:

  1. 域名的完整格式其实应该是 xxxx.root,也就是后缀名都是 .root.root 服务器我们称之为 根服务器。但是 根服务器 每次都是 .root 没有必要显示,所以可以简化去除。

resolv.conf,shell,linux,服务器,运维

  1. 查找域名地址,其实都是从后往前进行查找,也就是先 root,后 domain
  2. 本地 DNS 服务器进行查找的时候,是迭代查找;而 DNS 客户端在请求本地 DNS 服务器时,是递归查找。如果超时,会更换 DNS 服务器。(迭代其实很慢,但是一个服务器没办法进行所有的域名 +ip 的存储,当该服务器不知道时,会将请求应答为 xxxx服务器 可能知道。)
  3. 并不是每次查询都会到 根服务器,当 本地DNS服务器 有缓存时,就会直接返回,并且标注 Non-authoritative,如果是查询到 根服务器,那么就会标注 authoritative

nslookup

我们使用 nslookup 来模拟整个域名解析的流程:

nslookup
> set type=ns
> .

resolv.conf,shell,linux,服务器,运维

type=ns 代表查询 nameserver,查询 根服务器 地址,返回了 a 到 m 的共计 13 个 nameserver,并且都是 Non-authoritative#53 标示 53 端口,也是默认的 DNS 端口(一般 UDP 传输)。

继续查询 nameserver 对应的 ip 地址:

查询地址的ipv4
set type=a
a.root-servers.net.

resolv.conf,shell,linux,服务器,运维

获取 跟服务器 的地址后,我们与 根服务器 进行沟通,获取 com. 地址。

server 198.41.0.4
set type=ns
com.

resolv.conf,shell,linux,服务器,运维

获取到了能够解析 com. 的 nameserver 列表,继续获取对应的 ip:

set type=a
a.gtld-servers.net.
# 这里的gtld 代表:通用顶级域名,generic top level domain

resolv.conf,shell,linux,服务器,运维

这样我们可以跟 com. 进行通话,获取 baidu.com 地址:

server 192.5.6.30
set type=ns
baidu.com

resolv.conf,shell,linux,服务器,运维

可以看到 baidu.com 有几个可以进行解析,我们继续获取 ip,然后进行 www.baidu.com 的解析:

set type=a
dns.baidu.com.
server 110.242.68.134
www.baidu.com

resolv.conf,shell,linux,服务器,运维

最后我们得到了 www.baidu.com 的 dns 解析结果为 39.156.66.14


www.huangyichun.com

如果我们要解析 www.huangyichun.com 也是一样的,找到 .com 地址,然后看 huangyichun.com 哪里能解析,与对应的 nameserver 对话,解析即可。

resolv.conf,shell,linux,服务器,运维

gravel.dnspod.net.

mantis.dnspod.net.

这两个就是腾讯云的 DNS 解析,说明该服务器大概率部署在腾讯云上。文章来源地址https://www.toymoban.com/news/detail-800559.html


问题

  1. 为什么我们解析 google.com 这类服务器无法解析呢?那当然是 IPS 提供商的内容。
  2. 谁来管理 .服务器,Root Servers 当前有 13 个不同的域名,也就是之前的[a-m].root-servers.net,当前公狗大概 1500 个服务器,在 12 个管理机构中运行。

到了这里,关于Linux DNS 解析与配置 nslookup使用 与 /etc/resolv.conf文件的配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ubuntu20.04/etc/resolv.conf 语法语义解释

    在 Ubuntu 20.04 中,`/etc/resolv.conf` 文件的语法和语义有一些变化。在该版本中,`/etc/resolv.conf` 文件不再直接用于配置 DNS 解析器,而是由 `systemd-resolved` 服务动态生成和管理。 `/etc/resolv.conf` 文件中的内容通常会被 `systemd-resolved` 自动生成,并包含以下注释行: ``` # This file is m

    2024年02月02日
    浏览(40)
  • linux设置日志文件保存时间为6个月(/etc/logrotate.conf)

    1、编辑/etc/logrotate.conf文件 将全局的weekly下的rotate 4改为rotate 24,表示6个月; 将指定文件的monthly下的rotate 1改为rotate 6,表示6个月。  2、重启日志服务

    2024年02月11日
    浏览(50)
  • Linux下/sysconfig/network、hosts、host.conf、resolv.conf文件解释

    原文链接: https://blog.csdn.net/f641385712/article/details/105233229 用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序。该文件由域名解析器来读取(下面会有Java代码示例)

    2024年02月11日
    浏览(65)
  • 使用nslookup命令查询DNS的记录

    nslookup命令用于查询DNS的记录,可以用来查看域名解析是否正常,在网络故障的时候用来诊断网络问题。具体用法如下: 直接查询,返回的是A记录: 如果未指定dns-server,将使用系统默认的DNS服务器。例如: 查询其他记录,比如AAAA、MX等,可以使用以下命令: 其中,type指定

    2024年02月11日
    浏览(27)
  • 解析Nginx配置文件conf中的常用块

    Nginx是一个高性能的HTTP和反向代理服务器,它的配置文件主要由多个块组成。 本文将介绍Nginx配置文件中的常用块及其功能 。 events块 events块用于设置Nginx的工作模式和连接数相关的参数。 http块 http块用于配置Nginx处理HTTP请求的相关参数。 server块 server块用于配置一个虚拟主

    2024年01月19日
    浏览(36)
  • Linux教程——Linux /etc/shadow(影子文件)内容解析(超详细)

    /etc/shadow 文件,用于存储 Linux 系统中用户的密码信息,又称为“影子文件”。 前面介绍了 /etc/passwd 文件,由于该文件允许所有用户读取,易导致用户密码泄露,因此 Linux 系统将用户的密码信息从 /etc/passwd 文件中分离出来,并单独放到了此文件中。 /etc/shadow 文件只有 root 用

    2024年02月05日
    浏览(69)
  • Redis docker安装及redis.conf配置文件解析

    基础配置 配置端口 远程访问 protected-mode 是为了禁止公网访问redis cache,加强redis安全的。即使配置为yes,也只有在以下两个条件下才会启用 1) 没有bind IP 2) 没有设置访问密码 如果有公网访问需求,建议配置为yes,同时尝试以下两种配置: 配置bind ip限制登录地址 注释掉

    2024年02月05日
    浏览(51)
  • linux smb.conf文件配置

    smb.conf文件是smb服务的唯一的一个配置文件,用来配置smb共享文件 smb.conf文件中有包括一些全局设置和局部设置,已\\\"[***]\\\"作为分割每个文件配置,但是在“[global]”中的配置则为全局配置,对整个smb服务器有效 [global] samba服务器的全局设置,对整个服务器有效。 workgroup 语法:

    2024年02月12日
    浏览(49)
  • Liunx的/etc/resov.conf配置的options rotate对nameserver行为的影响

    探讨在linux环境下的dns客户端配置 /etc/resov.conf配置的options rotate对nameserver中解析行为的影响以及常遇到的几个相关问题。 通过执行命令 man resolv.conf 查看rotate的说明 翻译成中文 因此配置 options rotate 前后的业务行为表现差异如下 不配置 options rotate ,客户端程序如果尝试解析

    2024年01月21日
    浏览(25)
  • Linux下的sudo及其配置文件/etc/sudoers详细配置

    这篇文章主要介绍了详解Linux下的sudo及其配置文件/etc/sudoers的详细配置的相关资料,需要的朋友可以参考下。 1.sudo介绍 sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等。这样不仅减少了

    2024年02月06日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包