Manjaro DNS 配置详解
在 Linux 系统中,DNS(域名系统)配置是网络管理的基础部分,Manjaro 作为一款基于 Arch Linux 的用户友好型发行版,提供了多种灵活的 DNS 配置方式,无论是临时修改、全局设置,还是针对特定应用进行优化,Manjaro 都能轻松满足需求,本文将详细介绍 Manjaro 中 DNS 配置的多种方法、常见问题及解决方案。

为什么需要配置 DNS?
DNS 负责将人类可读的域名(如 example.com)转换为机器可读的 IP 地址,默认情况下,系统会使用网络管理器(如 NetworkManager)或 DHCP 服务器提供的 DNS,但在某些场景下,如使用特定 DNS 服务(如 Cloudflare、Google DNS)、解决域名解析问题,或提高网络访问速度时,手动配置 DNS 是必要的。
查看当前 DNS 配置
在修改 DNS 之前,首先需要确认当前的配置状态,通过以下命令可以查看系统正在使用的 DNS 服务器:
cat /etc/resolv.conf
该文件通常由 NetworkManager 自动管理,直接编辑可能不会永久生效,若需查看更详细的网络配置,可以使用 nmcli 命令:
nmcli connection show
使用 NetworkManager 图形界面
对于习惯图形化操作的用户,NetworkManager 提供了直观的配置方式。
- 点击系统托盘的网络图标,选择“有线设置”或“无线设置”。
- 点击当前连接的齿轮图标,进入“IPv4”或“IPv6”选项卡。
- 在“DNS 服务器”字段中,输入 DNS 服务器地址(如
1.1.1或8.8.8),多个地址用逗号分隔。 - 保存并断开网络连接后重新连接,使配置生效。
通过 nmcli 命令行工具
nmcli 是 NetworkManager 的命令行工具,适合批量配置或自动化管理。
-
查看当前连接名称:
nmcli connection show
-
修改 DNS 服务器(以
enp3s0为例):nmcli connection modify enp3s0 ipv4.dns "1.1.1.1,8.8.8.8"
-
重启网络连接:
nmcli connection down enp3s0 && nmcli connection up enp3s0
编辑 /etc/resolv.conf(临时方法)
直接编辑 /etc/resolv.conf 可以快速修改 DNS,但需注意该文件可能被 NetworkManager 覆盖。
-
使用文本编辑器(如
nano)打开文件:
sudo nano /etc/resolv.conf
-
添加或修改 DNS 服务器:
nameserver 1.1.1.1 nameserver 8.8.8.8
-
保存文件(
Ctrl+O,回车,Ctrl+X)。
使用 systemd-resolved 服务
Manjaro 默认使用 systemd-resolved 管理 DNS,可以通过该服务进行高级配置。
-
检查服务状态:
systemctl status systemd-resolved
-
创建或编辑 DNS 配置文件:
sudo nano /etc/systemd/resolved.conf
-
取消注释并修改以下行:
DNS=1.1.1.1 8.8.8.8
-
重启服务:
sudo systemctl restart systemd-resolved
针对特定应用配置 DNS
某些应用(如 Docker 或虚拟机)可能需要独立的 DNS 配置,可以通过以下方式实现:
-
为 Docker 配置 DNS:
编辑/etc/docker/daemon.json文件:{ "dns": ["1.1.1.1", "8.8.8.8"] }重启 Docker 服务:

sudo systemctl restart docker
-
为虚拟机配置 DNS:
在虚拟机管理器(如 VirtualBox)中手动设置 DNS 服务器。
常见问题及解决方案
-
DNS 修改后不生效
- 检查
/etc/resolv.conf是否被 NetworkManager 覆盖,尝试使用nmcli或systemd-resolved方法。 - 确认防火墙或安全软件未阻止 DNS 查询。
- 检查
-
域名解析缓慢或失败
- 尝试更换 DNS 服务器(如 Cloudflare
1.1.1或 Google8.8.8)。 - 检查网络连接或路由器设置。
- 尝试更换 DNS 服务器(如 Cloudflare
相关问答 FAQs
Q1:如何在 Manjaro 中永久禁用 NetworkManager 的 DNS 管理?
A1:可以通过编辑 NetworkManager 配置文件实现,创建 /etc/NetworkManager/conf.d/dns.conf 文件,添加以下内容:
[main] dns=none
然后重启 NetworkManager:
sudo systemctl restart NetworkManager
之后手动管理 /etc/resolv.conf 文件即可。
Q2:为什么我的 Manjaro 系统频繁更换 DNS 服务器?
A2:这可能是由于 NetworkManager 自动从 DHCP 服务器获取 DNS 配置导致的,要固定 DNS 服务器,建议使用 nmcli 或 systemd-resolved 方法,并确保 DHCP 客户端未覆盖 DNS 设置,检查 /etc/dhcp/dhclient.conf 文件,确保 prepend domain-name-servers 行未被注释。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/296907.html