2025-11-27 19:58:16 +08:00
2025-11-27 15:51:55 +08:00
2025-11-24 22:39:23 +08:00
2025-11-27 18:31:32 +08:00
2025-11-27 19:13:09 +08:00
2025-11-23 18:21:29 +08:00
2025-11-25 16:51:27 +08:00
2025-11-26 01:11:37 +08:00
2025-11-26 01:11:37 +08:00
2025-11-27 19:13:09 +08:00
2025-11-25 16:51:27 +08:00
2025-11-23 20:29:59 +08:00
2025-11-23 23:50:04 +08:00
2025-11-23 19:07:59 +08:00

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查询结果的各种网络环境。
Description
No description provided
Readme 159 MiB
Languages
JavaScript 61%
Go 21.7%
HTML 11.8%
CSS 5.3%
Shell 0.2%