Stubby
Stubby 是一个应用程序,充当本地 DNS 隐私桩解析器(使用 DNS-over-TLS)。Stubby 加密从客户端机器(桌面或笔记本电脑)发送到 DNS 隐私解析器的 DNS 查询,从而提高最终用户隐私。
安装
配置
要配置 stubby,请执行以下步骤
选择解析器
安装后,Stubby 具有一些默认解析器。它们可以在 /etc/stubby/stubby.yml
中找到和编辑。您可以使用默认值,取消注释预先编写的解析器之一,或从此列表中找到另一个解析器。
有效解析器配置示例
/etc/stubby/stubby.yml
upstream_recursive_servers: # The Cloudflare server - address_data: 1.1.1.1 tls_port: 853 tls_auth_name: "cloudflare-dns.com" # The Surfnet/Sinodun servers - address_data: 145.100.185.15 tls_auth_name: "dnsovertls.sinodun.com" tls_pubkey_pinset: - digest: "sha256" value: 62lKu9HsDVbyiPenApnc4sfmSYTHOVfFgL3pyB+cBL4=
当您收到警告日志抱怨错误的 tls_pubkey_pinset 时,tls_pubkey_pinset 值可能错误,并且 tls_pubkey_pinset
的 value
可以使用以下命令生成
$ echo | openssl s_client -connect address_data:tls_port 2>/dev/null | openssl x509 -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
修改 resolv.conf
选择解析器后,修改 resolv.conf 文件,并将当前解析器地址集替换为 localhost 的地址
/etc/resolv.conf
nameserver ::1 nameserver 127.0.0.1 options trust-ad
其他程序可能会覆盖此设置;有关详细信息,请参阅 resolv.conf#Overwriting of /etc/resolv.conf。
启动 systemd 服务
最后,启动/启用 stubby.service
。
技巧和提示
本地 DNS 缓存配置
Stubby 没有内置 DNS 缓存,因此每个查询都会被传输和解析,这可能会减慢连接速度。设置 DNS 缓存需要安装和配置单独的 DNS 缓存器。
更改端口
为了转发到本地 DNS 缓存,Stubby 应该监听与默认端口 53
不同的端口,因为 DNS 缓存本身需要监听 53
端口,并在不同的端口上查询 Stubby。端口号 53000
在本节中用作示例。在此示例中,端口号大于 1024,因此 stubby 不需要以 root 身份运行。
编辑 listen_addresses
的值如下
/etc/stubby/stubby.yml
listen_addresses: - 127.0.0.1@53000 - 0::1@53000
dnsmasq
将 dnsmasq 配置为本地 DNS 缓存。与 Stubby 配合使用的基本配置如下
/etc/dnsmasq.conf
no-resolv proxy-dnssec server=::1#53000 server=127.0.0.1#53000 listen-address=::1,127.0.0.1
重启 dnsmasq.service
以应用更改。
其他 DNS 缓存器
有关更多 DNS 缓存器,请参阅 DNSCrypt#本地 DNS 缓存配置。配置应该类似,即使不是完全相同。