解决请求DNS解析的客户端数据未持久化的问题
This commit is contained in:
7
data/hosts.txt
Normal file
7
data/hosts.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
# DNS Server Hosts File
|
||||
# Generated by DNS Server
|
||||
|
||||
127.0.0.1 localhost
|
||||
::1 localhost
|
||||
|
||||
127.0.0.1 example.com
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
3
data/rules.txt
Normal file
3
data/rules.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
/example.com/
|
||||
/adjust.com/
|
||||
/adjust.c/
|
||||
5
data/shield_stats.json
Normal file
5
data/shield_stats.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"blockedDomainsCount": {},
|
||||
"resolvedDomainsCount": {},
|
||||
"lastSaved": "2025-11-28T18:01:32.204427496+08:00"
|
||||
}
|
||||
3282
data/stats.json
Normal file
3282
data/stats.json
Normal file
File diff suppressed because it is too large
Load Diff
BIN
dns-server
Executable file
BIN
dns-server
Executable file
Binary file not shown.
@@ -169,6 +169,9 @@ func (s *Server) Start() error {
|
||||
// 启动CPU使用率监控
|
||||
go s.startCpuUsageMonitor()
|
||||
|
||||
// 启动自动保存功能
|
||||
go s.startAutoSave()
|
||||
|
||||
// 启动UDP服务
|
||||
go func() {
|
||||
logger.Info(fmt.Sprintf("DNS UDP服务器启动,监听端口: %d", s.config.Port))
|
||||
@@ -764,6 +767,13 @@ func (s *Server) loadStatsData() {
|
||||
}
|
||||
s.monthlyStatsMutex.Unlock()
|
||||
|
||||
// 加载客户端统计数据
|
||||
s.clientStatsMutex.Lock()
|
||||
if statsData.ClientStats != nil {
|
||||
s.clientStats = statsData.ClientStats
|
||||
}
|
||||
s.clientStatsMutex.Unlock()
|
||||
|
||||
logger.Info("统计数据加载成功")
|
||||
}
|
||||
|
||||
@@ -823,6 +833,14 @@ func (s *Server) saveStatsData() {
|
||||
}
|
||||
s.monthlyStatsMutex.RUnlock()
|
||||
|
||||
// 复制客户端统计数据
|
||||
s.clientStatsMutex.RLock()
|
||||
statsData.ClientStats = make(map[string]*ClientStats)
|
||||
for k, v := range s.clientStats {
|
||||
statsData.ClientStats[k] = v
|
||||
}
|
||||
s.clientStatsMutex.RUnlock()
|
||||
|
||||
// 序列化数据
|
||||
jsonData, err := json.MarshalIndent(statsData, "", " ")
|
||||
if err != nil {
|
||||
|
||||
@@ -118643,3 +118643,74 @@ time="2025-11-28T17:57:08+08:00" level=error msg="发送WebSocket消息失败: w
|
||||
time="2025-11-28T17:57:26+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:46049" domain=api-access.pangolin-sdk-toutiao.com type=A
|
||||
time="2025-11-28T17:57:26+08:00" level=debug msg="DNS查询成功" domain=api-access.pangolin-sdk-toutiao.com rtt=3.970532ms server="223.5.5.5:53"
|
||||
time="2025-11-28T17:57:41+08:00" level=info msg="Shield计数数据保存成功" blocked_entries=0 file=/root/dns/data/shield_stats.json resolved_entries=0
|
||||
time="2025-11-28T17:58:41+08:00" level=info msg="Shield计数数据保存成功" blocked_entries=0 file=/root/dns/data/shield_stats.json resolved_entries=0
|
||||
time="2025-11-28T17:59:41+08:00" level=info msg="Shield计数数据保存成功" blocked_entries=0 file=/root/dns/data/shield_stats.json resolved_entries=0
|
||||
time="2025-11-28T18:00:36+08:00" level=info msg="统计数据保存成功"
|
||||
time="2025-11-28T18:00:36+08:00" level=info msg="DNS服务器已停止"
|
||||
time="2025-11-28T18:00:36+08:00" level=error msg="HTTP控制台服务器启动失败" error="http: Server closed"
|
||||
time="2025-11-28T18:00:36+08:00" level=info msg="HTTP控制台服务器已停止"
|
||||
time="2025-11-28T18:00:36+08:00" level=info msg="Shield计数数据保存成功" blocked_entries=0 file=/root/dns/data/shield_stats.json resolved_entries=0
|
||||
time="2025-11-28T18:00:36+08:00" level=info msg="规则自动更新已停止"
|
||||
time="2025-11-28T18:00:36+08:00" level=warning msg="日志系统已关闭"
|
||||
time="2025-11-28T18:01:10+08:00" level=debug msg="尝试加载Shield统计数据" file=/root/dns/data/shield_stats.json
|
||||
time="2025-11-28T18:01:10+08:00" level=info msg="Shield计数数据加载成功" blocked_entries=0 resolved_entries=0
|
||||
time="2025-11-28T18:01:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||
time="2025-11-28T18:01:11+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||
time="2025-11-28T18:01:11+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt"
|
||||
time="2025-11-28T18:01:12+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||
time="2025-11-28T18:01:12+08:00" level=error msg="获取远程规则失败" error="远程服务器返回错误状态码: 404" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/china.txt"
|
||||
time="2025-11-28T18:01:12+08:00" level=info msg="规则加载完成,域名规则: 177714, 排除规则: 1187, 正则规则: 947, hosts规则: 2"
|
||||
time="2025-11-28T18:01:12+08:00" level=info msg="统计数据加载成功"
|
||||
time="2025-11-28T18:01:12+08:00" level=info msg="DNS服务器已启动,监听端口: 53"
|
||||
time="2025-11-28T18:01:12+08:00" level=info msg="HTTP控制台已启动,监听端口: 8080"
|
||||
time="2025-11-28T18:01:12+08:00" level=info msg="DNS TCP服务器启动,监听端口: 53"
|
||||
time="2025-11-28T18:01:12+08:00" level=info msg="规则自动更新已启动" interval=3600
|
||||
time="2025-11-28T18:01:12+08:00" level=info msg="启动统计数据自动保存功能" file=data/stats.json interval=300
|
||||
time="2025-11-28T18:01:12+08:00" level=info msg="启动Shield计数数据自动保存功能" file=./data/shield_stats.json interval=60
|
||||
time="2025-11-28T18:01:12+08:00" level=info msg="DNS UDP服务器启动,监听端口: 53"
|
||||
time="2025-11-28T18:01:12+08:00" level=info msg="HTTP控制台服务器启动,监听地址: 0.0.0.0:8080"
|
||||
time="2025-11-28T18:01:12+08:00" level=info msg="Shield计数数据保存成功" blocked_entries=0 file=/root/dns/data/shield_stats.json resolved_entries=0
|
||||
time="2025-11-28T18:01:14+08:00" level=info msg="新WebSocket客户端连接,当前连接数: 1"
|
||||
time="2025-11-28T18:01:17+08:00" level=info msg="新WebSocket客户端连接,当前连接数: 2"
|
||||
time="2025-11-28T18:01:21+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:59812" domain=baidu.com.amazehome.xyz type=A
|
||||
time="2025-11-28T18:01:21+08:00" level=debug msg="DNS查询成功" domain=baidu.com.amazehome.xyz rtt=22.252353ms server="223.5.5.5:53"
|
||||
time="2025-11-28T18:01:21+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:59813" domain=baidu.com.amazehome.xyz type=AAAA
|
||||
time="2025-11-28T18:01:21+08:00" level=debug msg="DNS查询成功" domain=baidu.com.amazehome.xyz rtt=22.886581ms server="223.5.5.5:53"
|
||||
time="2025-11-28T18:01:21+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:59814" domain=baidu.com type=A
|
||||
time="2025-11-28T18:01:21+08:00" level=debug msg="DNS查询成功" domain=baidu.com rtt=6.296429ms server="223.5.5.5:53"
|
||||
time="2025-11-28T18:01:21+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:59815" domain=baidu.com type=AAAA
|
||||
time="2025-11-28T18:01:21+08:00" level=debug msg="DNS查询成功" domain=baidu.com rtt=5.476696ms server="223.5.5.5:53"
|
||||
time="2025-11-28T18:01:23+08:00" level=info msg="统计数据保存成功"
|
||||
time="2025-11-28T18:01:23+08:00" level=info msg="DNS服务器已停止"
|
||||
time="2025-11-28T18:01:23+08:00" level=error msg="HTTP控制台服务器启动失败" error="http: Server closed"
|
||||
time="2025-11-28T18:01:23+08:00" level=info msg="HTTP控制台服务器已停止"
|
||||
time="2025-11-28T18:01:23+08:00" level=info msg="Shield计数数据保存成功" blocked_entries=0 file=/root/dns/data/shield_stats.json resolved_entries=0
|
||||
time="2025-11-28T18:01:23+08:00" level=info msg="规则自动更新已停止"
|
||||
time="2025-11-28T18:01:23+08:00" level=warning msg="日志系统已关闭"
|
||||
time="2025-11-28T18:01:30+08:00" level=debug msg="尝试加载Shield统计数据" file=/root/dns/data/shield_stats.json
|
||||
time="2025-11-28T18:01:30+08:00" level=info msg="Shield计数数据加载成功" blocked_entries=0 resolved_entries=0
|
||||
time="2025-11-28T18:01:30+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||
time="2025-11-28T18:01:30+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||
time="2025-11-28T18:01:31+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt"
|
||||
time="2025-11-28T18:01:32+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||
time="2025-11-28T18:01:32+08:00" level=error msg="获取远程规则失败" error="远程服务器返回错误状态码: 404" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/china.txt"
|
||||
time="2025-11-28T18:01:32+08:00" level=info msg="规则加载完成,域名规则: 177714, 排除规则: 1187, 正则规则: 947, hosts规则: 2"
|
||||
time="2025-11-28T18:01:32+08:00" level=info msg="统计数据加载成功"
|
||||
time="2025-11-28T18:01:32+08:00" level=info msg="DNS服务器已启动,监听端口: 53"
|
||||
time="2025-11-28T18:01:32+08:00" level=info msg="HTTP控制台已启动,监听端口: 8080"
|
||||
time="2025-11-28T18:01:32+08:00" level=info msg="DNS TCP服务器启动,监听端口: 53"
|
||||
time="2025-11-28T18:01:32+08:00" level=info msg="启动统计数据自动保存功能" file=data/stats.json interval=300
|
||||
time="2025-11-28T18:01:32+08:00" level=info msg="规则自动更新已启动" interval=3600
|
||||
time="2025-11-28T18:01:32+08:00" level=info msg="HTTP控制台服务器启动,监听地址: 0.0.0.0:8080"
|
||||
time="2025-11-28T18:01:32+08:00" level=info msg="DNS UDP服务器启动,监听端口: 53"
|
||||
time="2025-11-28T18:01:32+08:00" level=info msg="启动Shield计数数据自动保存功能" file=./data/shield_stats.json interval=60
|
||||
time="2025-11-28T18:01:32+08:00" level=info msg="Shield计数数据保存成功" blocked_entries=0 file=/root/dns/data/shield_stats.json resolved_entries=0
|
||||
time="2025-11-28T18:01:33+08:00" level=info msg="新WebSocket客户端连接,当前连接数: 1"
|
||||
time="2025-11-28T18:01:40+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:56516" domain=baidu.com.amazehome.xyz type=A
|
||||
time="2025-11-28T18:01:40+08:00" level=debug msg="DNS查询成功" domain=baidu.com.amazehome.xyz rtt=6.712561ms server="223.5.5.5:53"
|
||||
time="2025-11-28T18:01:40+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:56517" domain=baidu.com.amazehome.xyz type=AAAA
|
||||
time="2025-11-28T18:01:40+08:00" level=debug msg="DNS查询成功" domain=baidu.com.amazehome.xyz rtt=14.68182ms server="223.6.6.6:53"
|
||||
time="2025-11-28T18:01:40+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:56518" domain=baidu.com type=A
|
||||
time="2025-11-28T18:01:40+08:00" level=debug msg="DNS查询成功" domain=baidu.com rtt=6.011629ms server="223.5.5.5:53"
|
||||
time="2025-11-28T18:01:40+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:56519" domain=baidu.com type=AAAA
|
||||
time="2025-11-28T18:01:40+08:00" level=debug msg="DNS查询成功" domain=baidu.com rtt=4.845428ms server="223.5.5.5:53"
|
||||
|
||||
BIN
output/dns-server
Executable file
BIN
output/dns-server
Executable file
Binary file not shown.
Reference in New Issue
Block a user