Linux怎么配置DNS解析优先顺序(顺序.解析.优先.配置.Linux...)

wufei123 发布于 2025-09-17 阅读(11)
答案是通过NetworkManager或systemd-resolved配置DNS优先级。使用nmcli设置ipv4.dns和ipv4.dns-priority,或编辑resolved.conf文件指定DNS服务器,确保配置生效并排查缓存、防火墙等问题。

linux怎么配置dns解析优先顺序

配置Linux DNS解析优先顺序,其实就是在告诉你的系统,当它需要查找一个域名对应的IP地址时,先问谁,后问谁。这就像你问路,先问熟人,再问路人,一个道理。

/etc/resolv.conf
文件通常是默认的DNS配置入口,但直接修改它并不总是最佳实践,因为某些网络管理工具可能会覆盖你的修改。更可靠的方法是使用
NetworkManager
systemd-resolved
等工具来管理DNS配置。

如何让Linux系统优先使用某个DNS服务器?

首先,我们要区分不同的发行版,因为它们可能使用不同的网络管理工具。对于使用

NetworkManager
的系统(例如 Ubuntu、Fedora),你可以通过图形界面或命令行工具
nmcli
来修改连接的DNS设置。

在图形界面中,找到你的网络连接设置,编辑IPv4设置,将“自动(DHCP)地址”改为“仅手动”,然后添加你希望优先使用的DNS服务器地址。

使用

nmcli
的话,命令如下:
nmcli connection modify <connection-name> ipv4.dns "8.8.8.8,1.1.1.1"
nmcli connection modify <connection-name> ipv4.dns-priority 0
nmcli connection up <connection-name>

其中

<connection-name>
是你的网络连接名称,可以使用
nmcli connection show
命令查看。
ipv4.dns
设置DNS服务器地址,多个地址用逗号分隔。
ipv4.dns-priority
设置优先级,数字越小优先级越高。最后,
nmcli connection up
重新激活连接使配置生效。

对于使用

systemd-resolved
的系统(例如 Debian、Arch Linux),你可以编辑
/etc/systemd/resolved.conf
文件,取消注释
DNS=
行,并添加你的DNS服务器地址。 Post AI Post AI

博客文章AI生成器

Post AI50 查看详情 Post AI
DNS=8.8.8.8 1.1.1.1

然后重启

systemd-resolved
服务:
systemctl restart systemd-resolved

需要注意的是,

systemd-resolved
可能会与
NetworkManager
冲突,如果你的系统同时使用了这两个工具,建议使用
NetworkManager
来管理DNS配置。

DNS解析顺序不生效怎么办?

如果配置了DNS解析顺序,但发现并没有生效,可以从以下几个方面排查:

  1. 检查配置文件是否正确:确保
    /etc/resolv.conf
    /etc/systemd/resolved.conf
    NetworkManager
    的配置没有语法错误。可以使用
    resolvectl status
    命令查看
    systemd-resolved
    的状态,检查DNS服务器是否正确配置。
  2. 缓存问题:系统或应用程序可能会缓存DNS解析结果。尝试清除DNS缓存。对于
    systemd-resolved
    ,可以使用
    resolvectl flush-caches
    命令。对于浏览器,通常可以在设置中找到清除DNS缓存的选项。
  3. 防火墙问题:防火墙可能会阻止对某些DNS服务器的访问。确保防火墙允许UDP和TCP端口53的流量。
  4. 网络连接问题:检查网络连接是否正常。尝试ping DNS服务器地址,看是否能够连通。
  5. 工具冲突:确认系统中是否存在多个网络管理工具,例如
    NetworkManager
    dhclient
    ,它们可能会相互干扰。如果存在冲突,建议只使用一个工具来管理网络配置。
  6. 作用域问题:某些应用程序或服务可能会忽略系统的DNS配置,而使用自己的DNS设置。例如,Docker容器默认使用自己的DNS服务器。

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

查看当前系统使用的DNS服务器,可以使用以下命令:

  • resolvectl status
    :如果你的系统使用了
    systemd-resolved
    ,这个命令会显示详细的DNS配置信息,包括当前使用的DNS服务器、DNS域名等。
  • nmcli device show <interface-name>
    :如果你的系统使用了
    NetworkManager
    ,这个命令会显示指定网络接口的详细信息,包括DNS服务器。将
    <interface-name>
    替换为你的网络接口名称,例如
    eth0
    wlan0
  • cat /etc/resolv.conf
    :这个命令会直接显示
    /etc/resolv.conf
    文件的内容,其中包含了DNS服务器的地址。但需要注意的是,这个文件可能是由其他工具自动生成的,因此可能不是最终生效的配置。
  • dig domain.com
    nslookup domain.com
    :这两个命令可以查询指定域名的IP地址,并显示使用的DNS服务器。

总的来说,配置Linux DNS解析优先顺序需要根据你使用的发行版和网络管理工具选择合适的方法。排查问题时,需要仔细检查配置文件、缓存、防火墙和网络连接等方面。

以上就是Linux怎么配置DNS解析优先顺序的详细内容,更多请关注知识资源分享宝库其它相关文章!

相关标签: linux docker 防火墙 浏览器 端口 ubuntu 工具 ai dns 配置文件 linux系统 接口 Interface 作用域 docker udp linux ubuntu debian 大家都在看: Linux用户与权限管理新手学习指南 Linux如何使用dig命令查询DNS记录 如何在Linux命令行中进行系统监控? 如何在Linux中设置文件ACL Linux setfacl精细权限控制 Linux怎么限制服务的资源占用

标签:  顺序 解析 优先 

发表评论:

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