# fastdns **Repository Path**: catroll/fastdns ## Basic Information - **Project Name**: fastdns - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-27 - **Last Updated**: 2025-05-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FastDNS FastDNS 是一个使用 Golang 开发的高性能 DNS 解析服务。 ## 项目目标 - 提供快速、可靠的 DNS 解析服务 - 通过 YAML 文件进行配置管理 - 使用 slog 进行结构化日志记录 - 提供 RESTful API 接口用于服务管理和监控 - 支持配置多个上游 DNS 服务器 - 通过本地文件和内存进行两层域名解析缓存 ## 设计概述 ### 核心组件 1. **配置管理**: - 使用 YAML 格式的配置文件 - 支持热重载配置 - 配置项包括上游 DNS 服务器列表、缓存策略、日志级别等 2. **DNS 解析引擎**: - 支持多种 DNS 记录类型 (A, AAAA, CNAME, MX, TXT 等) - 实现 DNS 查询缓存机制 - 支持并发查询多个上游 DNS 服务器 3. **日志系统**: - 基于 Go 1.21+ 的 slog 包 - 支持多种日志输出格式 (JSON, Text) - 可配置的日志级别和轮转策略 4. **RESTful API**: - 基于 net/http 包实现 - 提供服务状态查询接口 - 支持动态添加/删除上游 DNS 服务器 - 提供缓存管理接口 - 支持健康检查 ### 技术栈 - Go 1.21+ - 标准库 net/http 用于 API 服务 - 标准库 slog 用于日志记录 - 标准库 net 用于 DNS 协议实现 - 第三方库 gopkg.in/yaml.v3 用于配置解析 ## 使用方法 ### 安装 ```bash git clone https://github.com/catroll/fastdns.git cd fastdns go build -o fastdns cmd/fastdns/main.go ``` ### 运行 ```bash ./fastdns -config config.yaml ``` ## 贡献 欢迎提交 Pull Request 和 Issue。 ## 许可证 MIT