配置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: 通过
nmtui或nmcli设置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配置成功。
基本上就这些。关键是根据你的系统管理方式选择正确的配置路径,避免手动修改被覆盖。不复杂但容易忽略机制差异。










