如何在 Debian 12 上配置 DNS 设置?

Che*_*ona 1 domain-name-system debian resolv.conf nameserver debian-bookworm

我正在尝试更改 Debian 12 VPS 上的 DNS 设置,我的意思是,我想使用像 1.1.1.1 这样的公共解析器,而不是我的 VPS 主机的解析器。

我记得在 Debian 11 中我可以编辑/etc/resolv.conf文件,然后重新启动resolvconf.service,一切都会正常工作。

然而,在 Debian 12 上,当我去编辑它时,它/etc/resolv.conf有一个很大的警告:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "resolvectl status" to see details about the actual nameservers.
Run Code Online (Sandbox Code Playgroud)

那么,如果我无法编辑此文件,我可以在哪里配置我的解析器?

我尝试阅读man resolvconfman resolv.conf但这让我更加困惑。

有任何想法吗?

小智 5

警告(这显然是chatgpt)

systemd-resolved要在使用 systemd 作为其初始化系统的 Linux 系统(例如许多现代发行版,如 Ubuntu)上添加自定义 DNS(域名系统)名称服务器,您可以按照以下步骤操作:

  1. 编辑 systemd 解析的配置文件

    systemd-resolved使用文本编辑器(如nano或 )打开配置文件进行编辑vi。在大多数系统上,该文件位于/etc/systemd/resolved.conf. 您可能需要超级用户权限才能编辑此文件,因此请使用sudo

    sudo nano /etc/systemd/resolved.conf
    
    Run Code Online (Sandbox Code Playgroud)
  2. 添加名称服务器

    在配置文件中,您可以使用指令指定 DNS 服务器DNS。如果该指令不存在,您可以添加它。如果它已经存在,您可以向其添加其他 DNS 服务器。

    例如,要添加 Google 的公共 DNS 服务器 (8.8.8.8) 和 Cloudflare 的 DNS 服务器 (1.1.1.1),您可以执行以下操作:

    [Resolve]
    DNS=8.8.8.8 1.1.1.1
    
    Run Code Online (Sandbox Code Playgroud)

    您可以添加多个名称服务器,并用空格分隔。

  3. 重新启动 systemd-resolved

    编辑配置文件后,您应该重新启动systemd-resolved服务以使更改生效:

    [Resolve]
    DNS=8.8.8.8 1.1.1.1
    
    Run Code Online (Sandbox Code Playgroud)
  4. 验证更改

    systemd-resolved您可以通过查询DNS 信息来验证您的自定义名称服务器是否正在使用。使用systemd-resolve命令检查:

    sudo systemctl restart systemd-resolved
    
    Run Code Online (Sandbox Code Playgroud)

    您应该会看到输出中“DNS 服务器”下列出的自定义名称服务器。

就是这样!您已使用 成功添加自定义 DNS 名称服务器systemd-resolved。这些更改应该在重新启动后持续存在,并且您的系统将使用指定的 DNS 服务器进行名称解析。