第 21 章 手动配置 /etc/resolv.conf 文件

默认情况下,NetworkManager 使用活跃的 NetworkManager 连接配置文件中的 DNS 设置动态更新 /etc/resolv.conf 文件。但是,您可以在 /etc/resolv.conf 中禁用此行为,并手动配置 DNS 设置。

注意

或者,如果您在 /etc/resolv.conf 中需要特定的 DNS 服务器顺序,请参阅 配置 DNS 服务器的顺序

21.1. 在 NetworkManager 配置中禁用 DNS 处理

默认情况下,NetworkManager 在 /etc/resolv.conf 文件中管理 DNS 设置,您可以配置 DNS 服务器的顺序。或者,如果您喜欢在 /etc/resolv.conf 中手动配置 DNS 设置,您可以在 NetworkManager 中禁用 DNS 处理。

流程

  1. 以 root 用户身份,使用文本编辑器创建包含以下内容的 /etc/NetworkManager/conf.d/90-dns-none.conf 文件:

    [main]
    dns=none
  2. 重新载入 NetworkManager 服务:

    # systemctl reload NetworkManager
    注意

    重新加载服务后,NetworkManager 不再更新 /etc/resolv.conf 文件。但是该文件的最后内容将被保留。

  3. (可选)从 /etc/resolv.conf 中删除 NetworkManager 生成的 注释,以避免混淆。

验证

  1. 编辑 /etc/resolv.conf 文件并手动更新配置。
  2. 重新载入 NetworkManager 服务:

    # systemctl reload NetworkManager
  3. 显示 /etc/resolv.conf 文件:

    # cat /etc/resolv.conf

    如果您成功禁用了 DNS 处理,NetworkManager 不会覆盖手动配置的设置。

故障排除

  • 显示 NetworkManager 配置,以确保没有具有高优先级的配置文件覆盖设置:

    # NetworkManager --print-config
    ...
    dns=none
    ...

其他资源