我正在使用 Ubuntu 20.04 运行本地服务器,并且需要做一件应该很简单的事情 - 告诉它使用 ISP 的 DNS 服务器以外的其他东西来解析 DNS。但是由于我不会深入讨论的原因,它确实需要使用 DHCP 获取其 IP 地址,因此没有静态 IP 地址。这在以前的 Ubuntu 版本中很容易实现,如果您正在运行桌面,显然仍然不是太难,但我还没有看到关于如何在 Ubuntu Server 中执行此操作的明确说明。
我尝试过的以及现在似乎可行的方法是:
sudo apt update
sudo apt install resolvconf
sudo nano /etc/resolv.conf
(例如,在注释掉的行下方,我添加了两个指向首选 DNS 的名称服务器行
nameserver 8.8.8.8
nameserver 8.8.4.4
然后保存并退出纳米)
sudo systemctl start resolvconf.service
现在这似乎奏效了,但让我烦恼的是出现在 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 "systemd-resolve --status" to see details about the actual nameservers.
尽管如此,我看到很多人告诉你继续编辑这个文件,但我想知道的是,这个文件是否会在某个时候被覆盖,如果是这样,那么现在被认为是“正确的" 在 Ubuntu 20.04 中指定名称服务器的方法,请记住我不能使用静态 IP 地址并且系统上没有桌面?您会认为现在有人会在网页或视频中介绍此内容,但如果是这样,我找不到它。
编辑:我确实意识到“正确”的方式应该涉及修改 /etc/netplan/00-installer-config.yaml 文件以使用特定的名称服务器,但问题在于,如果您不将 dhcp4: 设置为false或不,它会将您指定的 DNS 服务器添加到已经包含从 DHCP 获得的服务器的列表中。因此,如果 DHCP 请求指定使用 ISP 的名称服务器,它将始终首先检查,并且仅在 DNS 无法响应时才转到您首选的名称服务器。显然这不是我们想要的行为,而这正是促使我首先安装 resolvconf 的原因。
但是继续这个主题,如果不是太难的话,我真正想要实现的是 DNS 加密,我猜它被称为 DNS over TLS。我想知道的是这个功能是否内置在 Ubuntu Server 中,如果是,你如何启用它。我已经看到几个页面建议安装一个名为 stubby 的软件包,但我发现几乎所有的说明都是为早期 Ubuntu 版本的用户或 Ubuntu 桌面用户编写的。
这一切似乎在 Ubuntu 18.04 中会容易得多,但是在我访问过的所有页面中,试图获得关于这个主题的可靠信息,如果在所有说明中提到 20.04,几乎普遍告诉你使用网络配置工具在桌面版本中。好像没有人知道在不使用基于 GUI 的实用程序的情况下,在 Ubuntu 20.04 中做一些应该非常简单的事情的正确方法。所以我想知道为什么他们让用户更难- 这似乎是在错误的方向!