Linux如何更新DNS配置?Linux修改DNS服务器地址方法

Linux更新DNS最核心的方法是修改/etc/resolv.conf文件或使用systemd-resolved服务,但需注意不同发行版(如CentOS、Ubuntu)的管理工具差异,直接修改配置文件可能在重启后失效,建议通过Netplan或NetworkManager等持久化工具进行配置。

在Linux系统中,DNS解析就像是指南针,决定了你的服务器能否准确找到互联网上的目标地址,很多新手遇到网络不通时,第一反应是检查网线或防火墙,却往往忽略了DNS这个“隐形”的关键环节,如果你正在寻找linux修改dns配置方法,或者困惑于为什么改了配置重启后失效,那么这篇文章将为你拆解从临时生效到永久生效的完整逻辑。

Linux--DNS服务器配置
加载中
Linux--DNS服务器配置

理解Linux DNS管理的复杂性

Linux发行版众多,导致DNS管理方式并不统一,业内专家指出,理解底层机制比死记硬背命令更重要,主要存在两种管理模式:一种是传统的直接修改配置文件,另一种是现代的通过网络管理守护进程管理。

传统文件方式:/etc/resolv.conf

这是最基础的方式。/etc/resolv.conf是Linux系统读取DNS服务器的主要文件,这里有一个巨大的陷阱:在许多现代发行版中,这个文件是动态生成的。

  • 动态覆盖风险:如果你手动编辑了该文件,一旦网络服务重启或DHCP重新获取IP,你的修改会被覆盖。
  • 读取顺序:系统通常先读取此文件,若未找到配置,再尝试其他来源。

现代守护进程方式:NetworkManager与Netplan

随着桌面化和服务器自动化的发展,直接编辑resolv.conf变得不再推荐。

  • NetworkManager:广泛用于Ubuntu桌面版和部分服务器版,它通过连接配置文件来管理DNS。
  • Netplan:Ubuntu 18.04+及CentOS 8+常用的网络配置工具,使用YAML格式,更加规范且易于版本控制。

Ubuntu系统下的DNS更新实操

Linux如何更新DNS配置?Linux修改DNS服务器地址方法

Ubuntu是目前市场占有率极高的Linux发行版,其DNS配置逻辑具有代表性,我们将重点讲解如何通过ubuntu系统dns配置教程中推荐的最佳实践进行操作。

使用Netplan进行永久配置

对于使用Netplan的系统,修改YAML配置文件是标准做法。

定位配置文件

配置文件通常位于`/etc/netplan/`目录下,文件名可能是`00-installer-config.yaml`或类似名称,使用`ls /etc/netplan/`查看具体文件名。

编辑YAML文件

使用文本编辑器打开文件,
`sudo nano /etc/netplan/00-installer-config.yaml`

network -> ethernets -> eth0(网卡名需替换为你实际的网卡名,可通过ip a查看)下添加nameservers部分:

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      addresses:
        - 192.168.1.100/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 114.114.114.114

注意:YAML对缩进非常敏感,务必使用空格而非Tab。

应用配置

保存文件后,执行以下命令使配置生效:
`sudo netplan apply`

如果命令执行无报错,说明配置已写入,此时可以检查/etc/resolv.conf,你会发现它可能变成了一个指向/run/systemd/resolve/stub-resolv.conf的符号链接,这是正常现象,系统会自动同步Netplan的配置。

CentOS/RHEL系统下的DNS更新实操

CentOS系列服务器在企业环境中依然占据重要地位,其配置逻辑与Ubuntu有所不同,常涉及centos7修改dns或CentOS 8+的NetworkManager。

使用NetworkManager命令行工具

查看当前连接

使用`nmcli connection show`查看活动的网络连接名称,System eth0`。

修改DNS

执行命令修改特定连接的DNS服务器:
`sudo nmcli connection modify “System eth0” ipv4.dns “8.8.8.8 114.114.114.114″`

Linux如何更新DNS配置?Linux修改DNS服务器地址方法

如果需要清除原有DNS,可以先执行:
sudo nmcli connection modify "System eth0" ipv4.dns ""

重新激活连接

`sudo nmcli connection up “System eth0″`

传统方法:/etc/resolv.conf

在CentOS 7及更早版本中,直接编辑/etc/resolv.conf通常是有效的,因为NetworkManager默认不会自动覆盖它,除非配置了dns=none

sudo vi /etc/resolv.conf
nameserver 8.8.8.8
nameserver 114.114.114.114

但请注意,如果/etc/NetworkManager/NetworkManager.conf中设置了dns=dnsmasq或类似选项,直接修改此文件可能无效,此时需检查NetworkManager的配置状态。

常见误区与故障排查

很多用户反映修改DNS后依然无法解析域名,这通常源于缓存或配置未正确加载。

检查DNS缓存

Linux系统本身不常像Windows那样有全局DNS缓存,但systemd-resolved服务会缓存。

  • 查看缓存状态systemd-resolve --statistics
  • 清除缓存sudo systemd-resolve --flush-caches

验证配置是否生效

不要仅依赖ping命令,因为ping可能使用缓存的IP。

  • 使用dig命令dig baidu.com,查看ANSWER SECTION中的IP是否为你预期的解析结果,以及SERVER字段是否显示你配置的DNS服务器IP。
  • 使用nslookupnslookup baidu.com 8.8.8.8,强制指定DNS服务器进行查询。

权限问题

修改配置文件通常需要sudo权限,如果提示权限拒绝,请检查用户是否在sudo组中,或使用su切换到root用户。

不同场景下的DNS选择建议

选择合适的DNS服务器能显著提升访问速度和稳定性。

国内访问优化

Linux如何更新DNS配置?Linux修改DNS服务器地址方法

对于国内服务器,使用国内DNS服务商(如阿里云DNS、腾讯云DNS、114 DNS)通常延迟更低,解析更准确。

  • 阿里云DNS5.5.56.6.6
  • 腾讯云DNS29.29.29
  • 114 DNS114.114.114

国际访问优化

对于需要访问海外服务的场景,使用全球知名的公共DNS可能更稳定。

  • Google DNS8.8.88.4.4
  • Cloudflare DNS1.1.10.0.1

混合使用策略

多数情况下,建议配置一个国内DNS和一个国外DNS作为备用,系统会按顺序尝试,如果第一个超时或失败,会自动尝试第二个。

Q&A:linux更新dns常见问题

linux修改dns后重启失效怎么办?

这通常是因为配置方式被网络管理工具覆盖,请确认你使用的是Netplan(Ubuntu)或NetworkManager(CentOS/Ubuntu)的持久化配置方式,而不是直接编辑`/etc/resolv.conf`,对于Netplan,确保YAML格式正确并执行`netplan apply`;对于NetworkManager,使用`nmcli`命令修改连接配置。

如何查看当前Linux系统使用的DNS服务器?

可以通过查看`/etc/resolv.conf`文件内容,使用`cat /etc/resolv.conf`命令,如果该文件是符号链接,需查看其指向的目标文件,使用`systemd-resolve –status`命令可以查看当前活动连接的详细DNS信息,包括服务器IP和域名搜索列表。

linux系统dns配置教程中推荐的永久生效方法是什么?

业界共识认为,永久生效的方法取决于具体的网络管理工具,对于使用Netplan的系统,修改`/etc/netplan/`下的YAML文件并应用是最推荐的方式;对于使用NetworkManager的系统,使用`nmcli`修改连接属性是标准做法,直接编辑`/etc/resolv.conf`仅在特定配置下有效,且不具备持久性保障,因此不作为首选推荐方案。

首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/452969.html

(0)
Linux系统能装iOS吗?linux安装ios教程
上一篇 2026年7月4日 12:13
Excel提示另一用户正在编辑,如何强制解除锁定?
下一篇 2026年7月4日 12:15

相关推荐

  • linux编程ubuntu难吗?ubuntu linux编程入门教程

    在Ubuntu环境下进行Linux编程,首选配置GCC/G++编译器配合CMake构建工具,并通过VS Code或CLion集成开发环境提升效率,这是目前业界公认的高效能开发路径,Ubuntu作为全球最受欢迎的Linux发行版之一,凭借其友好的桌面体验和强大的包管理生态,成为众多开发者入门Linux编程的首选平……

    2026年7月4日
    9400
  • linux怎么安装wxpython?linux安装wxpython详细教程

    在Linux环境下安装wxPython最稳定且推荐的方式是使用pip工具配合虚拟环境,具体命令为pip install wxPython,这能避免系统库冲突并实现版本隔离,对于许多习惯在Windows或macOS上开发Python GUI应用的人来说,切换到Linux平台时往往会遇到依赖库缺失或编译失败的困扰……

    2026年7月4日
    19200
  • Linux磁盘命名规则是什么?Linux磁盘sda和vda区别

    Linux磁盘命名遵循“/dev/”前缀加类型标识符(如sd、nvme)及分区序号的规则,核心逻辑是设备发现顺序与持久化标识(UUID/LABEL)分离,确保系统重启后挂载点稳定,很多刚接触Linux的朋友看到/dev/sda、/dev/nvme0n1这些名字会头大,觉得它们杂乱无章,这背后有一套严密的硬件识别……

    2026年7月4日
    15500
  • Linux调用约定是什么?Linux系统调用约定详解

    Linux下的调用约定(Calling Convention)本质上是函数调用者与被调用者之间关于寄存器使用和栈内存管理的“握手协议”,它决定了参数如何传递、返回值如何获取以及栈帧如何清理,是理解底层代码执行逻辑的关键基石,在Linux系统编程的深水区,调用约定不仅仅是编译器生成的汇编指令,更是连接高级语言与硬……

    2026年7月4日
    3700
  • Linux键盘失灵怎么办?linux键盘没反应怎么解决

    Linux键盘失灵通常由驱动冲突、X11/Wayland显示服务器配置错误或硬件连接异常引起,建议优先通过TTY终端排查是系统层故障还是图形界面层故障,当你在Linux环境下敲击键盘却毫无反应,或者按键映射错乱时,这种挫败感并不比在Windows上遇到蓝屏轻松多少,这不仅仅是“设备坏了”那么简单,往往涉及到底层……

    2026年7月4日
    5400
  • linux strings命令怎么用?linux strings命令详解

    Linux strings命令的核心作用是直接从二进制文件、图像文件或任意非文本文件中提取并显示可打印的字符串序列,它是逆向工程、日志分析和故障排查中不可或缺的高效工具,在日常的Linux运维和开发工作中,我们习惯了处理纯文本文件,比如用cat或grep去查看配置或日志,但当你面对一个编译好的.so动态链接库……

    2026年7月4日
    11600
  • NetBeans Linux怎么下载?Linux版NetBeans安装包地址

    在Linux系统下载NetBeans,最推荐的方式是通过其官网下载适配Linux的二进制包(.tar.gz),或使用包管理器如Snap/Flatpak进行安装,这种方式能确保获取最新稳定版本并避免依赖冲突,对于许多开发者而言,Linux不仅是操作系统,更是代码运行的理想土壤,当需要在Linux环境下搭建Java……

    2026年7月4日
    8100
  • linux grep xargs怎么用?grep xargs管道符用法详解

    在Linux系统中,结合grep与xargs是处理大规模文本匹配任务最高效的方式,它能将搜索到的文件路径直接传递给后续命令,实现精准、自动化的批量操作,很多刚接触Linux的管理员在面对成千上万个配置文件时,往往习惯使用grep直接递归搜索,虽然简单,但一旦涉及修改、移动或打包,就不得不手动处理结果,这种“搜索……

    2026年7月4日
    17400
  • Kali Linux字体怎么设置?kali linux中文字体乱码解决方法

    Kali Linux 默认的终端字体为 Monospace,但为了提升代码阅读体验和系统美观度,建议安装并配置 Hack、Fira Code 或 JetBrains Mono 等支持连字(Ligatures)的现代等宽字体,并通过修改 ~/.bashrc 或系统字体管理器完成替换,在网络安全和渗透测试领域,Ka……

    2026年7月4日
    17000
  • linux端口放行怎么设置?Linux开放端口命令

    Linux端口放行的核心在于配置防火墙规则(如firewalld或iptables),并确认云服务商安全组设置,二者缺一不可才能确保外部网络正常访问服务,很多运维新手在部署Web服务或数据库时,经常遇到“本地能通,远程连不上”的尴尬局面,这通常不是代码问题,而是网络屏障在作祟,Linux系统本身自带严密的防火墙……

    2026年7月4日
    10000

发表回复

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