当前位置: 首页 > news >正文

打造您专属的高效DNS解析器:RethinkDNS

RethinkDNS: 自托管的 DNS 解析器

RethinkDNS 是一个使用 serverless-dns 构建的自托管 DNS 解析器,采用类似 Pi-Hole 的设计。它是一个无服务器的、可阻止内容的 DNS 解析器,支持 DNS-over-HTTPS (DoH) 和 DNS-over-TLS (DoT) 协议,适用于 Cloudflare Workers、Deno Deploy、Fastly 和 Fly.io 等云平台。使用这些服务的免费层足以满足 10 到 20 台设备的 DNS 流量需求。

RethinkDNS 的工作原理

RethinkDNS 在多个云平台上运行 serverless-dns,以下是主要的部署信息:

云平台服务器位置协议域名使用说明
⛅ Cloudflare Workers280+ Ping 检查DoHsky.rethinkdns.com配置说明
🦕 Deno Deploy30+ Ping 检查DoH私有测试版
⏱️ Fastly Compute@Edge80+ Ping 检查DoH私有测试版
🪂 Fly.io30+ Ping 检查DoH 和 DoTmax.rethinkdns.com配置说明

在服务器端处理请求的时间为 0 毫秒到 2 毫秒(中位数),各区域和网络间的端到端延迟在 10 毫秒到 30 毫秒(中位数)。

FOSS United

Rethink DNS 解析器在 Fly.io 上得到了 FOSS United 的支持。

自托管配置

在 Cloudflare Workers 上设置 serverless-dns 是最简单的方式:

以下是根据不同平台的分步指导:

平台难度运行时文档
⛅ Cloudflare简单v8 Isolates在 Cloudflare Workers 上托管
🦕 Deno.com中等Deno Isolates在 Deno.com 上托管
⏱️ Fastly Compute@Edge简单Fastly JS在 Fastly Compute@Edge 上托管
🪂 Fly.ioNode MicroVM在 Fly.io 上托管

要设置阻止列表,只需在浏览器中访问 https://.tld/configure(它应该加载类似于 RethinkDNS 的配置页面 的内容)。

如果需要帮助或需要支持,请随时 打开问题 或 提交补丁。

开发指南

# 进入工作目录
cd /my/work/dir# 克隆这个仓库
git clone https://github.com/serverless-dns/serverless-dns.git# 进入 serverless-dns 目录
cd ./serverless-dns

Node.js 环境设置

如果需要,可通过 nvm 安装 Node v22+:

# 安装 Node v22+,如有需要
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
nvm install --lts# 下载依赖
npm i# (可选)更新依赖
npm update# 在 Node 上运行 serverless-dns
./run n

Deno 环境设置

# 安装 Deno v2+
curl -fsSL https://deno.land/install.sh | sh# 在 Deno 上运行 serverless-dns
./run d

Fastly 环境设置

# 安装 Node v22+,如有需要
# 安装 Fastly CLI
# https://developer.fastly.com/learning/tools/cli# 在 Fastly Compute@Edge 上运行 serverless-dns
./run f

Cloudflare Workers 设置

# 安装 Cloudflare Workers (cli) aka Wrangler
npm i wrangler --save-dev# 在 Cloudflare Workers (cli) 上运行 serverless-dns
./run w

环境变量配置

在 Cloudflare Workers 上配置环境变量以调整默认值,具体请参考 env.js

请求流程

请求/响应流程如下:

  1. 客户端 <-> src/server-[node|workers|deno] <-> doh.js <-> plugin.js

身份验证

serverless-dns 支持使用一个 字母数字 的承载令牌进行身份验证,支持 DoH 和 DoT 协议。配置步骤较为复杂,主要通过设置环境变量实现,具体请参考官方文档。

日志与分析

serverless-dns 可以设置为通过 Cloudflare 的 Logpush 上传日志,具体设置步骤在官方文档中有详细说明。

阻止列表

serverless-dns 利用压缩的 Succinct Radix Trie 存储超过 190 个阻止列表,按周生成并托管在 Cloudflare R2 上。它可支持大约 1300 万个条目(截至2023年1月)。

对于希望使用自托管 DNS 的用户,RethinkDNS 提供了一种资源节省、高效、安全的解决方案。如果您对该项目感兴趣或想要提供反馈,请访问 RethinkDNS GitHub 页面。

同类项目介绍

除了 RethinkDNS,市场上还有其他一些开放源代码的 DNS 解析器项目,例如:

  1. Pi-hole: 这是一个强大的网络广告拦截器,旨在为家庭网络提供 DNS 解析服务,同时具有广告拦截功能。
  2. AdGuard Home: 提供广告拦截和隐私保护服务,支持各种设备,可以轻松配置和管理。
  3. Unbound: 是一个高性能的递归 DNS 解析器,支持 DNSSEC 和 DoH,适用于更复杂的 DNS 需求。

这些项目各有千秋,可以根据不同的需求来选择使用。

http://www.dtcms.com/a/613668.html

相关文章:

  • 网上书店网站建设方案策划如何建设好一个网站
  • Spring Framework 中文官方文档
  • 深度剖析 C++ vector的底层实现
  • USDe:站在稳定币、永续化与资产代币化三大趋势交汇点的新型美元
  • SpringBoot 2.x 升级到 3.x 时 Swagger 迁移完整指南
  • 网站首页浮动窗口代码忘记了wordpress登录密码忘记
  • springMVC(3)学习
  • 负载均衡API测试
  • 门户类网站费用淘宝网站边上的导航栏怎么做
  • oralce创建种子表,使用存储过程生成最大值sql,考虑并发,不考虑并发的脚本,plsql调试存储过程,java调用存储过程示例代码
  • 计算机网络技术三级知识点
  • 好用心 做网站送女友wordpress英文主题出现汉字
  • 建筑网站夜里几点维护个人网站名字大全
  • 18.HTTP协议(二)
  • 【科技补全76】新概念英语点读工具NCE-Flow、在线文件管理器copyparty 部署指北
  • 添加某些应用程序使其能够用win+r启动
  • 免费的个人网站北京工程建设监理协会网站
  • 34_FastMCP 2.x 中文文档之FastMCP客户端高级功能:处理服务端发起的用户引导详解
  • 算法公司技术面试经验总结
  • 公路建设管理办公室网站网站建设到维护
  • 美国 TikTok 带货 GMV 翻倍:专线 + 纯净住宅 IP 的流量密码
  • [智能体设计模式] 第11章:目标设定与监控模式
  • Modbus RTU 转 Modbus TCP:物联网网关实现中药产线巴赫曼与三菱PLC互联
  • 商城网站都有哪 些功能济南网签查询系统
  • Flink20 SQL 窗口函数概述
  • Java基础 | SpringBoot实现自启动的方式
  • 【ZeroRange WebRTC】UDP无序传输与丢包检测机制深度分析
  • 零基础建设网站视频教程抚州的电子商务网站建设公司
  • qt显示类控件--- Label
  • 【深度学习】基于Faster R-CNN与HRNet的豆类品种识别与分类系统