![在 Ubuntu 18.04(netplan)上设置默认 DNS](https://linux22.com/image/1066644/%E5%9C%A8%20Ubuntu%2018.04%EF%BC%88netplan%EF%BC%89%E4%B8%8A%E8%AE%BE%E7%BD%AE%E9%BB%98%E8%AE%A4%20DNS.png)
我想将我的 Ubuntu 18.04.2 (LTS) 机器配置为始终使用 Google DNS,无论网络如何。我遇到了一些 VPN 连接 DNS 问题,例如,如果我从家庭 WiFi 连接到 VPN,之后名称无法解析。我以前遇到过这个问题,当时设置名称服务器/etc/resolv.conf
并使其不可变就可以解决问题。
但是,使用 netplan 时,我找不到任何全局声明 DNS 的说明。我不想针对每个网络都这样做,因为用例正是每当我连接到某个未知的 wifi 时,我都希望能够使用我的 VPN。
在谷歌搜索了大约 1 小时后,我还没有找到任何可以解决我的问题的方法。我只能找到为特定 wifi 适配器定义名称服务器的说明,这还需要我定义接入点,而我不想这样做。有什么指示可以指导我如何继续吗?
编辑:我通过从网络管理器 VPN 设置 GUI 设置我的 VPN 连接的 DNS 服务器解决了最紧迫的问题,但解决这个问题仍然很实用,因为我不一定想为每个 VPN 单独执行此操作。
答案1
首先,让我澄清一下关于 VPN 的一个误解。通过 VPN 连接时,您最终会(或应该)使用 VPN 提供商的 DNS 服务器。即使没有其他原因,这也可以防止“DNS 泄漏”。
正如您注意到的,您不想设置每个连接的 DNS 配置。
首先,您需要让 DNS 在没有 VPN 的情况下运行。然后,在启用 VPN 的情况下,您将进行“DNS 泄漏”测试,以确认隧道完全安全且私密。
如果你编辑/etc/systemd/resolved.conf
(man solved.conf),你会发现如下一行:
#DNS=
删除 #,然后在那里设置以空格分隔的 DNS 服务器列表。
重新启动,然后使用以下任一方法:
resolvectl
或者
systemd-resolve --status
并观察您的 DNS 服务器及其连接位置(eth0)。
然后启动 VPN 并重新运行前两个命令之一,并记下 DNS 服务器的变化以及它们的连接位置(tun0)。
现在进行“DNS泄漏”测试,请访问https://dnsleaktest.com或者https://dnsleak.com并确认没有泄漏。
最后,我要说的是,/etc/resolv.conf 的符号链接必须正确......(并且您还没有手动编辑该文件......对吗?)。