集成电路科普者 2025-07-19 02:15 采纳率: 98.4%
浏览 5
已采纳

如何查看Ubuntu系统当前使用的DNS服务器?

**问题:如何在Ubuntu系统中查看当前使用的DNS服务器?** 在Ubuntu系统中,了解当前使用的DNS服务器对于网络故障排查和系统配置非常重要。常见的方法包括查看`/etc/resolv.conf`文件,该文件通常列出系统当前使用的DNS服务器地址。此外,使用`nmcli`命令可以查看NetworkManager管理的连接配置中的DNS信息。对于使用`systemd-resolved`服务的系统,可通过`resolvectl`命令查看全局或接口相关的DNS配置。你还可以使用`dig`或`nslookup`等工具测试DNS解析。不同Ubuntu版本和网络配置方式可能影响DNS设置的查看方法,如何根据系统环境选择合适的命令?
  • 写回答

1条回答 默认 最新

  • 薄荷白开水 2025-07-19 02:15
    关注

    一、概述:DNS在Ubuntu系统中的重要性

    域名系统(DNS)是互联网通信中不可或缺的一部分。Ubuntu系统通过DNS将域名解析为IP地址。在系统维护或网络故障排查中,了解当前使用的DNS服务器至关重要。不同版本的Ubuntu可能使用不同的网络管理工具,如NetworkManager、systemd-resolved等,因此查看DNS的方式也有所不同。

    • 查看/etc/resolv.conf文件
    • 使用nmcli命令
    • 使用resolvectl命令
    • 使用dig或nslookup测试DNS解析

    二、查看DNS服务器的基本方法

    1. 查看 /etc/resolv.conf 文件

    这是最传统的方法,适用于大多数Linux发行版。该文件通常由系统自动生成,包含当前使用的DNS服务器地址。

    cat /etc/resolv.conf

    输出示例如下:

    nameserver 8.8.8.8
    nameserver 8.8.4.4
    

    注意:在某些系统中,该文件可能是符号链接,指向/run/systemd/resolve/resolv.conf/run/NetworkManager/resolv.conf

    2. 使用 nmcli 命令(适用于使用NetworkManager的系统)

    如果系统使用NetworkManager管理网络连接,可以使用以下命令查看DNS信息:

    nmcli dev show

    查找输出中的 IP4.DNS 字段,示例如下:

    IP4.DNS[1]:                             8.8.8.8
    IP4.DNS[2]:                             8.8.4.4
    

    三、使用 systemd-resolved 的系统

    3. 使用 resolvectl 命令

    对于使用systemd-resolved服务的Ubuntu系统(如18.04及更高版本),可通过以下命令查看全局或接口相关的DNS配置:

    resolvectl status

    输出示例如下:

    InterfaceDNS ServersDomain
    enp0s38.8.8.8example.com
    lo127.0.0.53

    该命令可以查看每个网络接口的DNS配置,适用于多网卡环境。

    四、测试DNS解析的方法

    4. 使用 dignslookup 命令

    虽然这两个命令不能直接显示当前使用的DNS服务器,但它们可以用于测试DNS解析是否正常:

    dig google.com
    nslookup google.com

    输出中将显示使用的DNS服务器地址。

    五、不同Ubuntu版本的差异

    不同Ubuntu版本使用的网络管理服务可能不同,以下是常见版本的DNS管理方式:

    Ubuntu版本默认DNS管理工具推荐查看方式
    Ubuntu 16.04NetworkManagernmcli
    Ubuntu 18.04systemd-resolvedresolvectl
    Ubuntu 20.04+systemd-resolvedresolvectl / resolv.conf

    了解系统使用的DNS管理服务有助于选择正确的命令。

    六、进阶分析:DNS配置的动态与静态设置

    Ubuntu系统中DNS的设置可以是动态获取(如通过DHCP)或静态配置(如手动设置)。动态DNS通常由DHCP服务器分配,而静态DNS需要在配置文件中指定。

    例如,在使用netplan配置网络的Ubuntu系统中,可以在YAML文件中指定DNS:

    
    network:
      version: 2
      renderer: networkd
      ethernets:
        enp0s3:
          dhcp4: no
          addresses:
            - 192.168.1.100/24
          gateway4: 192.168.1.1
          nameservers:
              addresses:
                - 8.8.8.8
                - 8.8.4.4
    

    配置完成后需运行sudo netplan apply使更改生效。

    七、流程图:查看DNS服务器的决策路径

    graph TD A[开始] --> B{是否使用systemd-resolved?} B -->|是| C[resolvectl status] B -->|否| D{是否使用NetworkManager?} D -->|是| E[nmcli dev show] D -->|否| F[查看/etc/resolv.conf]
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 10月23日
  • 创建了问题 7月19日