介绍
DNS-Go 是一个基于 Go 语言开发的高性能 DNS 管理平台,提供 DNS 记录管理、上游策略配置、健康检查、日志分析等功能,并集成了现代化的 Web 管理界面。
为什么需要 DNS-Go?
在企业内网或私有云环境中,通常需要:
- 内部域名解析 - 管理企业内部的服务域名
- DNS 负载均衡 - 通过多个上游 DNS 实现高可用
- 查询日志审计 - 记录和分析 DNS 查询行为
- 灵活的解析策略 - 支持多种解析规则和策略
DNS-Go 正是为解决这些需求而设计的现代化 DNS 管理解决方案。
核心特性
🚀 高性能
- 基于 Go 语言开发,充分利用 Go 的并发优势
- 支持高并发 DNS 查询处理
- 内置缓存机制,提升查询响应速度
🎨 现代化管理界面
- 基于 Vue3 + Element Plus 构建
- 响应式设计,支持移动端访问
- 深色/浅色主题切换
- 直观的操作体验
📊 完整的 DNS 功能
- 域名管理 - 支持多域名管理,批量导入导出
- 解析记录 - 支持 A、AAAA、CNAME、MX、TXT、NS 等多种记录类型
- 上游策略 - 支持轮询、权重、故障转移等多种策略
- 健康检查 - 自动检测上游 DNS 健康状态
🔍 日志与分析
- 详细的 DNS 查询日志
- 支持按域名、IP、时间等多维度查询
- 实时统计和图表展示
🛡️ 安全与权限
- JWT 认证机制
- 基于角色的权限管理
- 操作日志记录
适用场景
| 场景 | 说明 |
|---|---|
| 企业内网 DNS | 管理企业内部服务域名解析 |
| 开发测试环境 | 快速搭建测试环境 DNS 服务 |
| 边缘节点 DNS | 在边缘节点部署本地 DNS 服务 |
| DNS 负载均衡 | 通过多上游实现 DNS 高可用 |
| DNS 审计 | 记录和分析 DNS 查询行为 |
架构概览
┌─────────────────────────────────────────────────────────────┐
│ 用户层 │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Web 界面 │ │ API 调用 │ │ DNS 客户端 │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ DNS-Go 服务层 │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Web 服务 │ │ DNS 服务 │ │ 缓存服务 │ │
│ │ (Gin) │ │ (UDP 53) │ │ (Valkey) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 数据存储层 │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ PostgreSQL │ │ MySQL │ │ SQLite │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────┘端口说明
| 端口 | 协议 | 用途 | 说明 |
|---|---|---|---|
| 8085 | TCP | Web 管理界面和 API | 默认 Web 服务端口 |
| 53 | UDP | DNS 查询服务 | 标准 DNS 端口 |
| 53 | TCP | DNS 查询服务 | 支持 TCP DNS 查询 |
| 5432 | TCP | PostgreSQL | 数据库服务端口(如使用) |
| 6379 | TCP | Valkey/Redis | 缓存服务端口(如使用) |