增加更多匹配的域名信息

This commit is contained in:
Alex Yang
2026-01-14 23:08:46 +08:00
parent f247eaeaa8
commit 8159577be0
60 changed files with 11716 additions and 1022 deletions

23
main.go
View File

@@ -22,6 +22,7 @@ import (
"dns-server/config"
"dns-server/dns"
"dns-server/gfw"
"dns-server/http"
"dns-server/logger"
"dns-server/shield"
@@ -82,6 +83,11 @@ func createDefaultConfig(configFile string) error {
"customBlockIP": "",
"statsSaveInterval": 60
},
"gfwList": {
"ip": "127.0.0.1",
"content": "./data/gfwlist.txt",
"enabled": true
},
"log": {
"level": "debug",
"maxSize": 100,
@@ -129,6 +135,13 @@ func createRequiredFiles(cfg *config.Config) error {
}
}
// 创建GFWList文件
if _, err := os.Stat("data/gfwlist.txt"); os.IsNotExist(err) {
if err := os.WriteFile("data/gfwlist.txt", []byte("# GFWList规则文件\n# 格式:每行一条规则\n# 例如www.google.com\n"), 0644); err != nil {
return fmt.Errorf("创建GFWList文件失败: %w", err)
}
}
// 创建统计数据文件
if _, err := os.Stat("data/stats.json"); os.IsNotExist(err) {
if err := os.WriteFile("data/stats.json", []byte("{}"), 0644); err != nil {
@@ -188,8 +201,14 @@ func main() {
logger.Error("加载屏蔽规则失败", "error", err)
}
// 初始化GFWList管理系统
gfwManager := gfw.NewGFWListManager(&cfg.GFWList)
if err := gfwManager.LoadRules(); err != nil {
logger.Error("加载GFWList规则失败", "error", err)
}
// 启动DNS服务器
dnsServer := dns.NewServer(&cfg.DNS, &cfg.Shield, shieldManager)
dnsServer := dns.NewServer(&cfg.DNS, &cfg.Shield, shieldManager, &cfg.GFWList, gfwManager)
go func() {
if err := dnsServer.Start(); err != nil {
logger.Error("DNS服务器启动失败", "error", err)
@@ -198,7 +217,7 @@ func main() {
}()
// 启动HTTP控制台服务器
httpServer := http.NewServer(cfg, dnsServer, shieldManager)
httpServer := http.NewServer(cfg, dnsServer, shieldManager, gfwManager)
go func() {
if err := httpServer.Start(); err != nil {
logger.Error("HTTP控制台服务器启动失败", "error", err)