Linux如何配置DNS地址?DNS设置方法有哪些?

在 Linux 系统中配置 DNS 地址,最推荐且一劳永逸的方式是修改 /etc/resolv.conf 文件或使用系统自带的网络管理工具(如 nmcli,但需要注意,不同发行版和网络管理机制的持久化策略差异显著,直接编辑 resolv.conf 往往会被 systemd-resolved 或 NetworkManager 覆盖。正确的做法是先判断系统使用哪种 DNS 管理机制,再选择对应的持久化配置方案,否则重启后配置将丢失。

本文将按照「先诊断、再配置、后验证」的金字塔逻辑,为你提供一套从入门到精通的完整解决方案,并附带真实的生产环境经验案例。

诊断当前 DNS 管理机制

在动手修改之前,必须先搞清楚系统里的“DNS 管家”是谁,执行以下命令快速判断:

  • 检查是否存在 systemd-resolvedsystemctl status systemd-resolved
  • 检查是否安装 NetworkManager:systemctl status NetworkManager
  • 查看当前生效的 DNS:cat /etc/resolv.conf

经验判断/etc/resolv.conf 头部有 # Generated by NetworkManager# This file is managed by systemd-resolved 字样,说明该文件是动态生成的,直接编辑无效。

推荐配置方案(按场景选择)

使用 NetworkManager 的桌面或服务器系统(如 Ubuntu Desktop、RHEL/CentOS 默认)

推荐使用 nmcli 命令,配置后立即生效且永久保存。

  1. 查看当前连接名称:

    nmcli connection show

  2. 为指定连接设置 DNS(替换实际连接名):

    nmcli connection modify "Wired connection 1" ipv4.dns "223.5.5.5 119.29.29.29"

    nmcli connection modify "Wired connection 1" ipv4.ignore-auto-dns yes

    Linux如何配置DNS地址?DNS设置方法有哪些?

  3. 重启连接生效:

    nmcli connection down "Wired connection 1" && nmcli connection up "Wired connection 1"

  4. 验证:

    cat /etc/resolv.conf

使用 systemd-resolved 的系统(如 Ubuntu 18.04+)

推荐通过配置 /etc/systemd/resolved.conf 来设置全局 DNS。

  1. 编辑文件:

    sudo vim /etc/systemd/resolved.conf

  2. [Resolve] 段落下填入:

    DNS=223.5.5.5 119.29.29.29
    FallbackDNS=8.8.8.8
  3. 重启服务:

    sudo systemctl restart systemd-resolved

  4. /etc/resolv.conf 链接到 systemd 管理的文件:

    sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

注意:如果你希望完全绕过 systemd-resolved,也可以直接停用该服务并手动编辑 /etc/resolv.conf,但会造成部分基于 systemd-resolved 的域名解析服务异常,不建议在复杂网络环境中这样做。

无 NetworkManager 的轻量系统(如 Docker 宿主机、最小化 Debian)

直接编辑 /etc/resolv.conf,并配置网络脚本或 resolvconf 实现持久化。

  1. 临时生效:

    sudo vim /etc/resolv.conf

    写入:

    nameserver 223.5.5.5
    nameserver 119.29.29.29
  2. 永久生效(Debian/Ubuntu 下使用 /etc/network/interfaces):

    iface eth0 inet dhcp
        dns-nameservers 223.5.5.5 119.29.29.29
  3. 如果是静态 IP,则在同文件显式指定。

验证 DNS 配置是否生效

配置完成后,用以下命令确认 DNS 已经按预期工作:

Linux如何配置DNS地址?DNS设置方法有哪些?

  • cat /etc/resolv.conf 检查实际使用的 DNS 服务器
  • nslookup example.com 查询解析结果
  • dig example.com | grep SERVER 查看实际被查询的 DNS 服务器 IP

如果发现系统还在使用旧 DNS,优先检查 DHCP 是否覆盖了配置,并在 NetworkManager 或 dhclient 中设置 supersede domain-name-servers 或以 ipv4.ignore-auto-dns yes 方式忽略自动下发 DNS。

酷番云实战经验案例

我们曾服务过一家使用酷番云弹性云主机的客户,其业务系统基于 CentOS 7,程序里硬编码了某个公网域名解析,但服务器频繁出现解析超时。初步排查发现系统默认使用云平台 DHCP 下发的 DNS(即 169.254.0.53 这种链路本地地址),且服务器内网访问依赖自定义内网 DNS 才能解析集群主机名,直接修改 /etc/resolv.conf 后一旦网络重启便失效。

解决方案分三步:

  1. 在酷番云控制台关闭该主机的 DHCP 自动 DNS 下发,改为静态指定。

  2. 登录主机使用 nmcli 手动设置双 DNS(内网优先、公网备用):

    nmcli connection modify eth0 ipv4.dns "10.0.0.2 223.5.5.5"

    nmcli connection modify eth0 ipv4.ignore-auto-dns yes

  3. 通过 chattr +i /etc/resolv.conf 对文件加锁,防止任何程序意外改写。

这样既保证了内网解析速度,又提供了公网域名兜底方案,后续客户业务始终未再出现 DNS 解析中断。在混合云或内网环境,务必优先配置内网 DNS 地址,否则会出现「外网通、内网不通」的诡异故障。

常见问题与避坑指南

  • 不要盲目修改 /etc/resolv.conf

    Linux如何配置DNS地址?DNS设置方法有哪些?

    ,先确认文件是否被系统自动管理。

  • DNS 服务器不要只设一个,至少两个,避免单点故障。
  • 内网和公网 DNS 分开配置,如果用同一个解析器,可能导致内网域名解析超时。
  • 注意 DNS 顺序:第一个 nameserver 会被优先使用,把低延迟、高可靠的那个放前面。
  • 修改后建议立刻 systemctl restart networking(或对应网络服务)再测试,不要缓存旧的解析结果。

相关问答

问 1:为什么我改了 /etc/resolv.conf,重启后又恢复成原来的了?

因为你的系统采用了动态 DNS 管理机制,最典型的是 NetworkManager 或 systemd-resolved,NetworkManager 会在网络状态变化时重新生成 resolv.conf,而 systemd-resolved 会通过 symlink 指向它自己的运行时文件,你需要按上述「场景一」或「场景二」的方法,使用 nmcli 或编辑 /etc/systemd/resolved.conf 来持久化设置,也可以用 chattr +i 防止文件被改写,但这不是正规做法,遇到系统升级或网络管理变更时容易引发意外。

问 2:配置多个 DNS 服务器时,Linux 是如何选择使用的?

Linux 的 resolv.conf 在传统 glibc 解析器中按顺序尝试,首先使用第一个 nameserver,如果超时(默认 5 秒)或返回 SERVFAIL,才继续尝试下一个,如果第一个 DNS 正常但解析记录不存在(NXDOMAIN),则不会切换到第二个,因此多个 DNS 不能简单理解为负载均衡,而是故障转移,新版本系统(如 systemd-resolved)会综合考虑响应时间和历史状态,但总体原则仍然是“第一个优先”,所以把最快、最稳定的 DNS 放在首位是正确策略。

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

(0)
上一篇 2026年8月27日 12:13
下一篇 2026年8月27日 12:15

相关推荐

  • 安全管家促销是限时活动吗?现在买最划算吗?

    在数字化时代,网络安全已成为个人与企业发展的基石,为帮助用户构建全方位防护屏障,“安全管家促销活动”应运而生,通过高性价比的套餐设计与定制化服务,让专业安全防护触手可及,本次活动以“普惠安全,守护每一刻”为主题,结合用户需求推出多层次解决方案,同时辅以限时福利,让安全投入更具价值,活动核心:精准匹配安全需求安全……

    2025年10月21日
    03160
  • FPGA配置管脚如何正确配置?常见问题及解决方法详解?

    FPGA(现场可编程门阵列)作为可编程逻辑器件的核心特性是“可配置”,即通过配置数据加载到FPGA内部,使其具备特定功能,而配置数据的传输与加载依赖于配置管脚,这些管脚是连接FPGA与外部配置源(如配置芯片、计算机JTAG接口等)的物理接口,负责接收配置比特流并完成FPGA的初始化,配置管脚的设计与配置直接影响……

    2026年1月22日
    03790
  • 极品飞车推荐配置是多少?极品飞车最低配置要求

    极品飞车推荐配置在追求极致竞速体验的当下,《极品飞车》系列作为EA旗下的常青树IP,其最新作品对硬件性能的要求日益严苛,对于希望获得高帧率、低延迟且画面细腻的玩家而言,单纯追求“高配”并非最优解,精准匹配硬件组合才是保障流畅体验的核心,基于当前主流硬件市场表现及游戏引擎特性,我们建议以RTX 4060 Ti……

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

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

      2026年1月10日
      020
  • 配置mysql扩展方法,mysql扩展怎么安装?

    MySQL扩展配置是提升数据库性能、保障高并发稳定性的核心环节,其本质在于通过参数调优、架构优化与资源分配,让数据库引擎适应业务场景需求,核心结论在于:高效的MySQL扩展配置必须基于硬件资源、业务模型与版本特性进行动态调整,而非简单套用通用模板,重点在于缓冲池优化、连接池管理、日志策略调整以及查询缓存设计,同……

    2026年3月27日
    01323

发表回复

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