在 Arch Linux 中配置 DNS 是网络管理的重要环节,正确的 DNS 设置能确保域名解析的高效与稳定,本文将详细介绍 Arch Linux 中 DNS 配置的方法、常见工具及注意事项,帮助用户轻松掌握相关技能。

了解 DNS 的基本概念
DNS(Domain Name System)是互联网的核心服务之一,负责将人类可读的域名(如 example.com)转换为机器可识别的 IP 地址,在 Arch Linux 中,DNS 配置通常涉及系统全局设置或单个网络接口的特定配置。
使用 systemd-resolved 进行全局 DNS 管理
Arch Linux 默认使用 systemd-resolved 服务处理本地 DNS 解析,该服务通过本地监听 0.0.53:53 提供缓存和 DNS 转发功能,要启用此服务,可运行以下命令:
sudo systemctl enable --now systemd-resolved
配置文件位于 /etc/systemd/resolved.conf,修改后需重启服务,设置公共 DNS 服务器(如 Google 的 8.8.8)时,需取消注释并修改 DNS= 行。
配置网络接口的 DNS 设置
对于需要为特定网络接口(如以太网或 Wi-Fi)配置 DNS 的情况,可以使用 NetworkManager(桌面环境常用)或 systemd-networkd(服务器推荐)。
通过 NetworkManager 配置
如果使用 NetworkManager,编辑对应连接的配置文件(通常位于 /etc/NetworkManager/system-connections/),在 [ipv4] 或 [ipv6] 部分添加 dns= 选项。

dns=8.8.8.8,1.1.1.1
保存后重启网络连接或 NetworkManager 服务。
通过 systemd-networkd 配置
在 /etc/systemd/network/ 目录下创建 .network 文件,添加以下内容:
[Network] DNS=8.8.8.8 1.1.1.1
然后启用并启动 systemd-networkd 服务。
手动编辑 /etc/resolv.conf
虽然不推荐直接修改 /etc/resolv.conf(因其可能被网络管理工具覆盖),但在某些场景下仍需手动调整,确保文件权限正确(通常是 644),并添加 nameserver 条目:
nameserver 8.8.8.8
为防止文件被覆盖,可使用 chattr +i 锁定文件,或配置 systemd-resolved 将其作为符号链接指向 /run/systemd/resolve/stub-resolv.conf。

常见 DNS 工具与调试
dig和nslookup:用于测试域名解析。dig example.com查询详细 DNS 记录。resolvectl:查看systemd-resolved状态,如resolvctl status显示当前 DNS 配置。systemd-analyze verify:检查网络配置文件语法是否正确。
注意事项
- 避免同时使用多个 DNS 服务(如
systemd-resolved和dnsmasq),可能引发冲突。 - 在服务器环境中,建议使用静态 IP 地址和明确的 DNS 配置,避免依赖 DHCP 的动态设置。
- 定期检查 DNS 服务状态,确保
systemd-resolved或其他服务正常运行。
相关问答 FAQs
Q1: 如何在 Arch Linux 中切换 DNS 服务器?
A1: 可通过修改 /etc/systemd/resolved.conf 的 DNS= 行,或使用 NetworkManager 的图形界面/命令行工具(如 nmcli connection edit)更新 DNS 配置,之后重启网络服务或 systemd-resolved。
Q2: 为什么 dig 查询成功但浏览器无法访问域名?
A2: 可能是防火墙规则阻止了 DNS 解析后的 TCP 连接,或浏览器缓存了错误的 IP,尝试清除浏览器缓存,检查防火墙设置(如 ufw 或 iptables),并使用 ping 测试 IP 连通性。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/306473.html