[原创首发] 🔐 通过 EdgeOne CDN 搭建专属于你的隐蔽纯净 DoH 服务

🔐 通过 EdgeOne CDN 搭建专属于你的隐蔽纯净 DoH 服务

本文介绍一种基于 EdgeOne CDN 规则引擎的 DoH(DNS over HTTPS)部署思路:在不额外准备服务器的前提下,将一个已经正常接入 EdgeOne CDN 的 HTTPS 站点扩展为自定义路径的 DoH 服务。

这种方式的核心优势在于,DoH 请求会经过你现有的 CDN 域名与自定义路径转发到上游 DNS 服务。对外看起来仍然是一个普通 HTTPS 站点,既能降低额外运维成本,也能让服务形态更加自然、可控。


🧰 事前准备

  • 一个正在使用 EdgeOne CDN 加速的网站,并且已经完成 HTTPS 证书配置。例如:eo.blog.cmliussss.com
    EdgeOne CDN 加速的站点

  • 🎯 本文最终要实现的效果是:让 https://eo.blog.cmliussss.com/CMLiussss 这个地址对外提供 DoH 服务。

    ⚠️ 建议不要直接使用 /dns-query 作为公开访问路径。该路径是 DoH 服务中非常常见的特征路径,识别度较高;使用自定义路径可以降低服务暴露的特征,整体上也更灵活。


🖼️ 图文教程

1. 🧩 创建规则

  • 前往 站点加速 -> 规则引擎 -> 创建规则 -> 新增空白规则
    创建规则

2. ⚙️ 填写规则内容

  • 规则名称:可按自己的习惯填写,例如 DoH 服务

创建规则

  • IF₁
    • 匹配类型:HOST,运算符:等于,值:eo.blog.cmliussss.com替换成你自己的域名
      + And

    • 匹配类型:URL path,运算符:等于,值: /CMLiussss替换成你需要实现 DoH 服务的路径

    • 操作

      • 修改源站,源站类型:IP/域名,值:cloudflare-dns.com,回源协议:HTTPS,HTTPS 回源端口:443
      • Host Header 重写,模式:自定义,目标值:cloudflare-dns.com
      • 回源 URL 重写,类型:替换完整路径,目标路径:/dns-query
    • IF₂

      • 匹配类型:请求方法,运算符:等于,值:GET
        + And

      • 匹配类型:查询字符串,参数名称:name,运算符: 存在
        + And

      • 匹配类型:HTTP 请求头,头部名称:自定义 > accept,运算符: 不等于,值:application/dns-message,忽略大小写

      • 操作

        • 修改 HTTP 回源请求头,类型:设置,头部名称:自定义 > accept,头部值:application/dns-json
        • 修改 HTTP 节点响应头,类型:设置,头部名称:自定义 > content-type,头部值:application/json

3. ✅ 保存并发布

  • 点击 保存并发布 后返回 域名管理,等待配置状态变为 已生效
    等待状态变为已生效

4. 🎉 部署完成


5. 📱 配置使用

  • 后续只需要将你的 DoH 服务地址 https://eo.blog.cmliussss.com/CMLiussss 配置到支持自定义 DoH 的客户端、浏览器或网关中即可使用。

💡 建议根据自己的实际域名和路径进行替换,并定期检查 EdgeOne 规则是否仍然生效。如果后续更换上游 DoH 服务,也只需要调整源站、Host Header 和回源路径等相关配置。


🌐 更换谷歌DoH上游

「 🚀 点击展开 更换谷歌DoH上游 图文教程 」

⚙️ 填写谷歌规则内容

  • 规则名称:可按自己的习惯填写,例如 DoH 服务

创建规则

  • IF₁
    • 匹配类型:HOST,运算符:等于,值:eo.blog.cmliussss.com替换成你自己的域名
      + And

    • 匹配类型:URL path,运算符:等于,值: /CMLiussss-Google使用不同路径即可实现同域名下的不同上游DoH

    • 操作

      • 修改源站,源站类型:IP/域名,值:dns.google,回源协议:HTTPS,HTTPS 回源端口:443
      • Host Header 重写,模式:自定义,目标值:dns.google
      • 回源 URL 重写,类型:替换完整路径,目标路径:/dns-query
    • IF₂

      • 匹配类型:请求方法,运算符:等于,值:GET
        + And

      • 匹配类型:查询字符串,参数名称:name,运算符: 存在
        + And

      • 匹配类型:HTTP 请求头,头部名称:自定义 > accept,运算符: 不等于,值:application/dns-message,忽略大小写

      • 操作

        • 修改 HTTP 回源请求头,类型:设置,头部名称:自定义 > accept,头部值:application/dns-json
        • 修改 HTTP 节点响应头,类型:设置,头部名称:自定义 > content-type,头部值:application/json
        • 回源 URL 重写,类型:替换完整路径,目标路径:/resolve注意谷歌上游需要多设置一个 回源URL重写 参数

📱 配置使用

  • 后续只需要将你的 DoH 服务地址 https://eo.blog.cmliussss.com/CMLiussss-Google 配置到支持自定义 DoH 的客户端、浏览器或网关中即可使用。

🏠 备案域名配置

「 🚀 点击展开 备案域名使用国内EdgeOne节点 图文教程 」

⚙️ 填写修改规则内容

  • 国内的备案域名在使用 EdgeOne CDN 时,通常会被分配到国内节点。为了让 DoH 服务能够顺利回源到 Cloudflare 的 DoH 上游,需要将源站设置为 *.cloudflare-gateway.com 的 DoH 域名,其中 * 为通配符,例如 cmliussss.cloudflare-gateway.com

  • IF₁

    • 操作
    • 修改源站,源站类型:IP/域名,值:cmliussss.cloudflare-gateway.com,回源协议:HTTPS,HTTPS 回源端口:443
    • Host Header 重写,模式:自定义,目标值:cmliussss.cloudflare-gateway.com
  • 其余操作照旧即可


新人 Youtuber,需要您的支持。如果这篇文章对你有帮助,欢迎帮我点赞关注打开小铃铛十分感谢!!! 🙏