用 systemd-resolved 支持 DNS over TLS

本文最后更新于 2021-10-19, Tue, 12:37 AM

View in English

动机

DNS over TLS 避免可能的审查和投毒。

过程

迫使 NetworkManagersystemd-resolved 解析域名。

sudo vim /etc/NetworkManager/NetworkManager.conf

加上这个内容

[main]
dns=systemd-resolved

保存,退出。然后把 DoT 启用一下。

sudo vim /etc/systemd/resolved.conf

添加内容

DNS=1.0.0.1 1.1.1.1 45.11.45.11
DNSOverTLS=yes

我在这里用了 cloudflaredns.sb, 但是这不是仅有的选择。

只要服务器支持,你也可以打开 DNSSEC 验证。

另外,你可能还要修改下 /etc/resolv.conf.

sudo vim /etc/resolv.conf

注释掉其它服务器,然后加上

nameservers 127.0.0.53

保存,并开启写保护。

sudo chattr +i /etc/resolv.conf

然后启动 systemd-resolved 并重启 NetworkManager.

sudo systemctl enable --now systemd-resolved
sudo systemctl restart NetworkManager

应该工作了。

P. S.

延迟会 显著 上升。

我之前不小心打错字了。

D N A