利用谷歌DNS over HTTPS (DoH)实现纯净DNS解析

寻找纯净DNS服务器还是比较难的,那为何不自己在本机建一个?还是靠自己比较可信一些。本篇适用于Linux系统,文章所用系统为Fedora 28。

前提条件,你需要能正确通过(直连/反代)访问dns.google.com这个网站。以下命令均由root执行。

下载客户端

我们使用的是开源的Google DoH客户端Dingo,各个平台的二进制下载在Release里面。

由于我们是Linux系统,我们下载Linux AMD64版本。本文撰稿时为0.13版:

配置Systemd Unit

在/etc/systemd/system下生成Systemd服务


如果你有dns.google.com的反代服务,ExecStart需要换成以下内容,替换掉中文部分。

通过systemctl start dingo启动服务后即可修改/etc/resolv.confnameserver 127.0.0.1。我们来测试下:

dingo还支持edns的配置,加上-gdns:edns x.x.x.x/y可获取x.x.x.x/y (CIDR)网段能解析出来的结果。如果你使用北京联通,可使用北京联通的网段,这样上淘宝、优酷等带CDN的大网站解析出来的就依然是针对你本地网络优化的IP。

我们尝试用上海电信114.80.0.0/12启用edns后解析出来www.taobao.com的地址:

通过查询,这4个IP均为上海电信。

我们再采用杭州移动的IP段218.205.48.0/20来测试:

查询可知这4个IP均为淘宝在杭州移动的CDN节点。

记得设置开机启动以及修改网卡DHCP的默认DNS服务器地址

发表评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.