8.0 KiB
8.0 KiB
Changelog
所有对本项目的显著更改都将记录在此文件中。
[2.0.0] - 2026-01-18
重大重构
- 核心查询逻辑重构:移除了所有响应合并相关代码,简化了DNS查询处理流程
- 并行查询模式重设计:改为返回第一个成功响应,提高响应速度
- fast-ip模式优化:只向一个预先测试出的最快服务器发送请求,降低资源消耗
- 代码结构优化:移除了冗余的响应合并机制,减少了内存占用和CPU消耗
移除
- 删除了
mergeResponses函数:不再合并多个DNS响应 - 删除了
recordKey结构体:不再需要唯一标识DNS记录 - 删除了
getRecordKey函数:不再需要获取DNS记录的唯一标识 - 移除了所有响应合并相关的代码
改进
- parallel模式:向多个上游服务器并行发送请求,返回第一个成功响应
- fast-ip模式:通过ping测试选择最快服务器,只向一个服务器发送请求
- 默认模式:采用新的并行查询逻辑,返回第一个成功响应
- 资源管理:优化了连接池使用,减少资源消耗
- DNSSEC验证:只对将要返回的响应进行验证,减少不必要的计算
性能提升
- 减少了内存占用:不再存储多个响应进行合并
- 降低了CPU消耗:移除了复杂的响应合并算法
- 提高了响应速度:返回第一个成功响应,无需等待所有服务器响应
- 减少了网络流量:fast-ip模式只向一个服务器发送请求
[1.2.7] - 2026-01-17
改进
- 实现服务器启动时远程屏蔽列表获取和DNS服务启动同时进行
- 新增
LoadLocalRulesOnly()方法,只加载本地规则和hosts文件,确保服务器快速启动 - 在main.go中使用
LoadLocalRulesOnly()替代LoadRules(),不再等待远程规则获取完成 - 添加异步加载远程规则的goroutine,服务器启动后在后台加载远程规则
- 优化缓存机制,本地有缓存时自动加载,服务器启动时只检查更新而不是重新获取
- 修改
fetchRemoteRules方法,只有在缓存需要更新时才去远程获取规则,否则直接从缓存加载 - 完善错误处理,当从远程获取失败时,尝试使用过期的缓存
- 服务器和设置界面优化调整,增加缓存模式设置、缓存大小、缓存时间设置
[1.2.6] - 2025-12-30
新增
- 实现查询日志详情的域名信息显示功能
- 实现GFWList功能,可以使用Steam++作为代理访问YouTube,谷歌等被屏蔽的网站
[1.2.5] - 2025-12-26
新增
- 增加了对IPv6的支持配置项,默认关闭;
- 增加跟踪器状态显示(匹配tracker/trackers.json数据库);
- 全局UX改进,包括但不限于:
- 增加了页面滚动时,菜单栏和顶部标题栏保持固定的功能;
- 优化了页面适应窗口大小的改变,确保在所有设备上都能正确显示;
- 增加点击解析记录后弹窗日志详情的UI/UX,使用现代化设计和动画效果;
- 增加了查询日志详情界面的滚动条,方便查看长日志。
改进
- 新增API接口,用于查询解析日志详情;
- 支持EDNS,在web界面查询日志详情的请求列表区域增加了EDNS标记显示。
修复
- 修复DNS服务器地址缺少端口号导致的Server Failed问题;
- 修复查询日志详情接口返回的日志格式错误问题,现在返回的日志包含完整的解析记录和解析时间;
- 修复查询日志详情接口返回的日志中,解析记录中缺少IP地址、类型、DNSSEC验证状态等信息的问题;
- web界面系统设置加载后不获取数据和保存配置不生效的问题;
- 修复了DNS查询超时设置过短导致的"Server failed"错误。
更新
- 更新Swagger API文档。
[1.2.4] - 2025-12-25
改进
- 修复DNS解析记录显示,现在显示完整格式:"A: 104.26.24.30 (ttl=193)" 而不仅仅是IP地址
- 移除了查询日志列表中的"屏蔽规则"列,但在详情弹窗中仍保留
- 在弹窗日志详情中,只有被屏蔽或者有自定义规则时才显示规则信息
- 改进了日志详情弹窗的UI/UX,使用现代化设计和动画效果
- 移除了右上角的服务器状态卡片(CPU、查询统计等)
- 实现了页面滚动时,菜单栏和顶部标题栏保持固定
- 优化了页面适应窗口大小的改变,确保在所有设备上都能正确显示
修复
- 修复了移动端侧边栏在打开时遮挡页面内容的问题
- 修复了侧边栏布局,分离了桌面端和移动端侧边栏,使用CSS媒体查询控制显示
[1.2.3] - 2025-12-25
修复
- 修复DNS服务器地址缺少端口号导致的Server Failed问题
- 添加normalizeDNSServerAddress函数,确保DNS服务器地址始终包含端口号,默认添加53端口
- 修改所有resolver.Exchange()调用,确保传递的服务器地址包含端口号
- 优化DNSSEC服务器合并逻辑,确保DNSSEC服务器地址也包含端口号
[1.2.2] - 2025-12-25
新增
- 增加查询日志详情界面点击域名列表,显示解析日志的详细信息。
- 增加DNSSEC上游服务器的配置项。
修复
- web界面系统设置加载后不获取数据和保存配置不生效的问题。
[1.2.1] - 2025-12-25
改进
- 增加IPv6支持配置项,默认关闭
修复
- 修复了DNS查询超时设置过短导致的"Server failed"错误
- 将默认DNS请求超时时间从5毫秒调整为1000毫秒
[1.2.0] - 2025-12-24
添加
- 在查询日志详情的域名左侧添加DNSSEC状态锁图标和跟踪器状态图标
- 实现跟踪器状态显示(匹配tracker/trackers.json数据库)
- 添加跟踪器详情浮窗(鼠标悬停在眼睛图标上时显示跟踪器名称、类别、URL、来源等信息)
- 实现日志页面页码跳转功能(输入框+"前往"按钮)
- 实现日志页面显示数量选择功能(下拉框)
修改
- 异步加载跟踪器数据库并缓存,优化性能
- 将日志渲染逻辑改为支持异步操作的for...of循环
- 修复跟踪器浮窗CSS样式语法错误
- 在后端添加/tracker目录静态文件服务路由
[1.1.4] - 2025-12-21
修复
- 修复规则优先级问题:确保自定义规则优先于远程规则
- 修复添加自定义规则后需要重启服务器的问题:通过在添加或删除规则后清空DNS缓存实现
[1.1.3] - 2025-12-19
移除
- 移除search domain功能,不再支持自动添加域名前缀进行查询
- 移除DNSConfig结构体中的PrefixDomain字段
- 移除配置文件中的prefixDomain配置项
[1.1.2] - 2025-12-19
添加
- 添加不验证DNSSEC的域名功能,支持通过配置文件指定需要跳过DNSSEC验证的域名模式
- 在DNSConfig结构体中增加NoDNSSECDomains字段,用于存储不验证DNSSEC的域名模式列表
修改
- 在forwardDNSRequestWithCache函数中添加域名匹配逻辑,检查域名是否包含不验证DNSSEC的模式
- 在所有查询模式(parallel、fastest-ip、default)中实现跳过DNSSEC验证的功能
[1.1.1] - 2025-12-19
修改
- 修复NXDOMAIN响应传播逻辑,确保上游DNS服务器返回的NXDOMAIN响应能正确传递给客户端
- 优化fastest-ip和parallel查询模式下的NXDOMAIN响应选择机制
- 确保不存在的域名能被正确识别并返回NXDOMAIN状态码
- 修复服务器绑定地址配置,确保IPv4兼容性
[1.0.0] - 2025-12-16
添加
- 在web界面查询日志详情的请求列表区域增加了EDNS标记显示
- 后端QueryLog结构体扩展,新增EDNS字段以记录查询是否使用EDNS
- 前端日志渲染逻辑支持EDNS标记的显示
修改
- 更新了
addQueryLog函数签名,增加edns参数 - 调整了所有
addQueryLog调用,确保传递正确的EDNS值 - 优化了日志表格的状态显示格式,使EDNS标记与DNSSEC、缓存状态等标记一致显示
格式说明
本CHANGELOG遵循Keep a Changelog格式。
版本号遵循语义化版本规范。