linux dns配置需根据系统使用的网络管理 工具 选择对应方法,核心文件为 /etc/resolv.conf。1. 可手动编辑该文件添加 nameserver 实现临时配置;2. 使用 NetworkManager 的系统应通过 nmtui 或图形界面设置避免覆盖;3. systemd-resolved 管理的系统需用 resolvectl 命令或修改 /etc/systemd/resolved.conf 配置;4. 配置后若无效,应检查服务冲突、DNS 覆盖、网络连通性及 防火墙 问题,并使用 dig 或 host 验证解析结果。

Linux DNS 配置主要通过修改网络 接口 的 DNS 解析设置,使系统能正确解析域名。配置方式因发行版和网络管理 工具 不同而略有差异,但核心文件通常是/etc/resolv.conf。下面介绍常见配置方法及问题处理。
1. 手动配置 DNS(适用于大多数 Linux 系统)
直接编辑 /etc/resolv.conf 文件可以临时设置 DNS 服务器:
- 打开终端,使用 root 权限编辑文件:
nano /etc/resolv.conf - 添加以下内容(以google DNS 为例):
nameserver 8.8.8.8
nameserver 8.8.4.4 - 保存并退出,测试解析:
ping google.com 或 nslookup baidu.com
注意:某些系统使用 NetworkManager 或 systemd-resolved 时,该文件可能被自动覆盖。
2. 使用 NetworkManager 配置(ubuntu/centos桌面版)
若系统使用 NetworkManager,推荐通过其工具设置以避免被覆盖:
- 编辑连接配置:
nmtui(文本界面)或进入图形网络设置 - 选择对应网络连接 → IPv4 设置 → 将 DNS 设为“手动”
- 输入首选和备用 DNS,如 8.8.8.8、114.114.114.114
- 保存并重启网络连接
3. systemd-resolved 配置(较新版本 Ubuntu/debian/Fedora)
使用 systemd-resolved 服务的系统,应通过 resolvectl 或配置文件 管理:
- 查看当前状态:resolvectl status
- 临时设置 DNS:resolvectl dns 网络接口 8.8.8.8
- 永久设置需修改 Netplan 或 NetworkManager 配置,或编辑
/etc/systemd/resolved.conf:
[Resolve]
DNS=8.8.8.8 114.114.114.114
FallbackDNS=8.8.4.4
然后执行:systemctl restart systemd-resolved
4. 常见问题及 解决方法
配置后若无法解析域名,可参考以下排查步骤:
- DNS 不生效? 检查是否被 NetworkManager 或 DHCP 覆盖,确认配置方式匹配系统机制
- resolv.conf 被重置? 禁用 systemd-resolved 的覆盖行为,或使用其原生配置方式
- 无法访问特定网站? 更换 DNS 服务器,尝试阿里 DNS(223.5.5.5)或 腾讯DNS(119.29.29.29)
- ping 通 IP 但打不开网页? 可能是 防火墙 或应用层问题,非 DNS 导致
- nslookup 提示超时? 检查网络连通性,确认 DNS端口(53)未被拦截
基本上就这些。关键在于明确系统使用的网络管理服务,并选择对应的配置方式。配置完成后用 dig example.com 或host example.com验证解析结果更准确。