Repository navigation
Releases: lhstack/fluxdns
Release list
v1.1.7
v1.1.6
feat: DNS 代理连接与稳定性优化 / optimizations for DNS proxy connection & stability
- 实现 Endpoint 池 (20 socket) / Implement Endpoint Pool (20 sockets) for UDP load balancing
- 为 DoQ/DoH3 实现连接池 (10 连接) / Implement Connection Pool (10 conns) for DoQ/DoH3
- 启用 QUIC 保活 (5s) 与空闲超时 / Enable QUIC Keep-Alive (5s) and Idle Timeout (20s)
- 修复 DoH3 500 错误 (补充 User-Agent) / Fix DoH3 500 errors by adding User-Agent headers
- 添加全局失败计数器 / Add global failure counter
- 调整上游统计 EMA 因子 / Tune EMA alpha for upstream stats
v1.1.5
chore: 补充英文版 README 的 v1.1.5 更新日志 / Update README_EN.md changelog for v1.1.5
chore: 更新版本到 v1.1.5 并补充 README / Bump version to v1.1.5 and update README
fix: 修复证书无法清除及状态显示问题 / Fix certificate clearing issue and status display
fix: 修复监听器动态开启无效的问题 / Fix listener toggle not starting correctly
feat: 修复 DoH/DoQ/DoT 客户端 IP 捕获问题 / Fix client IP capture for DoH/DoQ/DoT protocols
feat: 重新设计仪表盘页面为功能介绍首页 / Redesign dashboard as feature introduction homepage
v1.1.4
feat: 处理查询日志和上游服务器内容溢出 / fix: handle content overflow in query logs and upstreams
feat: 上游服务器支持IPv6地址 / Add IPv6 support for upstream DNS servers
- 新增 parse_host_port() 函数支持 [IPv6]:port 格式解析 / Add parse_host_port() function for [IPv6]:port format parsing
- UDP客户端根据目标地址自动选择IPv4/IPv6绑定地址 / UDP client auto-selects bind address based on target (IPv4/IPv6)
- DoT客户端支持IPv6地址的TLS连接 / DoT client supports TLS connections to IPv6 addresses
- DoQ客户端支持IPv6地址解析和QUIC端点缓存 / DoQ client supports IPv6 address resolution and QUIC endpoint caching
- DoH3客户端支持IPv6 URL解析 / DoH3 client supports IPv6 URL parsing
feat: 优化 SSE 实时统计接口性能 / Optimize SSE real-time stats performance
引入内存缓存避免每秒进行昂贵的 COUNT() 查询,同时升级版本到 v1.1.4 并更新文档。 / Introduces memory cache to avoid expensive COUNT() queries every second, bumps version to v1.1.4 and updates docs.
v1.1.3
feat(listeners): 动态监听器管理与证书配置 / Dynamic listener management and certificate configuration
- 新增 ListenerManager 服务支持动态启停监听器 / Add ListenerManager service for dynamic listener control
- DoH 使用 tokio-rustls 实现 HTTPS 加密 / DoH now uses tokio-rustls for HTTPS encryption
- 添加证书信息查看 API 和前端 UI / Add certificate info API and frontend UI
- 证书编辑时回显已有内容 / Pre-fill existing cert content when editing
- TLS 协议缺少证书时拒绝启动 / Reject TLS listener startup without certificates
- DoH3 暂未实现 / DoH3 not yet implemented
chore(frontend): add vite-env.d.ts for TypeScript support
feat(monitor): Phase 2.1 实时监控仪表盘 / Real-time Dashboard with SSE and ECharts
- Backend: 新增 SSE 端点 /api/stats/stream 用于实时指标推送 (Added SSE endpoint for real-time metrics)
- Backend: 更新 auth_middleware 支持 SSE 的 query param token 验证 (Updated auth_middleware to support query param token for SSE)
- Backend: 为 QueryStats 派生 Default trait (Derived Default for QueryStats)
- Frontend: 集成 ECharts 并实现 Dashboard.vue (Integrated ECharts and implemented Dashboard.vue)
- Frontend: 添加连接状态显示和实时 QPS/延迟图表 (Added connection status and real-time charts)
feat: 实现快捷指令面板与 UI 优化 (Phase 1.4) / Implement Quick Command Panel and UI refinements
前端 / Frontend:
- 新增快捷指令面板 (欢迎界面) / Add Quick Command Panel (Welcome screen)
- 实现玻璃拟态风格 UI / Implement Glassmorphism UI style
- 优化指令卡片对齐与布局 / Optimize command card alignment and layout
- 调整聊天窗口宽度至 540px / Adjust chat window width to 540px
- 修复 Markdown 工具类 Lint 问题 / Fix Markdown utility lint issue
feat: 实现 Markdown 渲染支持 (Phase 1.3) / Implement Markdown rendering support
前端 / Frontend:
- 引入 markdown-it 和 highlight.js 依赖 / Add markdown-it and highlight.js dependencies
- 创建统一的 Markdown 渲染工具类 / Create unified Markdown rendering utility
- 在助手界面集成 Markdown 渲染与代码高亮 / Integrate Markdown rendering and code highlighting in assistant UI
- 添加代码块和 Markdown 样式 / Add code block and Markdown styles
v1.1.2
feat: 实现对话历史持久化 (Phase 1.2) / Implement conversation history persistence
后端 / Backend:
- 新增 llm_sessions 和 llm_messages 表 / Add llm_sessions and llm_messages tables
- 实现会话管理 API (CRUD) / Implement session management APIs
- 在 chat_stream 中添加消息持久化 / Add message persistence in chat_stream
- 修复 get_system_status 函数 / Fix get_system_status function
前端 / Frontend:
- 添加会话列表 UI 和历史管理 / Add session list UI and history management
- 实现会话自动保存和持久化 / Implement session auto-save and persistence
- 修复配置检查逻辑 / Fix configuration check logic
- 修复'清空会话'行为 / Fix 'clear session' behavior
feat: 实现 AI 助手流式响应 / Implement AI Assistant streaming response
后端 / Backend:
- 添加 SSE 流式响应类型 (ChatCompletionChunk, StreamEvent 等) / Add SSE streaming types
- 新增 /api/llm/chat/stream 端点 / Add streaming endpoint
- 支持流式模式下的多轮工具调用循环 / Support multi-round tool calls in streaming mode
- 工具执行后自动继续对话获取最终回复 / Auto-continue conversation after tool execution
- 添加 tokio-stream 和 reqwest stream 依赖 / Add streaming dependencies
前端 / Frontend:
- 使用 fetch + ReadableStream 接收 SSE 事件 / Use fetch with ReadableStream for SSE
- 实时逐字显示 AI 回复 / Real-time character-by-character display
- 处理 tool_call 和 tool_result 事件 / Handle tool_call and tool_result events
- 显示工具执行状态和结果 / Show tool execution status and results
v1.1.1
feat: AI UI 优化与 DeepSeek R1 兼容性修复 / AI UI improvements and DeepSeek R1 compatibility
前端 / Frontend:
- 优化 AI 助手浮窗 UI,统一紫蓝色主题 / Refine AI Assistant with purple/blue theme
- 修复聊天气泡内容溢出问题 / Fix content overflow in chat bubbles
- 重构 LlmSettings 页面为专业浅色风格 / Overhaul LlmSettings to light-mode style
- 改进服务商卡片布局对齐 / Improve provider card alignment
- 修复保存配置后焦点丢失问题 / Fix focus persistence after save
后端 / Backend:
- 添加 reasoning_content 字段支持 DeepSeek R1 / Add reasoning_content for DeepSeek R1
- 新问题开始时清除历史思维链 / Clear reasoning_content on new questions
- 修复思考模式下多轮工具调用 / Fix multi-turn tool calling with thinking mode
v1.1.0
feat(llm): 新增 AI 助手与 DNS 诊断功能 / Add AI Assistant with DNS diagnostics functions
新增 LLM 模块 / Add LLM Module:
- OpenAI 兼容客户端与函数注册表 / OpenAI-compatible client and function registry
- AI 助手浮动聊天窗口(玻璃态设计)/ Floating AI chat window with glassmorphism design
- LLM 配置页面(支持 OpenAI、阿里云、豆包、月之暗面)/ LLM settings page for multiple providers
DNS 诊断函数 / DNS Diagnostics Functions:
- trace_dns_resolution: 完整解析链路追踪(缓存、重写、本地、所有上游)/ Full resolution trace with all upstreams and IP addresses
- test_upstream_connectivity: 上游服务器连通性测试 / Upstream health check
- compare_upstream_responses: 多上游解析结果对比 / Compare responses from multiple upstreams
- list_upstream_servers: 列出所有上游服务器 / List all upstream servers
- query_single_upstream: 指定或随机上游解析 / Query specific or random upstream
前端 / Frontend:
- AiAssistant.vue: 浮动聊天窗口、拖拽支持、全屏模式 / Floating chat, drag support, fullscreen
- LlmSettings.vue: 服务商配置管理 / Provider configuration management
- 修复 AI 助手输入框垂直居中 / Fix vertical centering in input box
后端 / Backend:
- HTTP 客户端超时增加至 5 分钟 / Increase HTTP timeout to 5 minutes
- 新增 /api/llm/config 和 /api/llm/chat 端点 / Add LLM API endpoints
v1.0.9
feat(backend): 性能优化 - 连接复用与惊群效应防护
主要更改
缓存优化
- 替换 RwLock 为 DashMap,减少锁竞争
- 实现近似 LRU 淘汰策略
- 优化 CacheKey 使用 Arc
日志优化
- 默认日志级别调整为 warn
- 热路径日志降级为 debug
连接复用
- ProxyManager 缓存 DnsClient 实例
- DoQ: 复用 QUIC 连接,每次查询新建流
- DoQ: 双重检查锁定防止惊群效应
- DoH3: 每次新建连接(h3 库限制)
代码重构
- 拆分 main.rs 为 bootstrap.rs 和 state.rs
- 消除编译警告,添加 #[allow(dead_code)]
新增文件
- benchmark.py: 基准测试脚本
性能提升
- QPS: ~350 -> ~600 (约 1.7x)
- 延迟: >100ms -> ~80ms
- 成功率: 99.98%
v1.0.8
feat: 完善域名验证、上游服务器健康管理和前端UI优化
功能改进 / Feature Improvements:
-
域名验证增强 / Enhanced Domain Validation
- 添加严格的DNS域名验证规则,只允许ASCII字符
- 拒绝包含协议前缀(://)、中文、emoji等非标准字符的域名
- 支持Punycode编码的国际化域名(如 xn--4gq62f52gdss.com)
- 验证标签长度(1-63字符)和总长度(1-253字符)
- 添加完整的单元测试覆盖 -
上游服务器健康管理 / Upstream Server Health Management
- API返回成功率、暂停状态、剩余暂停时间等字段
- 添加手动重置健康状态接口 POST /api/upstreams/:id/reset-health
- 修复并发查询时失败统计未记录的问题
- 优化路由顺序,确保/status路由正确匹配 -
前端UI优化 / Frontend UI Improvements
- 上游服务器页面显示成功率(带颜色编码)和暂停状态
- 添加"恢复"按钮用于手动重置不健康的服务器
- 缓存管理页面配置卡片和命中分析卡片等高显示
文件变更 / Files Changed:
- backend/src/dns/resolver.rs: 域名验证逻辑和测试
- backend/src/dns/proxy/strategy.rs: 修复并发查询失败统计
- backend/src/web/upstreams.rs: 健康状态API和重置接口
- frontend/src/views/Upstreams.vue: 成功率显示和恢复按钮
- frontend/src/views/Cache.vue: 卡片等高布局