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 配置是网络故障排查和系统管理的基础操作,以下是 专业、可靠且全面 的查看方法,涵盖命令行工具和配置文件解析:

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

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

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

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

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

Linux如何查看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 不生效

    Linux如何查看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 实测验证。

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/38207.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年6月24日 19:15
下一篇 2025年6月24日 19:20

相关推荐

  • 怎样快速掌握Linux命令

    掌握基础命令后,通过实践任务巩固,善用man命令查看官方手册,理解选项和用法,利用–help选项快速获取帮助,在真实环境或虚拟机中动手操作,从文件管理、文本处理等常用场景开始练习,持续使用、查阅资料和解决实际问题是最有效的学习方法。

    2025年6月17日
    000
  • Linux磁盘分区怎么操作?

    在 Linux 中,主要使用 fdisk(适用于 MBR)和 parted(支持 GPT/MBR)命令进行磁盘分区,gdisk 专用于 GPT 分区,操作前务必卸载目标磁盘并谨慎执行,避免数据丢失。

    2025年6月6日
    100
  • Linux PPT怎么退出全屏模式

    按Esc键通常可退出全屏,如果无效,尝试按F11键(适用于部分软件或网页版PPT)。

    2025年6月17日
    100
  • Linux中文显示怎么设置?

    Linux支持中文需安装中文字体(如文泉驿)、设置系统语言环境为zh_CN.UTF-8,并配置中文输入法(如Fcitx或IBus框架),桌面环境还需调整区域与语言设置。

    2025年6月17日
    100
  • Linux怎么查IP地址

    在 Linux 中查看 IP 地址,常用命令有:,1. ifconfig:需 root 权限,显示网络接口信息。,2. ip addr show 或 ip a:推荐使用的现代命令。,3. hostname -I:快速显示分配给主机的所有非回环 IP 地址。

    2025年6月12日
    000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN