From 30795ae7677c3ceffb5ac13f05aef430643f30a7 Mon Sep 17 00:00:00 2001 From: Alex Yang Date: Sun, 23 Nov 2025 20:29:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0Readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 Readme.md diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..73b8109 --- /dev/null +++ b/Readme.md @@ -0,0 +1,81 @@ +# DNS服务器项目介绍 +## 项目概述 +这是一个基于Go语言开发的高性能DNS服务器,具备域名屏蔽、Hosts管理、统计分析和远程规则管理等功能。服务器支持通过Web界面进行管理配置,同时能够自动更新和缓存远程规则列表。 + +## 技术架构 +### 核心组件 +1. DNS服务模块 ( `server.go` ) + - 基于 github.com/miekg/dns 库实现高性能DNS查询处理 + - 支持配置上游DNS服务器进行递归查询 + - 实现域名屏蔽、统计数据收集等核心功能 + +2. 屏蔽管理系统 ( `manager.go` ) + - 管理本地和远程屏蔽规则 + - 支持规则缓存、自动更新和统计 + - 实现域名和正则表达式规则的解析和匹配 + +3. HTTP控制台 ( `server.go` ) + - 提供Web管理界面 + - 实现REST API用于配置管理和数据查询 + +4. 配置管理 ( `config.go` ) + - 定义配置结构和加载功能 + - 支持JSON格式配置文件 + +## 主要功能特性 +### 1. 域名屏蔽系统 +- 支持本地规则文件和远程规则URL +- 多种屏蔽方式:NXDOMAIN、refused、emptyIP、customIP +- 支持域名精确匹配和正则表达式匹配 +- 远程规则自动缓存和更新机制 +### 2. Hosts管理 +- 支持自定义Hosts映射 +- 提供Web界面管理Hosts条目 +- 自动保存Hosts配置 +### 3. 统计分析功能 +- 记录屏蔽域名统计信息 +- 记录解析域名统计信息 +- 提供按小时统计的屏蔽数据 +- 支持查询最常屏蔽和解析的域名 +### 4. 远程规则管理 +- 支持添加多个远程规则URL +- 自动定期更新远程规则 +- 本地缓存机制确保规则可用性 +- Web界面可视化管理 +### 5. 管理界面 +- 提供直观的Web控制台 +- 支持查看服务器状态和统计信息 +- 规则管理和配置修改 +- DNS查询测试工具 +## 项目结构 +``` +/root/dns/ +├── config/          # 配置管理 +├── data/            # 数据目录(包含缓存和统计) +│   └── remote_rules/ # 远程规则缓存 +├── dns/             # DNS服务器核心 +├── http/            # HTTP控制台 +├── logger/          # 日志系统 +├── shield/          # 屏蔽规则管理 +├── static/          # 静态Web文件 +├── main.go          # 程序入口 +└── config.json      # 配置文件 +``` +## 配置项说明 +主要配置文件 `config.json` 包含以下部分: + +- DNS配置 :端口、上游DNS服务器、超时设置等 +- HTTP配置 :控制台端口、主机绑定等 +- 屏蔽配置 :规则文件路径、远程规则URL、更新间隔等 +- 日志配置 :日志文件路径、级别设置等 +## 使用场景 +1. 网络内容过滤(广告、恶意网站屏蔽) +2. 本地DNS缓存加速 +3. 企业/家庭网络DNS管理 +4. 开发测试环境DNS重定向 +## 技术栈 +- 语言 :Go +- DNS库 :github.com/miekg/dns +- 日志库 :github.com/sirupsen/logrus +- Web前端 :HTML/CSS/JavaScript +该DNS服务器具有高性能、功能全面、易于配置等特点,适用于需要精确控制DNS查询结果的各种网络环境。 \ No newline at end of file