以下是几种最常用和有效的方法,从最简单直接的开始。
方法一:查看当前正在使用的 DNS 服务器(最推荐)
系统解析域名时,真正使用的 DNS 服务器可能来自多个来源(网络管理器、/etc/resolv.conf
、systemd-resolved),最好的方法是使用resolvectl
命令(systemd-resolved 服务)或nmcli
命令(NetworkManager)。
1. 使用resolvectl status
命令(适用于大多数现代发行版)
如果您的系统使用systemd-resolved
(Ubuntu、Fedora、Debian 等默认使用),这是最准确的方法。
resolvectl status
或者简写:
resolvectl stat
输出示例:
Global Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported resolv.conf mode: stub-link Link 2 (eth0) Current Scopes: DNS Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported Current DNS Server: 192.168.1.1 DNS Servers: 192.168.1.1 DNS Domain: ~.
这里清晰地显示了当前网卡 (eth0) 正在使用的 DNS 服务器是192.168.1.1
(通常是我的路由器)。
2. 使用nmcli
命令(如果使用 NetworkManager)
如果你的桌面或服务器使用 NetworkManager 管理网络,这个方法很好用。
nmcli dev show | grep DNS
输出示例:
IP4.DNS[1]: 192.168.1.1 IP6.DNS[1]: fe80::1%eth0
这会显示由 NetworkManager 分配给的 DNS 服务器地址。
方法二:查看传统的配置文件/etc/resolv.conf
这个文件是传统的 DNS 解析器配置文件。但请注意:在现代系统中,这个文件通常是由网络服务(如 systemd-resolved, NetworkManager, dhclient)动态生成的,直接编辑它可能会被覆盖,它显示的是当前系统解析器实际使用的配置。
cat /etc/resolv.conf
输出示例:
This file is managed by man:systemd-resolved(8). Do not edit. # This is a dynamic resolv.conf file. DO NOT EDIT THIS FILE! nameserver 127.0.0.53 options edns0 trust-ad search .
重要提示: 如果你看到nameserver 127.0.0.53
或127.0.0.1
,这表示系统正在使用一个本地 DNS 缓存守护进程(如 systemd-resolved 或 dnsmasq),真正的上游 DNS 服务器需要用法一中的命令查看。
方法三:查看静态网络配置(看网卡的静态设置)
如果你想看某个网络接口的静态配置(开机或重启网络时可能会被应用),你需要查看对应的配置文件,位置和格式因发行版而异。
1. 对于使用Netplan
的系统(如 Ubuntu 18.04+)
配置文件在/etc/netplan/
目录下。
cat /etc/netplan/*.yaml
2. 对于使用NetworkManager
文本连接的系统
nmcli con show “你的连接名” | grep ipv4.dns
首先用nmcli con show
查看连接名。
3. 对于使用传统ifcfg
脚本的系统(如 CentOS 7, RHEL 7)
配置文件在/etc/sysconfig/network-scripts/
目录下,文件名类似ifcfg-eth0
。
cat /etc/sysconfig/network-scripts/ifcfg-eth0 | grep DNS
方法四:使用dig
命令(测试而非查看配置)
dig
命令用于查询 DNS 服务器,而不是查看本地配置,但它可以巧妙地用来显示你的系统默认使用哪个 DNS 服务器进行查询。
dig | grep SERVER
输出示例:
;; SERVER: 127.0.0.53#53(127.0.0.53)
这再次证实,系统上的应用程序正在向本地的127.0.0.53
(即 systemd-resolved)发送 DNS 查询请求。
命令 | 作用 | 推荐度 |
resolvectl status | 查看当前生效的、真正用于解析的 DNS 服务器 | ⭐⭐⭐⭐⭐最佳选择 |
nmcli dev show | 查看由 NetworkManager 管理的 DNS 服务器 | ⭐⭐⭐⭐ |
cat /etc/resolv.conf | 查看解析器使用的当前配置(但可能是本地缓存地址) | ⭐⭐⭐ |
查看/etc/netplan/ 等文件 | 查看静态配置,而不是当前运行时配置 | ⭐⭐ |
给你的建议:
1、首先尝试resolvectl status
,它通常能给你最清晰、最准确的答案。
2、 如果提示命令未找到,再尝试nmcli
或查看/etc/resolv.conf
。
3、 记住/etc/resolv.conf
中的127.0.0.xx
地址代表本地缓存服务,真正的上游 DNS 需要用法一的命令查看。
文章摘自:https://idc.huochengrm.cn/dns/13731.html
评论