如何在Linux系统中查看当前的DNS配置?

在 Linux 中查看 DNS 服务器地址,可以使用以下命令:,,“sh,cat /etc/resolv.conf,

Linux 中查看 DNS 配置的详细指南

在 Linux 系统中,了解如何查看 DNS 配置是非常重要的,它有助于排查网络连接问题、优化网络性能以及确保系统安全,以下是几种常见的查看 DNS 的方法及相关说明。

一、使用cat 命令查看 DNS 配置文件

Linux 系统的 DNS 配置通常存储在特定的配置文件中,可以通过cat 命令来查看这些文件的内容。

1. 查看/etc/resolv.conf 文件

命令cat /etc/resolv.conf

说明/etc/resolv.conf 是最常见的 DNS 配置文件,包含了系统用于域名解析的 DNS 服务器地址等信息,该文件中的每一行以nameserver 开头的行表示一个 DNS 服务器的 IP 地址,

内容示例 含义
nameserver 8.8.8.8 将 Google 提供的公共 DNS 服务器(IP 地址为 8.8.8.8)添加到 DNS 服务器列表中
nameserver 8.8.4.4 另一个 Google 公共 DNS 服务器(IP 地址为 8.8.4.4)

示例输出

Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
    DO NOT EDIT THIS FILE BY HAND YOUR CHANGES WILL BE LOST
nameserver 192.168.1.1
nameserver 8.8.8.8
search localdomain

上述输出中,系统首先尝试使用局域网网关(192.168.1.1)作为 DNS 服务器进行域名解析,若失败则使用 Google 的公共 DNS 服务器(8.8.8.8)。search 关键字后面的localdomain 表示域名搜索后缀。

2. 查看/etc/nsswitch.conf 文件(与 DNS 相关的部分)

命令cat /etc/nsswitch.conf | grep hosts

说明/etc/nsswitch.conf 文件定义了系统在不同情况下查询各种数据库(如密码、组、主机名等)的顺序,对于主机名解析,相关的配置决定了系统在解析主机名时是先使用本地缓存、DNS 还是其他方式。

内容示例 含义
hosts: files dns 表示系统在解析主机名时,首先查询本地的/etc/hosts 文件,如果未找到对应的主机名信息,再通过 DNS 进行查询。

示例输出

passwd: compat
group: compat
shadow: compat
hosts: files dns

这里显示主机名解析的顺序是先查找本地文件,再进行 DNS 查询。

二、使用nmcli 工具查看网络连接的 DNS 设置(适用于使用 NetworkManager 的网络连接)

如何在Linux系统中查看当前的DNS配置?

nmcli 是 NetworkManager 的命令行工具,可以方便地查看和管理网络连接的各种设置,包括 DNS。

查看指定网络接口的 DNS 设置

命令nmcli dev show <接口名称> | grep A 3 IP4.DNS

说明:此命令用于查看指定网络接口(如eth0wlan0 等)的 IPv4 DNS 服务器设置。<接口名称> 需要替换为实际要查询的网络接口名称,若要查看eth0 接口的 DNS 设置,命令如下:

| 命令 | 示例输出 |

| | |

| nmcli dev show eth0 | grep A 3 IP4.DNS | | | IP4.GATEWAY: 192.168.1.1 | IP4.ROUTE[1]: nh=0|UG|U|ib=eth0|ob=eth0|dst=0.0.0.0/0|gw=192.168.1.1 | IP4.ROUTE[2]: nh=0|UG|U|ib=eth0|ob=eth0|dst=169.254.0.0/16|gw= | IP4.ROUTE[3]: nh=0|UG|U|ib=eth0|ob=eth0|dst=192.168.1.0/24|gw=192.168.1.1 | IP4.ROUTE[4]: nh=0|UG|U|ib=eth0|ob=eth0|dst=192.168.122.0/24|gw= | IP4.ROUTE[5]: nh=0|UG|U|ib=eth0|ob=eth0|dst=192.168.122.128/25|gw= | IP4.ROUTE[6]: nh=0|UG|U|ib=eth0|ob=eth0|dst=192.168.122.192/26|gw= | IP4.ROUTE[7]: nh=0|UG|U|ib=eth0|ob=eth0|dst=192.168.122.224/27|gw= | IP4.ROUTE[8]: nh=0|UG|U|ib=eth0|ob=eth0|dst=192.168.122.240/28|gw= | IP4.ROUTE[9]: nh=0|UG|U|ib=eth0|ob=eth0|dst=192.168.122.248/29|gw= | IP4.ROUTE[10]: nh=0|UG|U|ib=eth0|ob=eth0|dst=192.168.122.252/30|gw= | IP4.ROUTE[11]: nh=0|UG|U|ib=eth0|ob=eth0|dst=192.168.122.254/31|gw= | IP4.ROUTE[12]: nh=0|UG|U|ib=eth0|ob=eth0|dst=192.168.122.255/32|gw= | IP4.ROUTE[13]: nh=0|UG|U|ib=eth0|ob=eth0|dst=fe80::/64 gw default | IP4.ROUTE[14]: nh=0|UG|U|ib=eth0|ob=eth0|dst=default gw 192.168.1.1 | IP4.DNS[1]: 192.168.1.1 | IP4.DNS[2]: 8.8.8.8 | |

| 此输出显示了eth0 接口的网关、路由以及 DNS 服务器设置,其中IP4.DNS[1]IP4.DNS[2] 就是该接口所使用的 DNS 服务器地址,分别为局域网网关192.168.1.1 和 Google 公共 DNS 服务器8.8.8.8。 |

三、使用systemdresolve 命令查看系统级 DNS 解析器设置

systemdresolve 是 systemd 提供的一个工具,用于查询和管理系统的 DNS 解析器设置。

查看当前系统的 DNS 服务器

命令systemdresolve status

如何在Linux系统中查看当前的DNS配置?

说明:该命令会显示系统级 DNS 解析器的状态信息,包括正在使用的 DNS 服务器、搜索域等内容。

| 输出内容 | 说明 |

| | |

| Global | Links: Ethernet, WiFi, … | 显示系统中已激活的网络连接类型 |

| | Default route cost: 10 | 默认路由的开销值 |

| Current DNS Server: 192.168.1.1 | 当前使用的 DNS 服务器地址,可能与网络连接配置相关 |

| DNS Servers: 192.168.1.1;8.8.8.8 | 系统使用的 DNS 服务器列表,多个服务器用分号分隔 |

| DNSSEC NTA: 10.inaddr.arpa | 启用了 DNSSEC(域名系统安全扩展),此选项表示不对某些特定域名进行 DNSSEC 验证 |

| (no domain) | Hosts: example.com | 列出一些已解析的主机名及其对应的 IP 地址示例 |

查询特定域名的解析结果

命令systemdresolve <域名>

如何在Linux系统中查看当前的DNS配置?

说明:此命令用于查询指定域名的解析结果,可以直接看到域名被解析到的 IP 地址。

命令 输出结果
systemdresolve google.com google.com: 8.8.8.8
Information +
Answer: CNAME “www.google.com” for google.com from 8.8.8.8:53 (cache)

四、相关问题与解答栏目

问题一:为什么修改了/etc/resolv.conf 文件后,DNS 设置没有生效?

答:在一些现代 Linux 发行版中,/etc/resolv.conf 文件由网络管理服务(如 NetworkManager、systemdresolved 等)动态生成和管理,手动编辑该文件后,如果不重启相关的网络管理服务或重新生成该文件,修改可能不会生效,正确的做法是通过相应的网络管理工具(如nmclisystemdresolve)或配置文件(如 NetworkManager 的配置文件/etc/NetworkManager/NetworkManager.conf)来进行 DNS 设置的更改,或者在修改/etc/resolv.conf 后运行以下命令使其生效:

sudo systemctl restart systemdresolved

这将重启 systemdresolved 服务,重新生成/etc/resolv.conf 文件并应用新的设置。

问题二:如何在不同的网络环境中快速切换 DNS 服务器?

答:可以使用网络管理工具提供的配置文件或命令行选项来快速切换 DNS 服务器,在使用 NetworkManager 的情况下,可以编辑/etc/NetworkManager/NetworkManager.conf 文件,在相应的网络连接配置中添加或修改dns 设置项,指定不同环境下的 DNS 服务器地址,然后重新启动 NetworkManager 服务使设置生效:

sudo systemctl restart NetworkManager

或者使用nmcli 命令临时修改网络连接的 DNS 设置,

nmcli con mod <连接名称> ipv4.dns "8.8.4.4 114.114.114.114"

这将立即更新指定网络连接的 DNS 服务器为 Google DNS(8.8.4.4)和国内常用的阿里云公共 DNS(114.114.114.114),需要注意的是,这种临时修改在连接断开或设备重启后可能会失效,除非将其保存到网络连接的配置文件中。

来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/130950.html

Like (0)
小编小编
Previous 2025年2月3日 05:54
Next 2025年2月3日 05:58

相关推荐

发表回复

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