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

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

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

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

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

resolv.conf 文件的位置和作用

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

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

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

如何正确修改 resolv.conf?

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

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

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 又变回去了,那很可能是因为你的系统使用了像 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 并不难,关键是要知道系统是怎么管理它的,避免自己写的配置被“偷偷”改掉。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享