211 lines
5.1 KiB
Markdown
211 lines
5.1 KiB
Markdown
# 更新日志 / 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)
|
||
|