5154

Good Luck To You!

linux系统怎么看dns

Linux查看DNS可通过执行nmcli dev show命令或直接查看/etc/resolv.conf

Linux系统查看DNS配置的详细指南

在Linux系统中,DNS(域名系统)负责将域名解析为IP地址,正确配置和查看DNS设置对于网络连接稳定性和故障排查至关重要,本文将详细介绍在Linux系统中查看DNS配置的多种方法,并针对不同场景提供解决方案。


通过配置文件查看DNS设置

查看/etc/resolv.conf文件

这是Linux系统中最直接查看DNS配置的方式,该文件存储了当前系统使用的DNS服务器列表。

命令

cat /etc/resolv.conf

示例输出

# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 8.8.4.4

说明

  • nameserver后面跟随的是DNS服务器的IP地址。
  • 该文件可能由NetworkManager或其他网络管理工具自动生成。
  • 注意:手动修改此文件可能被网络管理工具覆盖(如NetworkManager)。

查看NetworkManager配置文件

如果系统使用NetworkManager管理网络,DNS配置可能存储在/etc/NetworkManager/systemconnections/目录下。

命令

ls /etc/NetworkManager/systemconnections/

操作步骤

  1. 进入对应网络连接的目录,例如sudo vim /etc/NetworkManager/systemconnections/yourconnectionname
  2. 查找[dns]段落,配置类似以下内容:
    [dns]
    dns=8.8.8.8,8.8.4.4

不同发行版的DNS配置文件路径

发行版 DNS配置文件路径
Ubuntu/Debian /etc/resolv.conf
CentOS/RHEL /etc/resolv.conf(由network脚本管理)
Fedora /etc/resolv.conf(由NetworkManager管理)
Arch Linux /etc/resolv.conf

使用命令行工具查看DNS信息

nmcli工具(适用于NetworkManager)

nmcli是NetworkManager的命令行接口,可查看网络连接的详细信息。

命令

linux系统怎么看dns

nmcli connection show active | grep DNS

示例输出

Wired connection 1:  
        dns4: 8.8.8.8,8.8.4.4
        dns3: 
        dns2: 
        dns1: 

说明

  • dns4表示IPv4的DNS服务器列表。
  • 如果未显示DNS信息,可尝试nmcli t f DNS4 connection show yourconnectionname

systemdresolve工具(系统解析器)

现代Linux系统使用systemdresolved作为DNS解析服务,可通过以下命令查看配置。

命令

systemdresolve status

示例输出

Global
        DNS Servers: 8.8.8.8
        DNS Domain: ~.
        Cache Timeout: 30s
        ...
Link 2 (enp0s3)
        DNS Servers: 8.8.8.8
        DNS Domain: example.com

说明

  • Global部分显示全局DNS配置。
  • Link部分显示特定网络接口的DNS配置。

dignslookup测试DNS解析

虽然不是直接查看配置,但可以通过这两个工具验证DNS解析是否正常。

linux系统怎么看dns

测试命令

dig www.baidu.com
nslookup www.baidu.com

示例输出dig):

;; ANSWER SECTION:
www.a.shifen.com            300 IN  A   123.125.115.110

说明

  • 如果解析成功,说明DNS配置正常。
  • 如果失败,需检查DNS服务器是否可达或配置是否正确。

通过图形界面查看DNS设置

GNOME桌面环境

  1. 打开“设置” → “网络”。
  2. 选择当前网络连接 → 点击“详情”。
  3. 在“IPv4”或“IPv6”配置页面中查看“DNS服务器”字段。

KDE Plasma桌面环境

  1. 打开“系统设置” → “网络配置”。
  2. 选择当前连接 → 切换到“DNS”标签页。
  3. 查看手动或自动配置的DNS服务器列表。

验证DNS配置是否生效

使用ping测试DNS服务器连通性

命令

ping 8.8.8.8

说明

  • 如果返回PING响应,说明DNS服务器可达。
  • 如果超时或失败,可能是网络问题或防火墙阻止。

检查DNS缓存

systemdresolved会缓存DNS解析结果,可通过以下命令清除缓存:

命令

linux系统怎么看dns

sudo systemdresolve flushcaches

常见问题与解决方法

问题1:修改/etc/resolv.conf后DNS未生效

原因

  • 网络管理工具(如NetworkManager)自动覆盖了手动修改。
  • 配置文件语法错误。

解决方法

  1. 通过NetworkManager图形界面或nmcli修改DNS。
  2. 禁用NetworkManager对/etc/resolv.conf的管理(不推荐):
    sudo nmcli general dnscplugin disable

问题2:DNS解析失败但网络正常

排查步骤

  1. 检查/etc/resolv.conf中的DNS服务器是否可达。
  2. 使用dignslookup测试解析。
  3. 尝试更换公共DNS(如8.8.8.8、1.1.1.1)。
  4. 检查防火墙是否阻止DNS请求(端口53)。

相关问题与解答

问题1:如何更改Linux系统的DNS服务器?

解答

  1. 临时修改:直接编辑/etc/resolv.conf,添加新的DNS服务器。
    sudo vim /etc/resolv.conf
    # 添加 nameserver 1.1.1.1
  2. 永久修改
    • 通过NetworkManager图形界面或nmcli命令修改。
    • 编辑/etc/NetworkManager/systemconnections/yourconnectionname文件,在[dns]段落添加DNS服务器。

问题2:如何清除Linux的DNS缓存?

解答

  1. 如果使用systemdresolved
    sudo systemdresolve flushcaches
  2. 如果使用dnsmasq
    sudo systemctl restart dnsmasq
  3. 如果无缓存服务,直接重启网络服务:
    sudo systemctl restart NetworkManager

通过以上方法,您可以全面掌握Linux系统中DNS配置的查看与管理技巧,建议优先使用图形化工具或nmcli命令进行配置

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年8月    »
123
45678910
11121314151617
18192021222324
25262728293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.