DNS-over-HTTPS
DNS-over-HTTPS是 DNS over HTTPS 的一个实现。它可以作为一个本地解析器。
安装[编辑 | 编辑源代码]
安装dns-over-https包包。
客户端启动[编辑 | 编辑源代码]
禁用任何绑定到53端口的服务[编辑 | 编辑源代码]
为了查看是否有程序在使用53端口,运行:
$ ss -lp 'sport = :domain'
如果输出超过了一行,你需要禁用任何使用53端口的服务。一旦以上命令只输出以下内容,您就可以继续操作了:
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
更改系统DNS服务器[编辑 | 编辑源代码]
将系统的DNS服务器更改为配置文件listen =
中的地址。如果你不知道自己在做什么,建议使用127.0.0.1
。
这可以通过Network Manager或编辑/etc/resolv.conf来完成。
启动[编辑 | 编辑源代码]
测试配置[编辑 | 编辑源代码]
要测试你系统的DNS是否有效,请在命令行输入nslookup www.baidu.com
。假定您在安装之前有配置好DNS,这会在配置好DNS over HTTPS之前成功执行。
客户端配置[编辑 | 编辑源代码]
客户端配置文件默认是/etc/dns-over-https/doh-client.conf
。
选择首选的上游DNS服务器[编辑 | 编辑源代码]
要选择首选DNS服务器,请取消注释其中一个配置文件。
如果你使用的DNS服务器未列出,你可以在[upstream]
部分使用此模板:
/etc/dns-over-https/doh-client.conf
[[upstream.upstream_ietf]] url = "https://[IP or web address]/dns-query" weight = 20
故障排除[编辑 | 编辑源代码]
服务在有线连接中无法正常启动[编辑 | 编辑源代码]
正如开发者所说:
- ArchLinux没有默认的网络管理器,因此systemd没有预先配置的在线检测。
- 如果你用Wi-Fi,我建议确保systemd的在线检测能正常运行。我相信你的系统已经安装网络管理器,例如NetworkManager。以帮助你管理Wi-Fi密码。
- 或者,如果你用有线网络,简单地修改.service文件以禁用在线检测将是最简单的解决方案。为非移动机器安装NetworkManager可能违反K.I.S.S.原则,我们不希望这样做。
/etc/systemd/system/doh-client.service.d/override.conf
[Unit] After=multi-user.target [Service] Type=idle