manjaro系统dns配置不生效?解决步骤与常见排查方法

Manjaro DNS 配置详解

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

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 提供了直观的配置方式。

  1. 点击系统托盘的网络图标,选择“有线设置”或“无线设置”。
  2. 点击当前连接的齿轮图标,进入“IPv4”或“IPv6”选项卡。
  3. 在“DNS 服务器”字段中,输入 DNS 服务器地址(如 1.1.18.8.8),多个地址用逗号分隔。
  4. 保存并断开网络连接后重新连接,使配置生效。

通过 nmcli 命令行工具

nmcli 是 NetworkManager 的命令行工具,适合批量配置或自动化管理。

  1. 查看当前连接名称:

    nmcli connection show  
  2. 修改 DNS 服务器(以 enp3s0 为例):

    nmcli connection modify enp3s0 ipv4.dns "1.1.1.1,8.8.8.8"  
  3. 重启网络连接:

    nmcli connection down enp3s0 && nmcli connection up enp3s0  

编辑 /etc/resolv.conf(临时方法)

直接编辑 /etc/resolv.conf 可以快速修改 DNS,但需注意该文件可能被 NetworkManager 覆盖。

  1. 使用文本编辑器(如 nano)打开文件:

    manjaro系统dns配置不生效?解决步骤与常见排查方法

    sudo nano /etc/resolv.conf  
  2. 添加或修改 DNS 服务器:

    nameserver 1.1.1.1  
    nameserver 8.8.8.8  
  3. 保存文件(Ctrl+O,回车,Ctrl+X)。

使用 systemd-resolved 服务

Manjaro 默认使用 systemd-resolved 管理 DNS,可以通过该服务进行高级配置。

  1. 检查服务状态:

    systemctl status systemd-resolved  
  2. 创建或编辑 DNS 配置文件:

    sudo nano /etc/systemd/resolved.conf  
  3. 取消注释并修改以下行:

    DNS=1.1.1.1 8.8.8.8  
  4. 重启服务:

    sudo systemctl restart systemd-resolved  

针对特定应用配置 DNS

某些应用(如 Docker 或虚拟机)可能需要独立的 DNS 配置,可以通过以下方式实现:

  1. 为 Docker 配置 DNS:
    编辑 /etc/docker/daemon.json 文件:

    {
      "dns": ["1.1.1.1", "8.8.8.8"]
    }  

    重启 Docker 服务:

    manjaro系统dns配置不生效?解决步骤与常见排查方法

    sudo systemctl restart docker  
  2. 为虚拟机配置 DNS:
    在虚拟机管理器(如 VirtualBox)中手动设置 DNS 服务器。

常见问题及解决方案

  1. DNS 修改后不生效

    • 检查 /etc/resolv.conf 是否被 NetworkManager 覆盖,尝试使用 nmclisystemd-resolved 方法。
    • 确认防火墙或安全软件未阻止 DNS 查询。
  2. 域名解析缓慢或失败

    • 尝试更换 DNS 服务器(如 Cloudflare 1.1.1 或 Google 8.8.8)。
    • 检查网络连接或路由器设置。

相关问答 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 服务器,建议使用 nmclisystemd-resolved 方法,并确保 DHCP 客户端未覆盖 DNS 设置,检查 /etc/dhcp/dhclient.conf 文件,确保 prepend domain-name-servers 行未被注释。

来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/296907.html

Like (0)
小编小编
Previous 2025年12月1日 04:01
Next 2025年12月1日 04:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注