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

发布时间 - 2025-09-16 00:00:00    点击率:
答案是通过NetworkManager或systemd-resolved配置DNS优先级。使用nmcli设置ipv4.dns和ipv4.dns-priority,或编辑resolved.conf文件指定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  ipv4.dns "8.8.8.8,1.1.1.1"
nmcli connection modify  ipv4.dns-priority 0
nmcli connection up 

其中

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

对于使用

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

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

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


# linux  # docker  # 防火墙  # 浏览器  # 端口  # ubuntu  # 工具  # ai  # dns  # 配置文件  # linux系统  # 接口  # Interface  # 作用域  # udp  # debian  # 可以使用  # 自己的  # 的是  # 你可以  # 多个  # 这两个  # 使用了  # 需要注意  # 是否正确 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  Laravel怎么为数据库表字段添加索引以优化查询  C++时间戳转换成日期时间的步骤和示例代码  如何实现建站之星域名转发设置?  米侠浏览器网页背景异常怎么办 米侠显示修复  Laravel如何配置任务调度?(Cron Job示例)  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  html5的keygen标签为什么废弃_替代方案说明【解答】  长沙企业网站制作哪家好,长沙水业集团官方网站?  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  JavaScript如何实现类型判断_typeof和instanceof有什么区别  如何在万网ECS上快速搭建专属网站?  Android利用动画实现背景逐渐变暗  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  如何在宝塔面板创建新站点?  如何在宝塔面板中创建新站点?  Python函数文档自动校验_规范解析【教程】  免费视频制作网站,更新又快又好的免费电影网站?  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  java中使用zxing批量生成二维码立牌  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  如何制作一个表白网站视频,关于勇敢表白的小标题?  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  教你用AI将一段旋律扩展成一首完整的曲子  如何快速搭建高效可靠的建站解决方案?  Laravel如何处理表单验证?(Requests代码示例)  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  Python数据仓库与ETL构建实战_Airflow调度流程详解  如何在 Pandas 中基于一列条件计算另一列的分组均值  简历没回改:利用AI润色让你的文字更专业  jquery插件bootstrapValidator表单验证详解  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  清除minerd进程的简单方法  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  昵图网官方站入口 昵图网素材图库官网入口  Linux系统运维自动化项目教程_Ansible批量管理实战  EditPlus中的正则表达式实战(5)  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  如何在IIS7中新建站点?详细步骤解析  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成