mosdns/CHANGELOG.md

5.1 KiB
Raw Permalink Blame History

更新日志 / 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 创建的原始 MosDNS 项目
  • 感谢所有开源社区的贡献者

版本说明

版本号遵循 语义化版本 2.0.0

  • 主版本号: 不兼容的 API 修改
  • 次版本号: 向下兼容的功能性新增
  • 修订号: 向下兼容的问题修正

未来计划

v1.1.0 (计划中)

  • 配置文件自动监控
  • 插件级别热加载
  • 更多 DNS 策略
  • 性能监控面板
  • Docker 镜像优化

v1.2.0 (计划中)

  • 分阶段热加载
  • 配置版本管理
  • 热加载历史记录
  • Kubernetes 部署支持

v2.0.0 (远期计划)

  • 插件市场
  • 可视化配置生成器
  • 多节点集群支持
  • 高可用部署方案

完整更新历史: GitHub Releases