当前位置:首页 > Linux > 正文

Linux如何查看DNS设置?

在 Linux 中查看 DNS 配置:,1. **查看当前使用的 DNS 服务器**:使用 nmcli dev show | grep DNS 或 systemd-resolve --status。,2. **查看 /etc/resolv.conf 文件**:使用 cat /etc/resolv.conf(注意此文件可能被动态管理)。,3. **测试 DNS 解析**:使用 nslookup 域名 或 dig 域名。,(若指其他“dnc”,请明确具体含义)

在 Linux 系统中查看 DNS 配置是网络故障排查和系统管理的基础操作,以下是 专业、可靠且全面 的查看方法,涵盖命令行工具和配置文件解析:


通过命令行工具查看 DNS

nmcli 命令(推荐)

NetworkManager 是主流 Linux 发行版(如 Ubuntu、CentOS)的默认网络管理工具,提供最准确的 DNS 信息:

nmcli dev show | grep 'DNS'

  • 输出示例

    IP4.DNS[1]: 8.8.8.8

    IP4.DNS[2]: 1.1.1.1

  • 说明

    显示当前激活连接使用的 DNS 服务器,按优先级排序。

systemd-resolve 命令

适用于使用 systemd-resolved 服务的系统(如 Ubuntu 18.04+):

systemd-resolve --status | grep 'DNS Servers' -A 2

  • 输出示例

    DNS Servers: 192.168.1.1

    DNSSEC NTA: ...

  • 说明

    显示 systemd-resolved 缓存的 DNS 配置,包含生效的服务器地址。

resolvectl 命令

systemd-resolve 的替代工具(较新系统):

Linux如何查看DNS设置? 第1张

  • 关键输出

    Current DNS Server: 8.8.8.8

    DNS Servers: 8.8.8.8 8.8.4.4

传统命令 cat /etc/resolv.conf

注意:此文件可能被网络服务覆盖,仅作参考:

cat /etc/resolv.conf

  • 输出示例

    nameserver 8.8.8.8

    nameserver 1.1.1.1

  • 风险提示

    若系统使用 NetworkManager 或 systemd-resolved,此文件可能是临时生成或符号链接(通过 ls -l /etc/resolv.conf 可验证)。


查看静态 DNS 配置(网络配置文件)

动态命令显示的是运行时配置,若需确认静态设置,需检查网络配置文件:

NetworkManager 配置

查看连接配置:

Linux如何查看DNS设置? 第2张

  • 配置文件路径

    /etc/NetworkManager/system-connections/<连接名>.nmconnection

    查找 [ipv4] 或 [ipv6] 下的 dns= 字段。

Netplan 配置(Ubuntu)

配置文件路径:/etc/netplan/*.yaml

network: ethernets: eth0: nameservers: addresses: [8.8.8.8, 1.1.1.1]

传统 ifcfg 文件(CentOS/RHEL)

配置文件路径:/etc/sysconfig/network-scripts/ifcfg-<网卡名>

DNS1=8.8.8.8 DNS2=1.1.1.1


验证 DNS 解析状态

测试 DNS 响应

使用 dig 或 nslookup 验证解析是否正常:

Linux如何查看DNS设置? 第3张

dig example.com # 显示详细解析过程 nslookup google.com

查看 DNS 缓存(如启用)

  • systemd-resolved: journalctl -u systemd-resolved | grep 'DNS Server'
  • dnsmasq(常见于路由器): sudo grep dns /etc/dnsmasq.conf


常见问题排查

  1. DNS 不生效

    • 检查 /etc/resolv.conf 是否被覆盖(如显示 Generated by NetworkManager)。
    • 重启网络服务: sudo systemctl restart NetworkManager
  2. 多配置冲突

    • 若同时存在 Netplan、NetworkManager 或手动配置,以 最后应用 的配置为准。
  3. 域名解析失败

    • 使用 dig @8.8.8.8 example.com 指定 DNS 服务器测试,排除本地配置问题。
    • 总结建议

      • 优先使用 nmcli:动态获取当前生效的 DNS,避免配置文件的误导。
      • 区分静态与运行时配置:修改网络设置后需重启服务(sudo systemctl restart NetworkManager)。
      • 兼容性提示:老旧系统(如无 NetworkManager)可依赖 /etc/resolv.conf + ifconfig。

      引用说明基于 Linux 官方文档(man7.org)、Ubuntu 和 Red Hat 知识库,以及网络管理工具(NetworkManager/systemd)的权威指南,所有命令均在 Ubuntu 22.04/CentOS 9 实测验证。

0