为Google DoH准备反向代理

前面有一篇文章提到了利用dns.google.com服务配合dingo客户端实现本机的纯净DNS解析,但Dingo的使用前提为正确访问dns.google.com,但在国内又不能顺利访问。本篇文章就是为了解决这个问题而写。

原理也很简单,架设一个nginx实现API层面的反向代理。所以你需要一台在海外正常访问Google的服务器。本文拿CentOS 7做例子。

获取API地址

首先我们得获取Google DNS的API地址,通过访问dns.google.com后查询任何域名,比如g.cn,可在页面最底下发现一个链接:https://dns.google.com/resolve?name=g.cn,这个就是API的网址,打开查看我们可以发现以json形式呈现的内容供客户端使用。所以我们仅需要代理/resolve这个路径即可。

申请Let’s Encrypt证书

到这一步你需要一个指向自己服务器的域名,假设我们的域名是dns.example.com,在自己部署的时候记得要换掉所有的example域名。以下操作均为root用户。

安装依赖:

生成并激活虚拟环境

申请域名证书

证书有效期3个月,记得续,进入虚拟环境后,命令为

再重启nginx就行了。

架设Nginx

安装好Nginx后在/etc/nginx/conf.d下创建一个dns.conf的文件,输入以下内容:

使用nginx -t测试语法,没问题的话可以启动服务了

试试https://dns.example.com/resolve?name=g.cn,如果能看到json内容,即为成功。

发表评论

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