跳过正文
使用 Cloudflare 创建一个属于自己的 DoH

使用 Cloudflare 创建一个属于自己的 DoH

·1092 字·3 分钟· loading · ·
褐瞳さん
作者
褐瞳さん
Everyone is mania in general
目录

最近看到一些关于 DNS 泄露的科普,也在很久之前使用过 Cloudflare 的 DoH,但这次使用 Cloudflare 的 DoH 时发现不用工具直接没法用,觉得很惊讶,于是更觉得有必有使用 DoH 了。后来找到了阿里云的 DoH 服务,每个月免费 1000w 次 DoH 解析。对于一个人确实够用了,但是在我实际使用才发现,阿里云的 DoH 屏蔽了国外的一些网站,即使你使用了网络工具也是无法解析出来对应的地址的,(明明是 DoH,但也算是被污染了),后来找到了下面这个项目,让我眼前一亮。

开始之前
#

首先你需要以下工具:

  1. 一个 Cloudflare 账号
  2. 一个域名并且已经托管于 Cloudflare(不是必要)
  3. 一个可以稳定访问 GitHub 的网络环境(也不是必要,可以使用这个 jsDelivr 的加速地址)

开始搭建
#

首先打开本文开头提到的 GitHub 仓库,下载或全篇复制其中的 _worker.js

打开你的 Cloudflare 创建一个 Worker,如果你是下载了js文件就选择「拖放文件」,如果你是通篇复制就选择「从 Hello World! 开始」。

选择部署方式

自己对 Worker 进行命名,拖放文件将_worker.js上传再点击「部署」就直接完成了基本的步骤,通篇复制的还需要一步,部署后顶部右上角「编辑代码」,进入编辑器,将_worker.js的内容粘贴到worker.js再点击右上角部署即可。

编辑代码

其他配置
#

到上一步其实属于你的自己的 DoH 就已经可以使用了,你的 DoH 地址就是在 Worker 概述右侧的workers.dev地址,如果你想使用自己的域名作为 DoH 地址,或者有其他需求,例如自定义查询的路径,而不使用统一的dns-query防止被盗用请继续向下看。

Worker地址

首先是如何添加自己的域名作为 DoH 地址。进入 Workers 顶部的「设置」在「域和路由」部分点击右侧的「添加」,选择「自定义域」,将期望的 DoH 地址填入点击「添加域」就行。

想要使用非统一的查询地址其实很简单,还是在 Worker 的「设置」中,添加一个环境变量,名称为TOKEN;类型为密钥或者文本都行;值就为你期望的 URL 地址,例如我的 DoH 地址为doh.xxx.com/hetong-dns,那么我的TOKEN就为hetong-dns

当然,这个js还提供了一个伪装 DoH 的方式,防止别人无意间访问到这个地址。还是在环境变量,添加一个文本类型,名称为URL,值为nginx即可,当然你还可以使用URL302,值填想要跳转到的地址。

其它食用方法可以看看官方文档

使用
#

这里我就只演示在 Firefox 中使用,其他的使用方法可以参考阿里云的 DoH 使用手册

在浏览器地址栏输入about:preferences#privacy回车,翻到最底部,找到「“基于 HTTPS 的 DNS”启用策略」,选择「最大保护」,提供方选择「自定义」,填入你的 DoH 地址,例如我的doh.xxx.com/hetong-dns就行了。

浏览器使用

本文作者: 褐瞳さん
本文链接: https://www.hetong-re4per.com/posts/how-to-have-your-own-doh/
版权声明: 本文文字在未特别注明下默认使用 CC BY-NC-SA 4.0 许可协议。

相关文章