1. 背景介绍 / Intro
dnsdist 已经在路由器上跑了两年多了,而这篇博客却鸽到了现在...
dnsdist 是一个功能丰富的、支持多种协议的 DNS 负载均衡软件(属于 PowerDNS 项目),可以监听来自不同协议的 DNS 请求,然后再将这些 DNS 流量转发给多个不同协议的上游,提供复杂的负载均衡和缓存功能。此外, dnsdist 还内置了一个 Web Server 来提供可视化的数据展示和 API 接口。
支持的上下游协议包括:
- DNS(UDP & TCP)
- DoH
- DoT
- DNSCrypt
2. 示例配置 / Sample Config
我这边并没有用到复杂的负载均衡和缓存功能,只是使用它来提供 DoT 和 DoH 服务,分别给安卓手机和 PC 浏览器使用,这样出门在外也能使用家里的无污染、CDN 友好的 DNS 服务。
简单配置如下:
1 2 3 4 5 6 7 8 9 10 |
setACL("0.0.0.0/0") -- ACL 策略,默认全部开放 newServer("127.0.0.1:53") -- 设置上游 DNS 服务,这里是普通的 UDP 53 服务 -- for version 1.3.3, we need to specify at least one addLocal() -- otherwise it will try to bind 127.0.0.1:53 -- addLocal("127.0.0.1:12345") -- 分别配置 DoH 和 DoT 服务,使用的是 openwrt 默认的自签证书 addTLSLocal('0.0.0.0:853', '/etc/uhttpd.crt','/etc/uhttpd.key_pem') addDOHLocal('0.0.0.0:8053', '/etc/uhttpd.crt','/etc/uhttpd.key_pem', '/dns-query') |