This commit is contained in:
Alex Yang
2026-03-30 01:04:46 +08:00
parent 050aa421b1
commit f627244b8f
5978 changed files with 1502187 additions and 2947 deletions
+83 -9
View File
@@ -85,16 +85,90 @@ go build -o dns-server main.go
### 配置文件格式
配置文件使用JSON格式,位于`config.json`
配置文件使用INI格式,位于`config.ini`
```json
{
"ListenPort": 53,
"HTTPPort": 8080,
"StatsFile": "data/stats.json",
"SaveInterval": 300,
"MaxQueryLogs": 1000
}
```ini
# DNS服务器配置文件
# 格式:INI格式,使用#注释
[dns]
# DNS服务器监听端口
port = 53
# 上游DNS服务器列表,逗号分隔
upstreamDNS = 223.5.5.5:53, 223.6.6.6:53
# DNSSEC专用服务器列表,逗号分隔
dnssecUpstreamDNS = 8.8.8.8:53, 1.1.1.1:53
# 数据保存间隔(秒)
saveInterval = 300
# DNS缓存过期时间(分钟)
cacheTTL = 30
# 是否启用DNSSEC支持
enableDNSSEC = true
# 查询模式:parallel(并行请求)、fastest-ip(最快的IP地址)
queryMode = parallel
# 查询超时时间(毫秒)
queryTimeout = 5000
# 是否启用快速返回机制
enableFastReturn = true
# 不验证DNSSEC的域名模式列表,逗号分隔
noDNSSECDomains =
# 是否启用IPv6解析(AAAA记录)
enableIPv6 = false
# 缓存模式:memory(内存缓存)、file(文件缓存)
cacheMode = memory
# 缓存大小限制(MB
cacheSize = 100
# 最大缓存TTL(分钟)
maxCacheTTL = 120
# 最小缓存TTL(分钟)
minCacheTTL = 5
[http]
# HTTP控制台监听端口
port = 8080
# HTTP控制台监听地址
host = 0.0.0.0
# 是否启用API
enableAPI = true
# 登录用户名
username = admin
# 登录密码
password = admin
[shield]
# 屏蔽规则更新间隔(秒)
updateInterval = 3600
# 屏蔽方法: NXDOMAIN, refused, emptyIP, customIP
blockMethod = NXDOMAIN
# 自定义屏蔽IP,当BlockMethod为"customIP"时使用
customBlockIP =
# 计数数据保存间隔(秒)
statsSaveInterval = 60
# 黑名单配置
# 格式:blacklist_名称 = URL,enabled
blacklist_AdGuard_DNS_filter = https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt,true
blacklist_Adaway_Default_Blocklist = https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt,true
blacklist_CHN_anti_AD = https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt,true
blacklist_My_GitHub_Rules = https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt,true
[gfwList]
# GFWList域名解析的目标IP地址
ip = 127.0.0.1
# GFWList规则文件路径
content = ./data/gfwlist.txt
# 是否启用GFWList功能
enabled = true
[log]
# 日志级别:debug, info, warn, error
level = debug
# 日志文件最大大小(MB
maxSize = 100
# 日志文件最大备份数
maxBackups = 10
# 日志文件最大保留天数
maxAge = 30
```
## 使用方法