如何配置Linux DNS服务器 resolv.conf文件修改指南

发布时间 - 2025-07-06 00:00:00    点击率:

要修改linux系统的dns配置,需编辑/etc/resolv.conf文件并添加nameserver条目,但需注意系统覆盖问题。resolv.conf位于/etc目录下,负责指定dns服务器,用于域名解析。手动修改可能被网络工具自动覆盖,解决方法包括:1.用chattr +i防止文件被修改;2.通过networkmanager等工具配置dns;3.禁用systemd-resolved服务。文件最多支持3个nameserver,还可配置search和domain项。修改前应备份原文件以防影响网络连接。

在Linux系统中,resolv.conf文件是控制DNS解析的关键配置文件。如果你需要让服务器或本地机器使用特定的DNS服务器,修改这个文件几乎是必经步骤。操作不复杂,但细节需要注意。

resolv.conf 文件的位置和作用

这个文件一般位于 /etc/resolv.conf,它的主要作用是告诉系统使用哪些DNS服务器进行域名解析。当你执行 ping www.example.com 或者访问网页时,系统会先去查这个文件里的DNS地址,再进行解析。

默认情况下,很多系统的这个文件可能是由网络管理工具(比如NetworkManager或dhclient)自动生成的。所以有时候你手动改了内容,重启网络后又变回去了,这就是因为被自动覆盖了。

如何正确修改 resolv.conf?

修改方法其实很简单,就是用文本编辑器打开它,写入你需要的DNS信息即可。例如:

sudo nano /etc/resolv.conf

然后在里面添加类似下面的内容:

  • nameserver 8.8.8.8
  • nameserver 1.1.1.1

这表示你希望系统优先使用 Google 的 DNS 和 Cloudflare 的 DNS 来解析域名。

不过要注意的是,有些发行版为了防止手动修改被覆盖,会把该文件做成一个符号链接,指向其他位置。你可以用 ls -l /etc/resolv.conf 看一下是不是个软链接。如果是的话,可能需要先取消链接,再创建真正的文件。

防止配置被覆盖的小技巧

如果你发现每次重启网络或系统后,resolv.conf 又变回去了,那很可能是因为你的系统使用了像 dhclientNetworkManager 这类网络管理工具,它们会在获取DHCP信息时自动重写这个文件。

解决办法有几个:

  • 方法一:设置文件为不可变
    使用 chattr +i /etc/resolv.conf 命令可以让文件变成只读状态,这样即使有程序想改它也改不了。但注意,以后你自己要修改的时候也需要先解除这个限制:chattr -i /etc/resolv.conf

  • 方法二:通过网络管理工具配置DNS
    比如使用 NetworkManager 的话,可以在连接设置里直接填上你想用的DNS地址,这样它就会自动写入到 resolv.conf 中,不会被覆盖。

  • 方法三:禁用systemd-resolved服务(某些系统适用)
    在一些使用 systemd 的系统中,systemd-resolved 会接管DNS解析,并生成一个动态的 resolv.conf。如果你不想让它插手,可以停用这个服务并替换为自己的配置。

常见问题和注意事项

  • 最多支持3个nameserver
    标准规定 resolv.conf 中最多可以写三个 nameserver 行,系统会按顺序尝试。超过三个的会被忽略。

  • search 和 domain 设置
    如果你在内网环境中工作,可能会看到 search example.comdomain local样的配置项。它们的作用是在你输入短域名时自动补全,比如输入 host1 就会被当作 host1.example.com 来解析。

  • 不要随便删除或清空这个文件
    一旦没了DNS配置,系统就无法正常上网了。如果不确定怎么改,建议先备份原文件。

基本上就这些。修改 resolv.conf 并不难,关键是要知道系统是怎么管理它的,避免自己写的配置被“偷偷”改掉。


# linux  # 工具  # ai  # 解决方法  # 如果你  # 最多  # 就会  # 是因为  # 去了  # 重启  # 变回  # 自己的  # 的是  # 域名解析 


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


相关推荐: Laravel如何实现API版本控制_Laravel API版本化路由设计策略  如何在景安服务器上快速搭建个人网站?  历史网站制作软件,华为如何找回被删除的网站?  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  打造顶配客厅影院,这份100寸电视推荐名单请查收  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  如何用已有域名快速搭建网站?  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  免费网站制作appp,免费制作app哪个平台好?  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  Android 常见的图片加载框架详细介绍  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  教你用AI将一段旋律扩展成一首完整的曲子  Android利用动画实现背景逐渐变暗  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  网站建设保证美观性,需要考虑的几点问题!  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  bing浏览器学术搜索入口_bing学术文献检索地址  Laravel如何使用.env文件管理环境变量?(最佳实践)  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  Laravel怎么判断请求类型_Laravel Request isMethod用法  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  用yum安装MySQLdb模块的步骤方法  Laravel怎么为数据库表字段添加索引以优化查询  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  海南网站制作公司有哪些,海口网是哪家的?  Python图片处理进阶教程_Pillow滤镜与图像增强  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  JS经典正则表达式笔试题汇总  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  iOS UIView常见属性方法小结  在线制作视频的网站有哪些,电脑如何制作视频短片?  如何安全更换建站之星模板并保留数据?  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  高防服务器:AI智能防御DDoS攻击与数据安全保障  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  高性能网站服务器配置指南:安全稳定与高效建站核心方案  javascript中闭包概念与用法深入理解  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  如何在Windows虚拟主机上快速搭建网站?  如何快速生成凡客建站的专业级图册?  如何快速查询网站的真实建站时间?  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  如何快速上传自定义模板至建站之星?