要修改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服务器,修改这个文件几乎是必经步骤。操作不复杂,但细节需要注意。
这个文件一般位于 /etc/resolv.conf,它的主要作用是告诉系统使用哪些DNS服务器进行域名解析。当你执行 ping www.example.com 或者访问网页时,系统会先去查这个文件里的DNS地址,再进行解析。
默认情况下,很多系统的这个文件可能是由网络管理工具(比如NetworkManager或dhclient)自动生成的。所以有时候你手动改了内容,重启网络后又变回去了,这就是因为被自动覆盖了。
修改方法其实很简单,就是用文本编辑器打开它,写入你需要的DNS信息即可。例如:
sudo nano /etc/resolv.conf
然后在里面添加类似下面的内容:
这表示你希望系统优先使用 Google 的 DNS 和 Cloudflare 的 DNS 来解析域名。
不过要注意的是,有些发行版为了防止手动修改被覆盖,会把该文件做成一个符号链接,指向其他位置。你可以用 ls -l /etc/resolv.conf 看一下是不是个软链接。如果是的话,可能需要先取消链接,再创建真正的文件。
如果你发现每次重启网络或系统后,resolv.conf 又变回去了,那很可能是因为你的系统使用了像 dhclient 或 NetworkManager 这类网络管理工具,它们会在获取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.com 或 domain local 这样的配置项。它们的作用是在你输入短域名时自动补全,比如输入 host1 就会被当作 host1.example.com 来解析。
不要随便删除或清空这个文件
一旦没了DNS配置,系统就无法正常上网了。如果不确定怎么改,建议先备份原文件。
基本上就这些。修改 resolv.conf 并不难,关键是要知道系统是怎么管理它的,避免自己写的配置被“偷偷”改掉。
以上就是如何配置Linux DNS服务器 resolv.conf文件修改指南的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号