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

Linux如何查看DNS设置?

在 Linux 中查看 DNS 配置:,1. **查看当前使用的 DNS 服务器**:使用 nmcli dev show | grep DNSsystemd-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 的替代工具(较新系统):

resolvectl status
  • 关键输出
    Current DNS Server: 8.8.8.8
    DNS Servers: 8.8.8.8 8.8.4.4

传统命令 cat /etc/resolv.conf

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

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

cat /etc/resolv.conf
  • 输出示例
    nameserver 8.8.8.8
    nameserver 1.1.1.1
  • 风险提示
    若系统使用 NetworkManager 或 systemd-resolved,此文件可能是临时生成或符号链接(通过 ls -l /etc/resolv.conf 可验证)。

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

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

NetworkManager 配置

查看连接配置:

nmcli con show <连接名> | grep dns
  • 配置文件路径
    /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 响应

使用 dignslookup 验证解析是否正常:

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