请注意,以下内容需要已弃用的 proxy 插件。
Google 近一年推出了一项 DNS 服务,可以经由 HTTPS 查询:https://dns.google.com。这意味着你的查询经过加密,只有你(以及 Google(!) 才能看到。看到有关 英国窃听宪章 的所有新闻报道后,我认为我应该在 CoreDNS 中实现这项服务作为一项插件。
我自己当然准备使用这一功能,它能保护我,而且还能让我将 CoreDNS 作为 DNS 代理用于我的家庭网络,真是太完美了。
另一个值得注意的实现是“dingo”:https://github.com/pforemski/dingo。
还要注意,这是一个与“DNS over TLS”不同的协议,DNS over TLS 具有相似的目标,并已由 IETF 标准化。
目前,你需要从源头编译 CoreDNS 来使用这一功能,或者等到发布 CoreDNS-004。
配置 CoreDNS 这一侧相当直观。你只需要以下内容便可生成 Corefile
. {
proxy . 8.8.8.8 {
protocol https_google
}
cache
log
errors
}
接下来启动 CoreDNS 并对其进行查询。
% ./coredns
.:53
2016/11/26 17:11:07 [INFO] CoreDNS-003
CoreDNS-003
::1 - [26/Nov/2016:17:13:10 +0000] "MX IN miek.nl. udp false 4096" NOERROR 246 149.791162ms
::1 - [26/Nov/2016:17:13:11 +0000] "MX IN miek.nl. udp false 4096" NOERROR 170 156.432µs
唯一未加密的 DNS 来自你的笔记本电脑/手机/电脑向 CoreDNS 的 DNS,其余的都经过了加密。
默认情况下,dns.google.com
将使用 8.8.8.8 和 8.8.4.4 每 30 秒重新解析一次(你可以覆盖这些默认值)。这是唯一未加密的查询,但这可能会导致非常单调的浏览器历史记录。
接下来,我需要配置一个 Raspberry Pi 并在其上安装 CoreDNS。就像所有 CoreDNS 开发一样,欢迎提供反馈。