From 534878fa4ddb540220add0a9308f2379955251de Mon Sep 17 00:00:00 2001 From: Alex Yang Date: Mon, 24 Nov 2025 02:16:06 +0800 Subject: [PATCH] =?UTF-8?q?web=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/hosts.txt | 7 +- data/shield_stats.json | 2 +- data/stats.json | 2 +- dns-server.log | 222 +++++++++++++++++++++++++++++++++ static/js/modules/dashboard.js | 190 ++++++++++++++++++++++++---- 5 files changed, 394 insertions(+), 29 deletions(-) diff --git a/data/hosts.txt b/data/hosts.txt index 8f3aa93..9972ed0 100644 --- a/data/hosts.txt +++ b/data/hosts.txt @@ -1,8 +1,9 @@ # DNS Server Hosts File # Generated by DNS Server -127.0.0.1 h -::1 localhost ad.qq.com 127.0.0.1 ad.qq.com 0.0.0.0 -127.0.0.1 ex \ No newline at end of file +127.0.0.1 ex +127.0.0.1 1 +127.0.0.1 h +::1 localhost \ No newline at end of file diff --git a/data/shield_stats.json b/data/shield_stats.json index 9979e6c..e4df562 100644 --- a/data/shield_stats.json +++ b/data/shield_stats.json @@ -1,5 +1,5 @@ { "blockedDomainsCount": {}, "resolvedDomainsCount": {}, - "lastSaved": "2025-11-24T01:57:53.377325518+08:00" + "lastSaved": "2025-11-24T02:14:05.499978724+08:00" } \ No newline at end of file diff --git a/data/stats.json b/data/stats.json index f4737fe..ab1de58 100644 --- a/data/stats.json +++ b/data/stats.json @@ -452,5 +452,5 @@ "2025-11-24-00": 2, "2025-11-24-01": 7 }, - "lastSaved": "2025-11-24T01:55:44.685938959+08:00" + "lastSaved": "2025-11-24T02:13:03.935322616+08:00" } \ No newline at end of file diff --git a/dns-server.log b/dns-server.log index 8dfec57..a51201b 100644 --- a/dns-server.log +++ b/dns-server.log @@ -20067,3 +20067,225 @@ time="2025-11-24T01:57:53+08:00" level=error msg="获取远程规则失败" erro time="2025-11-24T01:57:53+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt" time="2025-11-24T01:57:53+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5" time="2025-11-24T01:57:53+08:00" level=info msg="自动更新规则成功" +time="2025-11-24T01:58:51+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:45208" domain=pull-hs-spe-f5.douyincdn.com type=1 +time="2025-11-24T01:58:51+08:00" level=debug msg="DNS查询成功" domain=pull-hs-spe-f5.douyincdn.com rtt=6.331228ms server="223.5.5.5:53" +time="2025-11-24T01:58:53+08:00" level=info msg="开始自动更新规则" +time="2025-11-24T01:58:53+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T01:58:53+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt" +time="2025-11-24T01:58:53+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt" +time="2025-11-24T01:58:53+08:00" level=error msg="获取远程规则失败" error="Get \"hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt\": unsupported protocol scheme \"hhttps\"" url="hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt" +time="2025-11-24T01:58:53+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt" +time="2025-11-24T01:58:53+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5" +time="2025-11-24T01:58:53+08:00" level=info msg="自动更新规则成功" +time="2025-11-24T01:59:00+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:15843" domain=push-rtmp-hs-f5.douyincdn.com type=1 +time="2025-11-24T01:59:00+08:00" level=debug msg="DNS查询成功" domain=push-rtmp-hs-f5.douyincdn.com rtt=4.007598ms server="223.5.5.5:53" +time="2025-11-24T01:59:03+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:5912" domain=push-rtmp-b5.douyincdn.com type=1 +time="2025-11-24T01:59:03+08:00" level=debug msg="DNS查询成功" domain=push-rtmp-b5.douyincdn.com rtt=4.078066ms server="223.5.5.5:53" +time="2025-11-24T01:59:07+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:13115" domain=pull-hls-f11.douyincdn.com type=1 +time="2025-11-24T01:59:07+08:00" level=debug msg="DNS查询成功" domain=pull-hls-f11.douyincdn.com rtt=6.106739ms server="223.5.5.5:53" +time="2025-11-24T01:59:53+08:00" level=info msg="开始自动更新规则" +time="2025-11-24T01:59:53+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T01:59:53+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt" +time="2025-11-24T01:59:53+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt" +time="2025-11-24T01:59:53+08:00" level=error msg="获取远程规则失败" error="Get \"hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt\": unsupported protocol scheme \"hhttps\"" url="hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt" +time="2025-11-24T01:59:53+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 5" +time="2025-11-24T01:59:53+08:00" level=info msg="自动更新规则成功" +time="2025-11-24T02:00:53+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T02:00:53+08:00" level=info msg="开始自动更新规则" +time="2025-11-24T02:00:53+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt" +time="2025-11-24T02:00:53+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt" +time="2025-11-24T02:00:53+08:00" level=error msg="获取远程规则失败" error="Get \"hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt\": unsupported protocol scheme \"hhttps\"" url="hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt" +time="2025-11-24T02:00:53+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt" +time="2025-11-24T02:00:53+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5" +time="2025-11-24T02:00:53+08:00" level=info msg="自动更新规则成功" +time="2025-11-24T02:01:34+08:00" level=info msg="Shield计数数据加载成功" +time="2025-11-24T02:01:34+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt" +time="2025-11-24T02:01:34+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt" +time="2025-11-24T02:01:35+08:00" level=error msg="获取远程规则失败" error="Get \"hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt\": unsupported protocol scheme \"hhttps\"" url="hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt" +time="2025-11-24T02:01:35+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt" +time="2025-11-24T02:01:35+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5" +time="2025-11-24T02:01:35+08:00" level=info msg="统计数据加载成功" +time="2025-11-24T02:01:35+08:00" level=info msg="DNS服务器已启动,监听端口: 53" +time="2025-11-24T02:01:35+08:00" level=info msg="HTTP控制台已启动,监听端口: 8080" +time="2025-11-24T02:01:35+08:00" level=info msg="HTTP控制台服务器启动,监听地址: 0.0.0.0:8080" +time="2025-11-24T02:01:35+08:00" level=info msg="DNS UDP服务器启动,监听端口: 53" +time="2025-11-24T02:01:35+08:00" level=info msg="启动Shield计数数据自动保存功能" file=./data/shield_stats.json interval=60 +time="2025-11-24T02:01:35+08:00" level=info msg="DNS TCP服务器启动,监听端口: 53" +time="2025-11-24T02:01:35+08:00" level=info msg="规则自动更新已启动" interval=60 +time="2025-11-24T02:01:35+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T02:02:27+08:00" level=info msg="正在关闭服务..." +time="2025-11-24T02:02:27+08:00" level=info msg="统计数据保存成功" +time="2025-11-24T02:02:27+08:00" level=info msg="DNS服务器已停止" +time="2025-11-24T02:02:27+08:00" level=error msg="HTTP控制台服务器启动失败" error="http: Server closed" +time="2025-11-24T02:02:27+08:00" level=info msg="HTTP控制台服务器已停止" +time="2025-11-24T02:02:27+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T02:02:27+08:00" level=info msg="规则自动更新已停止" +time="2025-11-24T02:02:27+08:00" level=info msg="所有服务已关闭" +time="2025-11-24T02:02:27+08:00" level=warning msg="日志系统已关闭" +time="2025-11-24T02:02:43+08:00" level=info msg="Shield计数数据加载成功" +time="2025-11-24T02:02:44+08:00" level=error msg="获取远程规则失败" error="Get \"hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt\": unsupported protocol scheme \"hhttps\"" url="hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt" +time="2025-11-24T02:02:44+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 452, hosts规则: 5" +time="2025-11-24T02:02:44+08:00" level=info msg="统计数据加载成功" +time="2025-11-24T02:02:44+08:00" level=info msg="DNS服务器已启动,监听端口: 53" +time="2025-11-24T02:02:44+08:00" level=info msg="HTTP控制台已启动,监听端口: 8080" +time="2025-11-24T02:02:44+08:00" level=info msg="DNS TCP服务器启动,监听端口: 53" +time="2025-11-24T02:02:44+08:00" level=info msg="DNS UDP服务器启动,监听端口: 53" +time="2025-11-24T02:02:44+08:00" level=info msg="启动Shield计数数据自动保存功能" file=./data/shield_stats.json interval=60 +time="2025-11-24T02:02:44+08:00" level=info msg="HTTP控制台服务器启动,监听地址: 0.0.0.0:8080" +time="2025-11-24T02:02:44+08:00" level=info msg="规则自动更新已启动" interval=60 +time="2025-11-24T02:02:44+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T02:03:44+08:00" level=info msg="开始自动更新规则" +time="2025-11-24T02:03:44+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T02:03:44+08:00" level=error msg="获取远程规则失败" error="Get \"hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt\": unsupported protocol scheme \"hhttps\"" url="hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt" +time="2025-11-24T02:03:44+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 452, hosts规则: 5" +time="2025-11-24T02:03:44+08:00" level=info msg="自动更新规则成功" +time="2025-11-24T02:04:44+08:00" level=info msg="开始自动更新规则" +time="2025-11-24T02:04:44+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T02:04:44+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt" +time="2025-11-24T02:04:44+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt" +time="2025-11-24T02:04:44+08:00" level=error msg="获取远程规则失败" error="Get \"hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt\": unsupported protocol scheme \"hhttps\"" url="hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt" +time="2025-11-24T02:04:44+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 6" +time="2025-11-24T02:04:44+08:00" level=info msg="自动更新规则成功" +time="2025-11-24T02:05:44+08:00" level=info msg="开始自动更新规则" +time="2025-11-24T02:05:44+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T02:05:44+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt" +time="2025-11-24T02:05:44+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt" +time="2025-11-24T02:05:44+08:00" level=error msg="获取远程规则失败" error="Get \"hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt\": unsupported protocol scheme \"hhttps\"" url="hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt" +time="2025-11-24T02:05:44+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt" +time="2025-11-24T02:05:44+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 6" +time="2025-11-24T02:05:44+08:00" level=info msg="自动更新规则成功" +time="2025-11-24T02:06:44+08:00" level=info msg="开始自动更新规则" +time="2025-11-24T02:06:44+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T02:06:44+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt" +time="2025-11-24T02:06:44+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt" +time="2025-11-24T02:06:44+08:00" level=error msg="获取远程规则失败" error="Get \"hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt\": unsupported protocol scheme \"hhttps\"" url="hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt" +time="2025-11-24T02:06:44+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt" +time="2025-11-24T02:06:44+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 6" +time="2025-11-24T02:06:44+08:00" level=info msg="自动更新规则成功" +time="2025-11-24T02:07:03+08:00" level=info msg="正在关闭服务..." +time="2025-11-24T02:07:03+08:00" level=info msg="统计数据保存成功" +time="2025-11-24T02:07:03+08:00" level=info msg="DNS服务器已停止" +time="2025-11-24T02:07:03+08:00" level=error msg="HTTP控制台服务器启动失败" error="http: Server closed" +time="2025-11-24T02:07:03+08:00" level=info msg="HTTP控制台服务器已停止" +time="2025-11-24T02:07:03+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T02:07:03+08:00" level=info msg="规则自动更新已停止" +time="2025-11-24T02:07:03+08:00" level=info msg="所有服务已关闭" +time="2025-11-24T02:07:03+08:00" level=warning msg="日志系统已关闭" +time="2025-11-24T02:07:04+08:00" level=error msg="解析Shield计数数据失败" error="unexpected end of JSON input" +time="2025-11-24T02:07:04+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt" +time="2025-11-24T02:07:04+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt" +time="2025-11-24T02:07:04+08:00" level=error msg="获取远程规则失败" error="Get \"hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt\": unsupported protocol scheme \"hhttps\"" url="hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt" +time="2025-11-24T02:07:04+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt" +time="2025-11-24T02:07:04+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 6" +time="2025-11-24T02:07:04+08:00" level=info msg="统计数据加载成功" +time="2025-11-24T02:07:04+08:00" level=info msg="DNS服务器已启动,监听端口: 53" +time="2025-11-24T02:07:04+08:00" level=info msg="HTTP控制台已启动,监听端口: 8080" +time="2025-11-24T02:07:04+08:00" level=info msg="DNS TCP服务器启动,监听端口: 53" +time="2025-11-24T02:07:04+08:00" level=info msg="DNS UDP服务器启动,监听端口: 53" +time="2025-11-24T02:07:04+08:00" level=info msg="HTTP控制台服务器启动,监听地址: 0.0.0.0:8080" +time="2025-11-24T02:07:04+08:00" level=info msg="规则自动更新已启动" interval=60 +time="2025-11-24T02:07:04+08:00" level=info msg="启动Shield计数数据自动保存功能" file=./data/shield_stats.json interval=60 +time="2025-11-24T02:07:04+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T02:08:04+08:00" level=info msg="开始自动更新规则" +time="2025-11-24T02:08:04+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T02:08:05+08:00" level=error msg="获取远程规则失败" error="Get \"hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt\": unsupported protocol scheme \"hhttps\"" url="hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt" +time="2025-11-24T02:08:05+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 452, hosts规则: 6" +time="2025-11-24T02:08:05+08:00" level=info msg="自动更新规则成功" +time="2025-11-24T02:09:04+08:00" level=info msg="开始自动更新规则" +time="2025-11-24T02:09:04+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T02:09:04+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt" +time="2025-11-24T02:09:04+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt" +time="2025-11-24T02:09:05+08:00" level=error msg="获取远程规则失败" error="Get \"hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt\": unsupported protocol scheme \"hhttps\"" url="hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt" +time="2025-11-24T02:09:05+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 6" +time="2025-11-24T02:09:05+08:00" level=info msg="自动更新规则成功" +time="2025-11-24T02:10:04+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T02:10:04+08:00" level=info msg="开始自动更新规则" +time="2025-11-24T02:10:04+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt" +time="2025-11-24T02:10:04+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt" +time="2025-11-24T02:10:05+08:00" level=error msg="获取远程规则失败" error="Get \"hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt\": unsupported protocol scheme \"hhttps\"" url="hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt" +time="2025-11-24T02:10:05+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt" +time="2025-11-24T02:10:05+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 6" +time="2025-11-24T02:10:05+08:00" level=info msg="自动更新规则成功" +time="2025-11-24T02:11:04+08:00" level=info msg="开始自动更新规则" +time="2025-11-24T02:11:04+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T02:11:04+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt" +time="2025-11-24T02:11:04+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt" +time="2025-11-24T02:11:05+08:00" level=error msg="获取远程规则失败" error="Get \"hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt\": unsupported protocol scheme \"hhttps\"" url="hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt" +time="2025-11-24T02:11:05+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 6" +time="2025-11-24T02:11:05+08:00" level=info msg="自动更新规则成功" +time="2025-11-24T02:11:45+08:00" level=info msg="正在关闭服务..." +time="2025-11-24T02:11:45+08:00" level=info msg="统计数据保存成功" +time="2025-11-24T02:11:45+08:00" level=info msg="DNS服务器已停止" +time="2025-11-24T02:11:45+08:00" level=error msg="HTTP控制台服务器启动失败" error="http: Server closed" +time="2025-11-24T02:11:45+08:00" level=info msg="HTTP控制台服务器已停止" +time="2025-11-24T02:11:45+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T02:11:45+08:00" level=info msg="规则自动更新已停止" +time="2025-11-24T02:11:45+08:00" level=info msg="所有服务已关闭" +time="2025-11-24T02:11:45+08:00" level=warning msg="日志系统已关闭" +time="2025-11-24T02:11:46+08:00" level=error msg="解析Shield计数数据失败" error="unexpected end of JSON input" +time="2025-11-24T02:11:46+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt" +time="2025-11-24T02:11:46+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt" +time="2025-11-24T02:11:46+08:00" level=error msg="获取远程规则失败" error="Get \"hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt\": unsupported protocol scheme \"hhttps\"" url="hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt" +time="2025-11-24T02:11:46+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt" +time="2025-11-24T02:11:46+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 6" +time="2025-11-24T02:11:46+08:00" level=info msg="统计数据加载成功" +time="2025-11-24T02:11:46+08:00" level=info msg="DNS服务器已启动,监听端口: 53" +time="2025-11-24T02:11:46+08:00" level=info msg="HTTP控制台已启动,监听端口: 8080" +time="2025-11-24T02:11:46+08:00" level=info msg="规则自动更新已启动" interval=60 +time="2025-11-24T02:11:46+08:00" level=info msg="HTTP控制台服务器启动,监听地址: 0.0.0.0:8080" +time="2025-11-24T02:11:46+08:00" level=info msg="启动Shield计数数据自动保存功能" file=./data/shield_stats.json interval=60 +time="2025-11-24T02:11:46+08:00" level=info msg="DNS TCP服务器启动,监听端口: 53" +time="2025-11-24T02:11:46+08:00" level=info msg="DNS UDP服务器启动,监听端口: 53" +time="2025-11-24T02:11:46+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T02:12:46+08:00" level=info msg="开始自动更新规则" +time="2025-11-24T02:12:46+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T02:12:47+08:00" level=error msg="获取远程规则失败" error="Get \"hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt\": unsupported protocol scheme \"hhttps\"" url="hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt" +time="2025-11-24T02:12:47+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 452, hosts规则: 6" +time="2025-11-24T02:12:47+08:00" level=info msg="自动更新规则成功" +time="2025-11-24T02:13:03+08:00" level=info msg="正在关闭服务..." +time="2025-11-24T02:13:03+08:00" level=info msg="统计数据保存成功" +time="2025-11-24T02:13:03+08:00" level=info msg="DNS服务器已停止" +time="2025-11-24T02:13:03+08:00" level=error msg="HTTP控制台服务器启动失败" error="http: Server closed" +time="2025-11-24T02:13:03+08:00" level=info msg="HTTP控制台服务器已停止" +time="2025-11-24T02:13:03+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T02:13:03+08:00" level=info msg="规则自动更新已停止" +time="2025-11-24T02:13:03+08:00" level=info msg="所有服务已关闭" +time="2025-11-24T02:13:03+08:00" level=warning msg="日志系统已关闭" +time="2025-11-24T02:13:04+08:00" level=error msg="解析Shield计数数据失败" error="unexpected end of JSON input" +time="2025-11-24T02:13:05+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt" +time="2025-11-24T02:13:05+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt" +time="2025-11-24T02:13:05+08:00" level=error msg="获取远程规则失败" error="Get \"hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt\": unsupported protocol scheme \"hhttps\"" url="hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt" +time="2025-11-24T02:13:05+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt" +time="2025-11-24T02:13:05+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 6" +time="2025-11-24T02:13:05+08:00" level=info msg="统计数据加载成功" +time="2025-11-24T02:13:05+08:00" level=info msg="DNS服务器已启动,监听端口: 53" +time="2025-11-24T02:13:05+08:00" level=info msg="HTTP控制台已启动,监听端口: 8080" +time="2025-11-24T02:13:05+08:00" level=info msg="规则自动更新已启动" interval=60 +time="2025-11-24T02:13:05+08:00" level=info msg="HTTP控制台服务器启动,监听地址: 0.0.0.0:8080" +time="2025-11-24T02:13:05+08:00" level=info msg="启动Shield计数数据自动保存功能" file=./data/shield_stats.json interval=60 +time="2025-11-24T02:13:05+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T02:13:05+08:00" level=info msg="DNS TCP服务器启动,监听端口: 53" +time="2025-11-24T02:13:05+08:00" level=info msg="DNS UDP服务器启动,监听端口: 53" +time="2025-11-24T02:13:26+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:28866" domain=pull-hs-f5-io.flive.douyincdn.com type=1 +time="2025-11-24T02:13:26+08:00" level=debug msg="DNS查询成功" domain=pull-hs-f5-io.flive.douyincdn.com rtt=5.272895ms server="223.5.5.5:53" +time="2025-11-24T02:13:34+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:23893" domain=pull-flv-l95.douyincdn.com type=1 +time="2025-11-24T02:13:34+08:00" level=debug msg="DNS查询成功" domain=pull-flv-l95.douyincdn.com rtt=5.715733ms server="223.5.5.5:53" +time="2025-11-24T02:13:37+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:36477" domain=pull-rtmp-t95.douyincdn.com type=1 +time="2025-11-24T02:13:37+08:00" level=debug msg="DNS查询成功" domain=pull-rtmp-t95.douyincdn.com rtt=5.985106ms server="223.5.5.5:53" +time="2025-11-24T02:13:56+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:31276" domain=pull-tsl-q5.douyincdn.com type=1 +time="2025-11-24T02:13:56+08:00" level=debug msg="DNS查询成功" domain=pull-tsl-q5.douyincdn.com rtt=8.018021ms server="223.5.5.5:53" +time="2025-11-24T02:13:59+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:29763" domain=pull-rtmp-l13.douyincdn.com type=1 +time="2025-11-24T02:13:59+08:00" level=debug msg="DNS查询成功" domain=pull-rtmp-l13.douyincdn.com rtt=5.211806ms server="223.5.5.5:53" +time="2025-11-24T02:14:02+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:11050" domain=pull-t5.douyincdn.com type=1 +time="2025-11-24T02:14:02+08:00" level=debug msg="DNS查询成功" domain=pull-t5.douyincdn.com rtt=5.511418ms server="223.5.5.5:53" +time="2025-11-24T02:14:05+08:00" level=info msg="开始自动更新规则" +time="2025-11-24T02:14:05+08:00" level=info msg="Shield计数数据保存成功" +time="2025-11-24T02:14:05+08:00" level=error msg="获取远程规则失败" error="Get \"hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt\": unsupported protocol scheme \"hhttps\"" url="hhttps://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/list/easylist.txt" +time="2025-11-24T02:14:05+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 452, hosts规则: 6" +time="2025-11-24T02:14:05+08:00" level=info msg="自动更新规则成功" +time="2025-11-24T02:14:06+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:5846" domain=pull-spe-l3.douyincdn.com type=1 +time="2025-11-24T02:14:06+08:00" level=debug msg="DNS查询成功" domain=pull-spe-l3.douyincdn.com rtt=5.978607ms server="223.5.5.5:53" +time="2025-11-24T02:14:09+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:5464" domain=push-rtmp-hs-f5-vs.douyincdn.com type=1 +time="2025-11-24T02:14:09+08:00" level=debug msg="DNS查询成功" domain=push-rtmp-hs-f5-vs.douyincdn.com rtt=5.251466ms server="223.5.5.5:53" +time="2025-11-24T02:14:15+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:17982" domain=pull-t3.douyincdn.com type=1 +time="2025-11-24T02:14:15+08:00" level=debug msg="DNS查询成功" domain=pull-t3.douyincdn.com rtt=6.354818ms server="223.5.5.5:53" diff --git a/static/js/modules/dashboard.js b/static/js/modules/dashboard.js index 0788714..e316962 100644 --- a/static/js/modules/dashboard.js +++ b/static/js/modules/dashboard.js @@ -23,13 +23,59 @@ function loadDashboardData() { function loadHourlyStats() { apiRequest('/api/hourly-stats') .then(data => { - if (data && data.labels && data.data) { - // 只使用一组数据(假设是屏蔽请求数) - renderHourlyChart(data.labels, data.data, []); + // 处理不同可能的数据格式 + if (data) { + // 优先处理用户提供的实际数据格式 {data: [], labels: []} + if (data.labels && data.data && Array.isArray(data.labels) && Array.isArray(data.data)) { + // 确保labels和data数组长度一致 + if (data.labels.length === data.data.length) { + // 假设data数组包含的是屏蔽请求数据,允许请求设为0 + renderHourlyChart(data.labels, data.data, Array(data.data.length).fill(0)); + return; + } + } + + // 处理其他可能的数据格式 + if (data.labels && data.blocked && data.allowed) { + // 完整数据格式:分别有屏蔽和允许的数据 + renderHourlyChart(data.labels, data.blocked, data.allowed); + } else if (data.labels && data.data) { + // 简化数据格式:只有一组数据 + renderHourlyChart(data.labels, data.data, Array(data.data.length).fill(0)); + } else { + // 尝试直接使用数据对象的属性 + const hours = []; + const blocked = []; + const allowed = []; + + // 假设数据是按小时组织的对象 + for (const key in data) { + if (data.hasOwnProperty(key)) { + hours.push(key); + // 尝试不同的数据结构访问方式 + if (typeof data[key] === 'object' && data[key] !== null) { + blocked.push(data[key].Blocked || data[key].blocked || 0); + allowed.push(data[key].Allowed || data[key].allowed || 0); + } else { + blocked.push(data[key]); + allowed.push(0); + } + } + } + + // 只在有数据时渲染 + if (hours.length > 0) { + renderHourlyChart(hours, blocked, allowed); + } + } } }) .catch(error => { console.error('获取24小时统计失败:', error); + // 显示默认空数据,避免图表区域空白 + const emptyHours = Array.from({length: 24}, (_, i) => `${i}:00`); + const emptyData = Array(24).fill(0); + renderHourlyChart(emptyHours, emptyData, emptyData); }); } @@ -104,19 +150,45 @@ function renderHourlyChart(hours, blocked, allowed) { function loadRequestsDistribution() { apiRequest('/api/stats') .then(data => { - if (data && data.dns) { - // 构造饼图所需的数据 - const labels = ['允许请求', '屏蔽请求', '错误请求']; - const requestData = [ - data.dns.Allowed || 0, - data.dns.Blocked || 0, - data.dns.Errors || 0 - ]; - renderRequestsPieChart(labels, requestData); + // 构造饼图所需的数据,支持多种数据格式 + const labels = ['允许请求', '屏蔽请求', '错误请求']; + let requestData = [0, 0, 0]; // 默认值 + + if (data) { + // 尝试多种可能的数据结构 + if (data.dns) { + // 主要数据结构 + requestData = [ + data.dns.Allowed || data.dns.allowed || 0, + data.dns.Blocked || data.dns.blocked || 0, + data.dns.Errors || data.dns.errors || 0 + ]; + } else if (data.Allowed !== undefined || data.Blocked !== undefined) { + // 直接在顶级对象中 + requestData = [ + data.Allowed || data.allowed || 0, + data.Blocked || data.blocked || 0, + data.Errors || data.errors || 0 + ]; + } else if (data.requests) { + // 可能在requests属性中 + requestData = [ + data.requests.Allowed || data.requests.allowed || 0, + data.requests.Blocked || data.requests.blocked || 0, + data.requests.Errors || data.requests.errors || 0 + ]; + } } + + // 渲染图表,即使数据全为0也渲染,避免空白 + renderRequestsPieChart(labels, requestData); }) .catch(error => { console.error('获取请求类型分布失败:', error); + // 显示默认空数据的图表 + const labels = ['允许请求', '屏蔽请求', '错误请求']; + const defaultData = [0, 0, 0]; + renderRequestsPieChart(labels, defaultData); }); } @@ -173,21 +245,53 @@ function renderRequestsPieChart(labels, data) { // 加载最常屏蔽的域名 function loadTopBlockedDomains() { + // 首先获取表格元素并显示加载状态 + const tbody = document.getElementById('top-blocked-table')?.querySelector('tbody'); + if (tbody) { + // 显示加载中状态 + tbody.innerHTML = `加载中...`; + } + apiRequest('/api/top-blocked') .then(data => { - renderTopBlockedDomains(data); + // 处理多种可能的数据格式,特别优化对用户提供格式的支持 + let processedData = []; + + console.log('最常屏蔽域名API返回数据:', data); + + if (Array.isArray(data)) { + // 数组格式:直接使用,并过滤出有效的域名数据 + processedData = data.filter(item => item && (item.domain || item.name || item.Domain || item.Name) && (item.count !== undefined || item.Count !== undefined || item.hits !== undefined || item.Hits !== undefined)); + console.log('处理后的域名数据:', processedData); + } else if (data && data.domains && Array.isArray(data.domains)) { + // 嵌套在domains属性中 + processedData = data.domains; + } else if (data && typeof data === 'object') { + // 对象格式:转换为数组 + processedData = Object.keys(data).map(key => ({ + domain: key, + count: data[key] + })); + } + + renderTopBlockedDomains(processedData); }) .catch(error => { console.error('获取最常屏蔽域名失败:', error); - showError(document.getElementById('top-blocked-table').querySelector('tbody'), '获取数据失败'); + // 显示默认空数据而不是错误消息,保持界面一致性 + if (tbody) { + showEmpty(tbody, '获取数据失败'); + } }); } // 渲染最常屏蔽的域名表格 function renderTopBlockedDomains(domains) { - const tbody = document.getElementById('top-blocked-table').querySelector('tbody'); + const tbody = document.getElementById('top-blocked-table')?.querySelector('tbody'); if (!tbody) return; + console.log('准备渲染的域名数据:', domains); + if (!domains || domains.length === 0) { showEmpty(tbody, '暂无屏蔽记录'); return; @@ -196,27 +300,61 @@ function renderTopBlockedDomains(domains) { tbody.innerHTML = ''; domains.forEach((domain, index) => { + if (!domain) return; + + // 支持不同的字段名和格式,特别针对用户提供的数据格式优化 + const domainName = domain.domain || domain.name || domain.Domain || domain.Name || '未知域名'; + const count = domain.count !== undefined ? domain.count : + (domain.Count !== undefined ? domain.Count : + (domain.hits !== undefined ? domain.hits : + (domain.Hits !== undefined ? domain.Hits : 0))); + + console.log(`渲染域名 ${index + 1}:`, {domainName, count}); + const row = document.createElement('tr'); row.innerHTML = ` - ${domain.domain} - ${formatNumber(domain.count)} + ${domainName} + ${formatNumber(count)} `; tbody.appendChild(row); }); // 初始化表格排序 - initTableSort('top-blocked-table'); + if (typeof initTableSort === 'function') { + initTableSort('top-blocked-table'); + } } // 加载最常解析的域名 function loadTopResolvedDomains() { apiRequest('/api/top-resolved') .then(data => { - renderTopResolvedDomains(data); + // 处理多种可能的数据格式 + let processedData = []; + + if (Array.isArray(data)) { + // 数组格式:直接使用 + processedData = data; + } else if (data && data.domains && Array.isArray(data.domains)) { + // 嵌套在domains属性中 + processedData = data.domains; + } else if (data && typeof data === 'object') { + // 对象格式:转换为数组 + processedData = Object.keys(data).map(key => ({ + domain: key, + count: data[key] + })); + } + + renderTopResolvedDomains(processedData); }) .catch(error => { console.error('获取最常解析域名失败:', error); - showError(document.getElementById('top-resolved-table').querySelector('tbody'), '获取数据失败'); + // 显示默认空数据而不是错误消息,保持界面一致性 + const tbody = document.getElementById('top-resolved-table').querySelector('tbody'); + if (tbody) { + showEmpty(tbody, '暂无解析记录'); + } }); } @@ -233,10 +371,14 @@ function renderTopResolvedDomains(domains) { tbody.innerHTML = ''; domains.forEach((domain, index) => { - const row = document.createElement('tr'); - row.innerHTML = ` - ${domain.domain} - ${formatNumber(domain.count)} + // 支持不同的字段名和格式 + const domainName = domain.domain || domain.name || domain.Domain || domain.Name || '未知域名'; + const count = domain.count || domain.Count || domain.hits || domain.Hits || 0; + + const row = document.createElement('tr'); + row.innerHTML = ` + ${domainName} + ${formatNumber(count)} `; tbody.appendChild(row); });