在Linux操作系统中,如何查看当前系统正在使用的DNS地址信息?

在Linux系统中,DNS(域名系统)地址是网络通信的关键配置,它负责将域名解析为IP地址,查看当前系统使用的DNS地址有多种方法,适用于不同的Linux发行版和场景,以下是常用且详细的操作方式。

linux如何查看dns地址

使用nslookup命令查询DNS服务器

nslookup(Name Server Lookup)是Linux中最基础的DNS查询工具,可用于查看当前系统使用的DNS服务器地址。

基本用法

  1. 直接查询默认DNS服务器
    在终端输入nslookup(不带参数),进入交互模式,输入任意域名(如www.baidu.com),系统会返回当前使用的DNS服务器地址及解析结果:

    nslookup
    > www.baidu.com
    Server:         192.168.1.1  # 当前DNS服务器地址
    Address:        192.168.1.1#53
    Non-authoritative answer:
    www.baidu.com   canonical name = www.a.shifen.com.
    www.a.shifen.com        220.181.38.148
    www.a.shifen.com        220.181.38.149

    退出交互模式可输入exit或按Ctrl+D。

  2. 指定DNS服务器查询
    若需测试特定DNS服务器是否可用,可带参数执行,例如用Google DNS(8.8.8.8)查询:

    nslookup www.baidu.com 8.8.8.8

使用dig命令获取详细DNS信息

dig(Domain Information Groper)是比nslookup更强大的DNS工具,可显示更详细的解析过程,适用于需要调试DNS问题的场景。

基本用法

  1. 查询默认DNS服务器
    输入dig +short可仅返回解析的IP地址,默认使用系统配置的DNS服务器:

    dig +short www.baidu.com
    # 输出:220.181.38.148 220.181.38.149

    不加+short参数会显示完整解析过程,包括DNS服务器、查询时间、响应码等:

    dig www.baidu.com
  2. 指定DNS服务器
    与nslookup类似,可通过指定DNS服务器:

    linux如何查看dns地址

    dig @8.8.8.8 www.baidu.com

使用systemd-resolve命令(systemd系统适用)

对于采用systemd作为初始化系统的Linux发行版(如Ubuntu 18.04+、CentOS 7+),systemd-resolve是管理DNS服务的工具,可查看当前DNS配置。

基本用法

  1. 查看DNS状态
    执行以下命令可显示当前DNS服务器地址、搜索域、连接信息等:

    systemd-resolve --status

    输出示例中,DNS Servers行即为当前使用的DNS地址:

    DNS Servers: 192.168.1.1
        8.8.8.8
    DNS Domain: localdomain
  2. 查看当前连接的DNS
    若使用NetworkManager管理网络,可结合nmcli查看特定连接的DNS配置:

    nmcli connection show --active | grep ipv4.dns

查看/etc/resolv.conf文件

/etc/resolv.conf是Linux系统中传统的DNS配置文件,直接记录了系统使用的DNS服务器地址。

查看方法

使用cat命令查看文件内容:

cat /etc/resolv.conf
```  示例:  
```bash
# Generated by NetworkManager
nameserver 192.168.1.1  # 主DNS服务器
nameserver 8.8.8.8      # 备用DNS服务器
search localdomain      # 搜索域

注意:在systemd系统(如Ubuntu)中,/etc/resolv.conf可能由systemd-resolved或NetworkManager自动管理,直接修改可能被覆盖,建议通过系统工具(如nmcli)永久修改DNS。

使用nmcli命令(NetworkManager适用)

对于使用NetworkManager管理网络的系统(如Ubuntu、Fedora、RHEL等),nmcli是命令行工具,可查看和修改当前网络连接的DNS配置。

linux如何查看dns地址

查看方法

  1. 查看所有活跃连接的DNS

    nmcli connection show --active | grep ipv4.dns
  2. 查看特定连接的详细配置
    先通过nmcli connection show列出所有连接,选择目标连接(如ens33),再查看DNS:

    nmcli connection show ens33 | grep ipv4.dns

不同方法对比总结

方法 命令示例 适用场景 优点
nslookup nslookup www.baidu.com 快速查询默认DNS服务器 简单直观,适合基础查询
dig dig +short www.baidu.com 获取详细DNS解析信息 信息全面,适合调试
systemd-resolve systemd-resolve --status systemd系统查看DNS状态 显示系统级DNS配置
/etc/resolv.conf cat /etc/resolv.conf 查看传统DNS配置文件 直接查看文件内容
nmcli nmcli connection show --active NetworkManager管理网络 适用于桌面版或服务器网络管理

相关问答FAQs

Q1:为什么/etc/resolv.conf中的DNS地址和我手动设置的不一致?
A:在采用systemd或NetworkManager的系统中,/etc/resolv.conf文件通常由系统服务自动管理(如systemd-resolved或NetworkManager),直接修改该文件可能会在系统重启或网络状态变化后被覆盖,若需永久修改DNS,建议使用对应的管理工具:例如在Ubuntu中可通过nmcli connection modify <连接名> ipv4.dns "8.8.8.8"设置,或在CentOS中通过nmcli connection modify <连接名> ipv4.dns "8.8.8.8",修改后重启网络服务(nmcli connection down <连接名> && nmcli connection up <连接名>)。

Q2:如何临时修改Linux系统的DNS地址?
A:临时修改无需重启系统,可直接修改/etc/resolv.conf文件(但可能被后续操作覆盖),或使用nslookup指定DNS服务器查询,临时将DNS设置为8.8.8.8,可执行:

echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf

若需临时使用特定DNS解析某个域名,可直接用nslookup或dig指定DNS服务器,如nslookup www.baidu.com 8.8.8.8,这种方式仅对当前查询有效,不影响系统全局DNS配置。

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

赞 (0)
酷番叔酷番叔
上一篇 2025年8月25日 17:37
下一篇 2025年8月25日 17:47

相关推荐

  • linux中如何清除屏幕

    Linux中,可使用快捷键Ctrl + L或执行命令clear来清除屏幕

    2025年8月17日
    24900
  • VS项目开发完成后如何在Linux上运行部署?

    将Visual Studio开发的项目迁移到Linux环境运行,是跨平台开发、云服务部署或容器化场景中的常见需求,整个过程需根据项目类型(如C++、C#等)采取不同策略,核心思路是解决Windows与Linux的操作系统差异,包括API兼容性、依赖库、构建工具链及运行环境配置,以下是详细步骤及注意事项,项目类型……

    2025年10月7日
    25200
  • Linux如何安全覆盖文件内容?

    命令行工具覆盖(高效推荐)重定向符号 >原理:将命令输出覆盖到文件(文件不存在则创建),命令示例:echo "新内容" > file.txt # 覆盖为单行文本cat newfile.txt > file.txt # 用另一文件内容覆盖注意:若需清空文件,用 > fi……

    2025年6月13日
    26700
  • Linux安装软件有哪些方法?不同安装方式的具体步骤是什么?

    在Linux系统中,软件安装方式因发行版、软件类型及用户需求不同而多样化,掌握多种安装方法能灵活应对不同场景,Linux软件安装的核心逻辑是通过工具管理软件包及其依赖关系,确保系统稳定运行,常见方法包括包管理器安装、源码编译安装、Snap/Flatpak跨平台安装及AppImage便携式运行等,包管理器安装:发……

    2025年9月16日
    30100
  • Linux下如何清空数据库但保留表结构?

    操作前必备准备备份数据库清空前必须备份,防止误删,以MySQL为例:mysqldump -u [用户名] -p [数据库名] > backup.sql提示:将 [用户名] 和 [数据库名] 替换为实际值,执行后输入密码,确认权限需拥有数据库的超级用户(如MySQL的root)或删除权限,不同数据库的清空方……

    2025年8月8日
    26000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信