首页 > 运维 > linux运维 > 正文

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

P粉602998670
发布: 2025-09-16 14:40:01
原创
258人浏览过
答案是通过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服务器地址。

先见AI
先见AI

数据为基,先见未见

先见AI 95
查看详情 先见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解析优先顺序的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号