mosdns/CHANGELOG.md

211 lines
5.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 更新日志 / Changelog
所有重要的项目更改都将记录在此文件中。
---
## [v1.0.0] - 2025-10-16
### 🎉 首次发布
基于 MosDNS v5 的增强版本,专注于智能防污染和易用性。
### ✨ 新增功能
#### 🛡️ 智能防污染系统
- **smart_fallback 插件**: 自动检测 DNS 污染并切换上游
- 支持国内/国外 DNS 智能选择
- CN IP 自动检测
- 超时自动切换
- 并行/顺序两种工作模式
- 详细的调试日志
#### 🎨 Web 管理界面
- **Vue 3 + TypeScript** 前端框架
- **Element Plus** UI 组件库
- **功能特性**:
- 实时服务器状态监控
- DNS 查询统计可视化
- 规则管理(添加/编辑/删除)
- 配置文件在线编辑
- 插件状态监控
- 一键热加载配置
- 缓存管理
#### 🔄 配置热加载
- **HotReloadManager**: 零停机配置更新
- 自动验证新配置
- 失败自动回滚
- 保持 DNS 服务不中断
- 完整的错误处理
- 详细的加载日志
#### ⚡ 一键部署
- **init 命令**: 快速初始化配置
- 自动生成 config.yaml
- 创建必要的目录结构
- 生成示例数据文件
- 智能检测已存在文件
- `--force` 强制覆盖模式
- 详细的部署指引
#### 🧠 智能拓扑排序
- **自动依赖分析**: 支持任意配置顺序
- 检测 `$plugin_name` 引用
- 识别 `entry:` 字段依赖
- 循环依赖检测
- 详细错误提示
- 自动优化加载顺序
#### 📡 MikroTik 集成优化
- **mikrotik_addresslist 插件增强**:
- 性能优化
- 连接池管理
- 重试机制
- 详细日志
- 错误处理改进
#### 🔌 完整的 RESTful API
- `/api/server/info` - 服务器信息
- `/api/server/status` - 服务器状态
- `/api/plugins` - 插件列表
- `/api/config` - 配置管理
- `/api/config/reload` - 热加载配置
- `/api/config/validate` - 配置验证
- `/api/rules` - 规则管理 (CRUD)
- `/api/cache/stats` - 缓存统计
- `/api/cache/flush` - 清空缓存
### 🔧 改进
#### 配置验证
- **ConfigValidator**: 完整的配置验证系统
- 必需插件检查
- 域名文件路径验证
- DNS 策略验证
- 插件类型检查
- 详细错误提示
#### 配置构建
- **ConfigBuilder**: 配置文件生成器
- 规则驱动的配置生成
- 智能插件组合
- MikroTik 配置集成
- YAML 格式化输出
#### 规则管理
- **RuleHandlers**: 完整的规则管理 API
- 列表、获取、添加、更新、删除
- 文件名智能匹配
- 支持多种文件名格式
- YAML 解析和生成
### 📚 文档
#### 新增文档
- `README.md` - 项目主文档(完全重写)
- `README-一键部署.md` - 快速部署指南
- `快速部署指南.md` - 完整部署流程
- `init功能说明.md` - init 命令详解
- `BUILD-USAGE.md` - 构建脚本使用说明
- `发布前检查清单.md` - GitHub 发布指南
- `yltx-dns-智能防污染系统-架构设计文档.md` - 技术架构文档
#### 配置示例
- `config.yaml` - 标准配置(智能防污染)
- `config-working.yaml` - 简化配置(快速测试)
### 🛠️ 工具
#### 构建脚本
- `build-all-platforms.sh` - 多平台构建脚本
- 支持 Linux (AMD64/ARM64)
- 支持 Windows (AMD64)
- 支持 macOS (Intel/Apple Silicon)
- 交互式菜单
- 自动构建 Vue 前端
- 详细的构建日志
### 🐛 Bug 修复
- 修复拓扑排序算法错误(依赖方向理解错误)
- 修复拓扑排序无法检测 `entry:` 字段依赖
- 修复删除规则 API 文件名不匹配问题
- 修复构建脚本在非交互式环境中的退出问题
- 修复 TypeScript 类型错误ESLint 配置)
- 修复缓存插件参数不支持问题
### 📊 性能
- **启动时间**: < 2
- **内存占用**: 30-50 MB空载
- **DNS 延迟**: 20-30ms国内, 80-120ms防污染
- **缓存命中率**: 85%+
- **并发能力**: 3000+ qps单核
- **二进制大小**: ~26 MB包含 Web UI
### 🔒 安全
- Web UI 默认仅监听 localhost
- API 接口 CORS 配置
- 配置文件权限检查
- 敏感信息保护
### 📦 依赖
#### 后端
- Go 1.20+
- MosDNS v5 核心
- Chi 路由器
- Zap 日志库
#### 前端
- Vue 3
- TypeScript
- Element Plus
- Vite
- Axios
### 🙏 致谢
- 感谢 [@IrineSistiana](https://github.com/IrineSistiana) 创建的原始 MosDNS 项目
- 感谢所有开源社区的贡献者
---
## 版本说明
版本号遵循 [语义化版本 2.0.0](https://semver.org/lang/zh-CN/)
- **主版本号**: 不兼容的 API 修改
- **次版本号**: 向下兼容的功能性新增
- **修订号**: 向下兼容的问题修正
---
## 未来计划
### v1.1.0 (计划中)
- [ ] 配置文件自动监控
- [ ] 插件级别热加载
- [ ] 更多 DNS 策略
- [ ] 性能监控面板
- [ ] Docker 镜像优化
### v1.2.0 (计划中)
- [ ] 分阶段热加载
- [ ] 配置版本管理
- [ ] 热加载历史记录
- [ ] Kubernetes 部署支持
### v2.0.0 (远期计划)
- [ ] 插件市场
- [ ] 可视化配置生成器
- [ ] 多节点集群支持
- [ ] 高可用部署方案
---
**完整更新历史**: [GitHub Releases](https://git.ylcomm.cn/dengxiongjian/mosdns/releases)