更新版本到2.0

This commit is contained in:
Alex Yang
2026-01-25 16:13:52 +08:00
parent ecbc20d89f
commit a5dc5841fb
54 changed files with 76520 additions and 2914 deletions

View File

@@ -1,6 +1,47 @@
# 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的支持配置项默认关闭
@@ -21,9 +62,6 @@
- 修复了DNS查询超时设置过短导致的"Server failed"错误。
### 更新
- 更新Swagger API文档。
### 下一版本改进
- 增加了对DNSSEC的支持配置项默认关闭
## [1.2.4] - 2025-12-25
### 改进
@@ -99,13 +137,13 @@
### 修改
- 在forwardDNSRequestWithCache函数中添加域名匹配逻辑检查域名是否包含不验证DNSSEC的模式
- 在所有查询模式parallel、loadbalance、fastest-ip、default中实现跳过DNSSEC验证的功能
- 在所有查询模式parallel、fastest-ip、default中实现跳过DNSSEC验证的功能
## [1.1.1] - 2025-12-19
### 修改
- 修复NXDOMAIN响应传播逻辑确保上游DNS服务器返回的NXDOMAIN响应能正确传递给客户端
- 优化loadbalance、fastest-ip和parallel查询模式下的NXDOMAIN响应选择机制
- 优化fastest-ip和parallel查询模式下的NXDOMAIN响应选择机制
- 确保不存在的域名能被正确识别并返回NXDOMAIN状态码
- 修复服务器绑定地址配置确保IPv4兼容性