欢迎注册论坛,享受更多奶昔会员权益!
您需要 登录 才可以下载或查看,没有账号?注册
×
本帖最后由 Sanite_Ava 于 2025-11-29 20:00 编辑
🌐 DNS 自动分流网关 - 高性能 & 全协议支持 (DoH/DoT/DoQ)
一个基于 Go 语言开发的轻量级、高性能 DNS 代理服务器。
如果你受够了 DNS 污染、想要更精准的国内外流量分流,或者想自建支持 DoH/DoT/DoQ 的安全 DNS 服务,这个项目绝对值得一试!
测试服务器:
面板地址: 点击进入 WebUI
DoH: https://dns-test.11451453.xyz/dns-query
DoT/DoQ: dns-test.11451453.xyz
注: 测试服务器位于德国法兰克福,国内ECS为上海电信IP,国外ECS为日本东京IP,速度一定不理想,仅供测试解析IP是否正确以及效果,如需体验高速解析请自行搭建配置
✨ 项目亮点
- 🌍 智能分流: 内置 GeoIP 和 GeoSite,自动将国内域名解析到国内 DNS,海外域名解析到海外 DNS,速度与准确性兼得。
- 🚀 全协议支持: 不仅支持传统 UDP/TCP,更完美支持 DoH (HTTP/2 & HTTP/3)、DoT、DoQ (QUIC) 等加密协议。
- 🔒 自动 HTTPS: 集成 Let's Encrypt,只需配置域名,自动申请和续期 TLS 证书,轻松搭建私有 DoH/DoT 服务器。
- ⚡ 极速体验: 海外查询支持并发竞速(最快者胜),支持 TCP/DoT 连接复用 (Pipelining),告别解析延迟。
- 🛠️ 高度定制: 支持自定义
hosts.txt 和 rule.txt 分流规则,支持自定义 ECS IP 以优化 CDN 解析。
- 📦 开箱即用: 启动时自动更新 Geo 数据库,支持 Docker 一键部署。
📝 更新日志
✨ 新增功能
- WebUI调整: 全新风格,支持深色/浅色模式切换。


- 移动端支持: WebUI 适配移动端。
- 仪表板增强版:
- 仪表盘卡片新增 CN/Overseas 查询统计、Goroutines 监控、启动时间显示。
- 监听端口卡片重构为 Grid 布局,未监听端口自动淡化显示。
- 上游DNS服务器管理: 支持通过拖拽 (Drag-and-Drop) 自定义上游服务器排序。

- 日志系统:
- 查询日志支持分页加载 (Pagination),大幅提升大数据量下的加载性能。
- 日志轮转策略从“条数限制”更改为“文件大小限制 (MB)”,默认 1MB 自动轮转。
- 优化: 登录按钮与刷新按钮样式优化,提升交互体验。
🐛 修复问题
- Pipeline 高并发问题: 重构 DoT/TCP 客户端,使用连接池 (Connection Pool) 替代单一连接锁,彻底修复开启 Pipeline 后高并发下的延迟暴增与连接失败问题。
💡 提示: 本次更新包含多项核心功能升级与体验改进,建议所有用户更新到最新版本以获得最佳体验!
🚀 快速部署
部署只需两步:
1. 创建配置文件 config.yaml
在一个空目录中创建一个 config.yaml 文件,填入以下内容:
# 服务监听配置(注释或未配置则不开启相应服务)
listen:
dns_udp: ":53"
dns_tcp: ":53"
doh: ":443"
dot: ":853"
doq: ":853"
# 自动证书申请 (Let's Encrypt)
# 如果启用,server.crt 和 server.key 将被忽略,证书将自动管理。
# 注意:需要公网 80 和 443 端口可访问。
auto_cert:
enabled: false
email: "your-email@example.com" # 用于接收证书过期通知
domains:
- "dns.example.com"
cert_dir: "certs" # 证书缓存目录
# Bootstrap DNS (用于解析上游服务器域名)
bootstrap_dns:
- "223.5.5.5:53"
- "8.8.8.8:53"
# 上游服务器配置
upstreams:
cn:
# 示例:国内UDP DNS
- address: "223.5.5.5:53"
protocol: "udp"
ecs_ip: "114.114.114.114"
# 示例:国内DoT DNS (开启Pipelining)
- address: "tls://223.6.6.6:853"
protocol: "dot"
ecs_ip: "114.114.114.114"
pipeline: true
insecure_skip_verify: false
overseas:
# 示例:海外DoH DNS (支持H3, 验证证书)
- address: "https://8.8.8.8/dns-query"
protocol: "doh"
ecs_ip: "8.8.8.8" # Cloudflare DNS 不支持ecs
http3: true
insecure_skip_verify: false
# 示例:海外DoT DNS (开启Pipelining)
- address: "tls://8.8.8.8:853"
protocol: "dot"
ecs_ip: "8.8.8.8"
pipeline: true
# 示例:海外DoQ DNS
- address: "quic://dns.nextdns.io:853"
protocol: "doq"
ecs_ip: "8.8.8.8"
# GeoIP/GeoSite数据文件路径及下载地址
geo_data:
geoip_dat: "GeoIP.dat"
geosite_dat: "GeoSite.dat"
geoip_download_url: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.dat"
geosite_download_url: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geosite.dat"
2. 一行命令启动
docker run -d \
--name dns-proxy \
--restart unless-stopped \
--network host \
-v $(pwd)/config.yaml:/app/config.yaml \
-v $(pwd)/certs:/app/certs \
-v $(pwd)/hosts.txt:/app/hosts.txt \
-v $(pwd)/rule.txt:/app/rule.txt \
weijiaqaq/dns_automatic_traffic_splitting:latest
注意:推荐使用 --network host 模式以获得最佳网络性能。
📖 使用指南
📂 文件说明
除了 config.yaml,你还可以在运行目录下创建以下文件进行自定义(可选,若无文件会自动忽略):
-
hosts.txt: 类似于系统的 hosts 文件,强制指定域名 IP。
192.168.1.1 myrouter.lan
0.0.0.0 ads.badsite.com
-
rule.txt: 自定义域名的分流策略(强制走 cn 或 overseas 组)。
google.com overseas
baidu.com cn
🔗 项目链接
项目完全开源,欢迎大家试用、提建议或者贡献代码!
|