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 -65
View File
@@ -31,70 +31,88 @@ import (
// createDefaultConfig 创建默认配置文件
func createDefaultConfig(configFile string) error {
// 默认配置内容
defaultConfig := `{
"dns": {
"port": 53,
"upstreamDNS": [
"223.5.5.5:53",
"223.6.6.6:53"
],
"dnssecUpstreamDNS": [
"8.8.8.8:53",
"1.1.1.1:53"
],
"timeout": 5000,
"saveInterval": 300,
"cacheTTL": 30,
"enableDNSSEC": true,
"queryMode": "parallel"
},
"http": {
"port": 8080,
"host": "0.0.0.0",
"enableAPI": true,
"username": "admin",
"password": "admin"
},
"shield": {
"blacklists": [
{
"name": "AdGuard DNS filter",
"url": "https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt",
"enabled": true
},
{
"name": "Adaway Default Blocklist",
"url": "https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt",
"enabled": true
},
{
"name": "CHN-anti-AD",
"url": "https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt",
"enabled": true
},
{
"name": "My GitHub Rules",
"url": "https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt",
"enabled": true
}
],
"updateInterval": 3600,
"blockMethod": "NXDOMAIN",
"customBlockIP": "",
"statsSaveInterval": 60
},
"gfwList": {
"ip": "127.0.0.1",
"content": "./data/gfwlist.txt",
"enabled": true
},
"log": {
"level": "debug",
"maxSize": 100,
"maxBackups": 10,
"maxAge": 30
}
}`
defaultConfig := `# 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
`
// 写入默认配置到文件
return os.WriteFile(configFile, []byte(defaultConfig), 0644)
@@ -162,7 +180,7 @@ func createRequiredFiles(cfg *config.Config) error {
func main() {
// 命令行参数解析
var configFile string
flag.StringVar(&configFile, "config", "config.json", "配置文件路径")
flag.StringVar(&configFile, "config", "config.ini", "配置文件路径")
flag.Parse()
// 检查配置文件是否存在,如果不存在则创建默认配置文件