LINUX怎么配置DNS_LINUX修改resolv.conf文件

配置DNS需修改/etc/resolv.conf,添加nameserver地址,但现代系统可能自动覆盖,应通过NetworkManager或systemd-resolved持久配置,避免手动设置失效。

在Linux系统中,配置DNS主要通过修改 /etc/resolv.conf 文件实现。这个文件定义了系统使用的DNS服务器地址,用于域名解析。虽然操作简单,但需要注意一些机制可能影响修改的持久性。

直接编辑 resolv.conf 文件

你可以使用文本编辑器直接修改该文件:

sudo nano /etc/resolv.conf

在文件中添加或修改DNS服务器,例如:

nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 114.114.114.114

保存并退出。系统会立即使用新配置进行域名解析。

注意:resolv.conf 可能被自动覆盖

许多现代Linux发行版(如使用NetworkManager或systemd-resolved的系统)会动态管理 /etc/resolv.conf,手动修改可能在重启网络或系统后失效。

解决方法如下:

  • 使用 NetworkManager: 通过 nmtuinmcli 设置DNS,或在图形界面网络设置中配置,这样修改会被保留。
  • 使用 systemd-resolved: 编辑 /etc/systemd/resolved.conf,例如:
[Resolve]
DNS=8.8.8.8 114.114.114.114
FallbackDNS=8.8.4.4

然后启用服务:

sudo systemctl enable systemd-resolved
sudo systemctl restart systemd-resolved

并确保 /etc/resolv.conf 是指向 /run/systemd/resolve/resolv.conf 的符号链接。

防止文件被覆盖(可选)

如果你希望手动配置长期有效,可以将文件设为不可变:

sudo chattr +i /etc/resolv.conf

这会阻止其他程序修改该文件。需要修改时再取消:

sudo chattr -i /etc/resolv.conf

验证DNS配置

使用以下命令测试是否生效:

ping google.com
nslookup baidu.com
dig example.com

如果能正常返回IP,说明DNS配置成功。

基本上就这些。关键是根据你的系统管理方式选择正确的配置路径,避免手动修改被覆盖。不复杂但容易忽略机制差异。