DNS over TLS(DoT)在 20.10 中不起作用

DNS over TLS(DoT)在 20.10 中不起作用

我首先简单地在网络管理器中添加了我想要使用的服务器的 DNS 地址,但这不起作用。

在此处输入图片描述

然后我尝试编辑 /etc/systemd/resolved.conf:

[Resolve]
DNS=95.216.24.230
#FallbackDNS=
#Domains=
DNSSEC=yes
DNSOverTLS=yes
#MulticastDNS=no
#LLMNR=no
#Cache=no-negative
DNSStubListener=yes
#ReadEtcHosts=yes
#ResolveUnicastSingleLabel=no

那也没用。浏览器无法使用。但是,当我恢复到我的 ips dns 或其他简单的 dns 服务器(并注释掉 /etc/systemd/resolved.conf 中的所有条目)时,一切都正常。我也尝试过其他 DoT 服务器,但它们都不适合我。我查看了关于这个主题的其他帖子,但它们似乎都提到了 18.04。我现在使用的是 20.10,从那时起情况就发生了变化。我不确定我应该通过 netplan 还是 /etc/systemd/resolved.conf 进行编辑。实际上,我认为这将是一个简单的过程,只需将 dns 服务器的 ip 插入网络管理器,但显然并非如此。

答案1

对于其他可能遇到同样问题的人,答案是忽略网络管理器。在 DNS 部分关闭自动,并在网络管理器中将 dns 字段留空。然后 nano /etc/systemd/resolved.conf 并进行如下设置:

[Resolve]
DNS=your.dns.ip#server.name
#FallbackDNS=
#Domains=
DNSSEC=true
DNSOverTLS=true
#MulticastDNS=no
#LLMNR=no
#Cache=no-negative
#DNSStubListener=yes
#ReadEtcHosts=yes
#ResolveUnicastSingleLabel=no

诀窍是,您必须将 DNS= 设置为 ip PLUS '#' 加上服务器名称,DNSOverTLS=true 才能工作。这是因为必须验证服务器的证书才能继续。如果您不提供服务器的名称,您的机器将无法验证它。“机会主义”在这里可以工作,但不会验证并打开几个漏洞,因此不是一个好的选择。此外,显然,您连接的 DNS 服务器必须支持 DoT。

本次运行后:

sudo systemctl restart systemd-resolved.service

你就可以走了。

感谢 Thomas Ward 指出“机会主义”设置的潜在问题并提供如何正确执行的线索。

相关内容