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

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

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


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

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

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

相关推荐

  • hibernate事务配置,hibernate事务配置详解

    Hibernate事务配置的核心逻辑与最佳实践在Java企业级开发中,Hibernate作为持久层框架,其事务管理的正确配置直接决定了数据的一致性与系统的稳定性,核心结论是:必须采用声明式事务管理(Declarative Transaction Management),并将事务边界严格控制在Service层,严……

    2026年6月2日
    01242
  • nginx 主机配置教程,nginx 虚拟主机配置详解

    nginx 主机配置在高性能Web服务架构中,Nginx 不仅是反向代理服务器,更是流量入口的“守门员”与“加速器”,核心结论在于:一个优秀的 Nginx 配置并非参数的简单堆砌,而是基于业务场景、安全边界与性能瓶颈的综合平衡, 要实现高并发下的稳定响应与极致安全,必须从基础优化、安全防护、性能调优及监控运维四……

    2026年6月3日
    01352
    • 服务器间歇性无响应是什么原因?如何排查解决?

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

      2026年1月10日
      020
  • 安全物联网传感器节点中文资料哪里找?

    安全物联网传感器节点中文资料安全物联网传感器节点的定义与核心价值安全物联网传感器节点是物联网系统中的基础感知单元,集成了数据采集、无线传输、边缘计算和安全防护等功能,主要用于实时监测环境状态、设备运行参数或安全风险指标,与传统传感器不同,安全物联网传感器节点将“安全”作为核心设计目标,通过硬件加密、安全启动、数……

    2025年11月8日
    02420
  • 配置库结构,如何优化项目配置管理,提升开发效率与协作效率?

    配置库结构优化与管理随着信息技术的飞速发展,软件项目日益复杂,配置库作为软件开发过程中的重要组成部分,其结构和管理显得尤为重要,一个良好的配置库结构能够提高开发效率,降低维护成本,确保项目质量,本文将详细介绍配置库的结构优化与管理方法,配置库结构设计分类管理配置库应按照项目模块、功能模块、组件等进行分类管理,以……

    2025年11月27日
    04170

发表回复

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