更新
This commit is contained in:
@@ -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()
|
||||
|
||||
// 检查配置文件是否存在,如果不存在则创建默认配置文件
|
||||
|
||||
Reference in New Issue
Block a user