Linux怎么配置DNS命令?linux设置dns方法大全

在Linux系统中配置DNS,最直接、最持久且推荐优先使用的方法是修改/etc/resolv.conf文件或通过nmcli等网络管理工具进行设置,但需注意系统环境差异(如systemd-resolved、NetworkManager等)可能覆盖手动配置,掌握命令级操作、理解配置文件优先级、并学会验证与排错,是确保DNS解析稳定高效的关键。


理解Linux DNS配置的基本机制

Linux系统通过系统解析器(glibc的getaddrinfo)读取/etc/resolv.conf,该文件定义了DNS服务器地址(nameserver)和搜索域(search),但现代Linux发行版常引入systemd-resolved、NetworkManager或netplan等工具,它们会动态改写/etc/resolv.conf,导致手动修改失效,配置前必须确认当前系统的网络管理栈。

查看当前DNS配置状态:

cat /etc/resolv.conf
ls -l /etc/resolv.conf   # 查看是否为软链接
systemd-resolve --status  # 检查systemd-resolved是否运行

最核心的配置命令与操作

临时生效:直接修改resolv.conf

适用于快速测试或无需持久化的场景。

sudo vi /etc/resolv.conf

在文件中添加或修改:

nameserver 8.8.8.8
nameserver 114.114.114.114
search example.com

保存后立即生效。但注意:若/etc/resolv.conf是软链接,直接修改会失败,需先移除链接并创建普通文件,或改用下方推荐方法。

永久生效:使用网络管理工具

Linux怎么配置DNS命令?linux设置dns方法大全

(1)NetworkManager(大多数桌面/服务器默认)

# 查看当前连接
nmcli connection show
# 为指定连接设置DNS(替换为你的连接名称)
sudo nmcli connection modify "Wired connection 1" ipv4.dns "8.8.8.8 114.114.114.114"
sudo nmcli connection modify "Wired connection 1" ipv4.ignore-auto-dns yes
# 重启连接生效
sudo nmcli connection down "Wired connection 1" && sudo nmcli connection up "Wired connection 1"

(2)systemd-resolved(现代Ubuntu/Debian)

# 编辑resolved配置文件
sudo vi /etc/systemd/resolved.conf
# 取消注释并设置
[Resolve]
DNS=8.8.8.8 114.114.114.114
FallbackDNS=1.1.1.1
# 重启服务
sudo systemctl restart systemd-resolved

(3)netplan(Ubuntu 18.04+云服务器)

# 编辑/etc/netplan/00-installer-config.yaml
network:
  ethernets:
    eth0:
      dhcp4: true
      nameservers:
        addresses: [8.8.8.8, 114.114.114.114]
  version: 2

应用配置:

sudo netplan apply

使用resolvectl命令(systemd环境)

sudo resolvectl dns eth0 8.8.8.8  # 设置网卡eth0的DNS
sudo resolvectl domain eth0 example.com

配置优先级与常见陷阱

系统解析顺序(由/etc/nsswitch.conf控制)通常为:hosts文件 → DNS,配置时需注意:

  • /etc/hosts优先于DNS:如果hosts中有记录,则不会请求DNS。
  • Linux怎么配置DNS命令?linux设置dns方法大全

  • resolv.conf中的nameserver最多3个,按顺序尝试,超时后切换。
  • options timeout:2 attempts:2 可设置超时和重试次数,避免长时间卡顿。

常见陷阱:

  • 云服务器或DHCP环境下,网卡重新获取IP会覆盖DNS,需设置ignore-auto-dns。
  • Docker容器内默认使用宿主机DNS,需单独配置--dns参数。
  • 防火墙可能阻止UDP 53端口,导致解析失败。

验证与排错命令

# 测试解析
nslookup example.com
dig example.com
# 查看实际使用的DNS
resolvectl status
# 跟踪解析过程
strace -e trace=network getent hosts example.com
# 排查本地DNS服务
systemctl status systemd-resolved

酷番云产品实战经验案例

酷番云Linux云服务器用户常遇到的DNS问题:重启网卡或升级内核后,手动写的resolv.conf被重置,我们的推荐方案是:结合酷番云控制台的“VPC网络”能力,在子网层面统一配置DNS,而非单台机器修改,具体操作:

  1. 在酷番云控制台进入“VPC → 子网”,点击“编辑DNS”。
  2. 填入内网DNS地址(如0.0.2)和公网备用DNS。
  3. 保存后,所有该子网下的云服务器自动继承配置,即使重启或重装系统也不会丢失。

对于需要临时测试的场景,我们建议使用resolvectl命令,因为它能同时兼容NetworkManager和systemd-resolved,避免底层冲突。酷番云运维团队还发现

Linux怎么配置DNS命令?linux设置dns方法大全

:如果服务器上运行了Docker,Docker默认的17.0.1网关DNS会影响容器解析,建议在/etc/docker/daemon.json中设置"dns": ["8.8.8.8"],并重启Docker。


相关问答

问题1:为什么我修改了/etc/resolv.conf,重启后又被覆盖了?

解答:这是因为你的系统使用了NetworkManager或systemd-resolved等网络管理服务,它们会在网络事件(如重启、重连)时自动重写该文件,解决方法:要么使用nmcli或resolvectl等官方命令配置(推荐),要么将/etc/resolv.conf设置为只读(chattr +i /etc/resolv.conf),但这样可能导致依赖该文件的服务异常,更合理的做法是找到生成该文件的源头(如/etc/NetworkManager/NetworkManager.conf或/etc/systemd/resolved.conf)进行修改。

问题2:配置多个DNS服务器时,系统是按什么顺序使用的?

解答:Linux glibc解析器按/etc/resolv.conf中nameserver出现的顺序依次查询,只有当第一个超时或返回SERVFAIL时才尝试第二个,注意不是负载均衡,建议将最快的DNS放最前面,同时可以通过options rotate启用轮询,但会降低缓存命中率,对于高可用场景,建议在本地运行dnsmasq或unbound作为缓存转发器,将上游DNS配置在转发器中,这样即使某个上游故障也能自动切换。


您是否有过在Linux上配置DNS被覆盖的经历?欢迎在评论区分享您的解决方案,一起探讨更优的配置技巧!

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/731300.html

赞 (0)
上一篇 2026年8月27日 10:35
下一篇 2026年8月27日 10:36

相关推荐

  • tomcat 日志怎么配置,tomcat日志配置方法

    Tomcat 日志配置:高性能架构下的核心优化与实战指南在构建高可用、高性能的 Java Web 应用时,Tomcat 日志配置并非简单的开关操作,而是决定系统可观测性、故障排查效率及存储成本的关键基石,正确的日志配置不仅能确保生产环境下的稳定性,更能通过合理的日志分级与滚动策略,显著提升运维效率并降低服务器……

    2026年6月10日
    01955
  • spark配置文件在哪,spark配置文件路径

    在大数据处理与实时计算场景中,Spark配置文件(spark-defaults.conf及启动参数)的优化直接决定了集群的资源利用率与作业执行效率,核心结论在于:必须摒弃默认配置,依据业务负载特征(CPU密集型或IO密集型)实施动态资源隔离与内存模型调优,通过合理设置Executor内存、Shuffle机制及并……

    2026年7月6日
    01244
  • 安全物理视图WAF如何有效防护Web应用攻击?

    安全物理视图WAF:Web应用安全的坚实屏障在数字化浪潮席卷全球的今天,Web应用已成为企业业务的核心载体,但同时也面临着日益严峻的安全威胁,SQL注入、跨站脚本(XSS)、文件上传漏洞等攻击手段层出不穷,传统防火墙难以有效应对应用层威胁,在此背景下,安全物理视图WAF(Web Application Fire……

    2025年11月8日
    04160
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 模拟人生4笔记本配置要求高吗?低配笔记本能玩吗?

    模拟人生4对笔记本配置要求友好,但追求流畅体验与完整资料片需合理搭配模拟人生4作为一款经典的生活模拟游戏,其官方最低配置门槛较低,但实际游玩体验受笔记本CPU单核性能、显卡显存、内存容量及散热设计直接影响,笔记本移动端硬件与台式机存在差异,合理选择CPU型号、显卡等级、内存频率,并搭配固态硬盘,可以确保游戏在高……

    2026年8月10日
    01470

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(5条)

  • 鹿茶5698的头像
    鹿茶5698 2026年8月27日 15:50

    这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是编辑部分,给了我很多新的思路。感谢分享这么好的内容!

    • 萌日3345的头像
      萌日3345 2026年8月27日 15:52

      @鹿茶5698:这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是编辑部分,给了我很多新的思路。感谢分享这么好的内容!

  • 淡定user352的头像
    淡定user352 2026年8月27日 15:50

    这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是编辑部分,给了我很多新的思路。感谢分享这么好的内容!

  • 老快乐9026的头像
    老快乐9026 2026年8月27日 15:51

    读了这篇文章,我深有感触。作者对编辑的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!

  • 大设计师7390的头像
    大设计师7390 2026年8月27日 15:51

    这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于编辑的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!