web重做
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
# DNS Server Hosts File
|
# DNS Server Hosts File
|
||||||
# Generated by DNS Server
|
# Generated by DNS Server
|
||||||
|
|
||||||
|
127.0.0.1 h
|
||||||
::1 localhost
|
::1 localhost
|
||||||
ad.qq.com 127.0.0.1
|
ad.qq.com 127.0.0.1
|
||||||
ad.qq.com 0.0.0.0
|
ad.qq.com 0.0.0.0
|
||||||
|
127.0.0.1 ex
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"blockedDomainsCount": {},
|
"blockedDomainsCount": {},
|
||||||
"resolvedDomainsCount": {},
|
"resolvedDomainsCount": {},
|
||||||
"lastSaved": "2025-11-23T23:59:38.260427873+08:00"
|
"lastSaved": "2025-11-24T01:52:20.475535163+08:00"
|
||||||
}
|
}
|
||||||
127
data/stats.json
127
data/stats.json
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"stats": {
|
"stats": {
|
||||||
"Queries": 179,
|
"Queries": 219,
|
||||||
"Blocked": 32,
|
"Blocked": 50,
|
||||||
"Allowed": 154,
|
"Allowed": 185,
|
||||||
"Errors": 2,
|
"Errors": 2,
|
||||||
"LastQuery": "2025-11-23T23:13:38.043808406+08:00"
|
"LastQuery": "2025-11-24T01:49:06.129694687+08:00"
|
||||||
},
|
},
|
||||||
"blockedDomains": {
|
"blockedDomains": {
|
||||||
"ad.qq.com": {
|
"ad.qq.com": {
|
||||||
@@ -17,6 +17,16 @@
|
|||||||
"Count": 6,
|
"Count": 6,
|
||||||
"LastSeen": "2025-11-23T19:06:10.691565251+08:00"
|
"LastSeen": "2025-11-23T19:06:10.691565251+08:00"
|
||||||
},
|
},
|
||||||
|
"adjust.net": {
|
||||||
|
"Domain": "adjust.net",
|
||||||
|
"Count": 8,
|
||||||
|
"LastSeen": "2025-11-24T01:47:49.401607336+08:00"
|
||||||
|
},
|
||||||
|
"api.weathercn.com": {
|
||||||
|
"Domain": "api.weathercn.com",
|
||||||
|
"Count": 1,
|
||||||
|
"LastSeen": "2025-11-24T01:41:33.41523753+08:00"
|
||||||
|
},
|
||||||
"app.adjust.com": {
|
"app.adjust.com": {
|
||||||
"Domain": "app.adjust.com",
|
"Domain": "app.adjust.com",
|
||||||
"Count": 2,
|
"Count": 2,
|
||||||
@@ -41,13 +51,18 @@
|
|||||||
},
|
},
|
||||||
"ad.qq.com": {
|
"ad.qq.com": {
|
||||||
"Domain": "ad.qq.com",
|
"Domain": "ad.qq.com",
|
||||||
"Count": 16,
|
"Count": 18,
|
||||||
"LastSeen": "2025-11-23T19:46:16.276753315+08:00"
|
"LastSeen": "2025-11-24T00:32:55.929506886+08:00"
|
||||||
},
|
},
|
||||||
"ad.qq.com.amazehome.xyz": {
|
"ad.qq.com.amazehome.xyz": {
|
||||||
"Domain": "ad.qq.com.amazehome.xyz",
|
"Domain": "ad.qq.com.amazehome.xyz",
|
||||||
"Count": 14,
|
"Count": 16,
|
||||||
"LastSeen": "2025-11-23T19:46:16.262416896+08:00"
|
"LastSeen": "2025-11-24T00:32:55.878106815+08:00"
|
||||||
|
},
|
||||||
|
"adjust.net.amazehome.xyz": {
|
||||||
|
"Domain": "adjust.net.amazehome.xyz",
|
||||||
|
"Count": 8,
|
||||||
|
"LastSeen": "2025-11-24T01:47:49.399009577+08:00"
|
||||||
},
|
},
|
||||||
"aeventlog.beacon.qq.com": {
|
"aeventlog.beacon.qq.com": {
|
||||||
"Domain": "aeventlog.beacon.qq.com",
|
"Domain": "aeventlog.beacon.qq.com",
|
||||||
@@ -284,6 +299,86 @@
|
|||||||
"Count": 1,
|
"Count": 1,
|
||||||
"LastSeen": "2025-11-23T22:40:35.98874341+08:00"
|
"LastSeen": "2025-11-23T22:40:35.98874341+08:00"
|
||||||
},
|
},
|
||||||
|
"pull-flv-f1.douyincdn.com": {
|
||||||
|
"Domain": "pull-flv-f1.douyincdn.com",
|
||||||
|
"Count": 1,
|
||||||
|
"LastSeen": "2025-11-24T01:41:31.277122645+08:00"
|
||||||
|
},
|
||||||
|
"pull-flv-f6.douyinliving.com": {
|
||||||
|
"Domain": "pull-flv-f6.douyinliving.com",
|
||||||
|
"Count": 1,
|
||||||
|
"LastSeen": "2025-11-24T01:42:01.704954937+08:00"
|
||||||
|
},
|
||||||
|
"pull-flv-h11.douyincdn.com": {
|
||||||
|
"Domain": "pull-flv-h11.douyincdn.com",
|
||||||
|
"Count": 1,
|
||||||
|
"LastSeen": "2025-11-24T01:41:50.588440581+08:00"
|
||||||
|
},
|
||||||
|
"pull-flv-q6.douyincdn.com": {
|
||||||
|
"Domain": "pull-flv-q6.douyincdn.com",
|
||||||
|
"Count": 1,
|
||||||
|
"LastSeen": "2025-11-24T01:42:23.89359236+08:00"
|
||||||
|
},
|
||||||
|
"pull-hls-f5-tsl.douyincdn.com": {
|
||||||
|
"Domain": "pull-hls-f5-tsl.douyincdn.com",
|
||||||
|
"Count": 1,
|
||||||
|
"LastSeen": "2025-11-24T01:48:48.571278524+08:00"
|
||||||
|
},
|
||||||
|
"pull-hls-h11.douyincdn.com": {
|
||||||
|
"Domain": "pull-hls-h11.douyincdn.com",
|
||||||
|
"Count": 1,
|
||||||
|
"LastSeen": "2025-11-24T01:48:59.044222225+08:00"
|
||||||
|
},
|
||||||
|
"pull-hls-q13.douyincdn.com": {
|
||||||
|
"Domain": "pull-hls-q13.douyincdn.com",
|
||||||
|
"Count": 1,
|
||||||
|
"LastSeen": "2025-11-24T01:49:02.729718291+08:00"
|
||||||
|
},
|
||||||
|
"pull-lls-b1.douyincdn.com": {
|
||||||
|
"Domain": "pull-lls-b1.douyincdn.com",
|
||||||
|
"Count": 1,
|
||||||
|
"LastSeen": "2025-11-24T01:49:06.138231286+08:00"
|
||||||
|
},
|
||||||
|
"pull-lls-f5.douyinliving.com": {
|
||||||
|
"Domain": "pull-lls-f5.douyinliving.com",
|
||||||
|
"Count": 1,
|
||||||
|
"LastSeen": "2025-11-24T01:41:59.393301388+08:00"
|
||||||
|
},
|
||||||
|
"pull-rtmp-l6-source.douyincdn.com": {
|
||||||
|
"Domain": "pull-rtmp-l6-source.douyincdn.com",
|
||||||
|
"Count": 1,
|
||||||
|
"LastSeen": "2025-11-24T01:42:08.137591225+08:00"
|
||||||
|
},
|
||||||
|
"pull-t3.douyincdn.com": {
|
||||||
|
"Domain": "pull-t3.douyincdn.com",
|
||||||
|
"Count": 1,
|
||||||
|
"LastSeen": "2025-11-24T01:41:38.612288612+08:00"
|
||||||
|
},
|
||||||
|
"pull-tsl-h6.douyincdn.com": {
|
||||||
|
"Domain": "pull-tsl-h6.douyincdn.com",
|
||||||
|
"Count": 1,
|
||||||
|
"LastSeen": "2025-11-24T01:41:56.624659214+08:00"
|
||||||
|
},
|
||||||
|
"pull-tsl-l1.douyincdn.com": {
|
||||||
|
"Domain": "pull-tsl-l1.douyincdn.com",
|
||||||
|
"Count": 1,
|
||||||
|
"LastSeen": "2025-11-24T01:41:44.725194024+08:00"
|
||||||
|
},
|
||||||
|
"push-rtmp-hs-f5-encryption.douyincdn.com": {
|
||||||
|
"Domain": "push-rtmp-hs-f5-encryption.douyincdn.com",
|
||||||
|
"Count": 1,
|
||||||
|
"LastSeen": "2025-11-24T01:42:05.454063001+08:00"
|
||||||
|
},
|
||||||
|
"push-rtmp-l3.douyincdn.com": {
|
||||||
|
"Domain": "push-rtmp-l3.douyincdn.com",
|
||||||
|
"Count": 1,
|
||||||
|
"LastSeen": "2025-11-24T01:41:33.293391598+08:00"
|
||||||
|
},
|
||||||
|
"push-rtmp-t5.douyincdn.com": {
|
||||||
|
"Domain": "push-rtmp-t5.douyincdn.com",
|
||||||
|
"Count": 1,
|
||||||
|
"LastSeen": "2025-11-24T01:42:12.559089267+08:00"
|
||||||
|
},
|
||||||
"rcm-cus-drcn.platform.dbankcloud.cn": {
|
"rcm-cus-drcn.platform.dbankcloud.cn": {
|
||||||
"Domain": "rcm-cus-drcn.platform.dbankcloud.cn",
|
"Domain": "rcm-cus-drcn.platform.dbankcloud.cn",
|
||||||
"Count": 1,
|
"Count": 1,
|
||||||
@@ -314,6 +409,11 @@
|
|||||||
"Count": 4,
|
"Count": 4,
|
||||||
"LastSeen": "2025-11-23T19:46:12.850932678+08:00"
|
"LastSeen": "2025-11-23T19:46:12.850932678+08:00"
|
||||||
},
|
},
|
||||||
|
"sofire.baidu.com": {
|
||||||
|
"Domain": "sofire.baidu.com",
|
||||||
|
"Count": 2,
|
||||||
|
"LastSeen": "2025-11-24T01:41:59.792694087+08:00"
|
||||||
|
},
|
||||||
"store-drcn.hispace.dbankcloud.com": {
|
"store-drcn.hispace.dbankcloud.com": {
|
||||||
"Domain": "store-drcn.hispace.dbankcloud.com",
|
"Domain": "store-drcn.hispace.dbankcloud.com",
|
||||||
"Count": 1,
|
"Count": 1,
|
||||||
@@ -333,12 +433,19 @@
|
|||||||
"Domain": "tsms-drcn.security.dbankcloud.cn",
|
"Domain": "tsms-drcn.security.dbankcloud.cn",
|
||||||
"Count": 2,
|
"Count": 2,
|
||||||
"LastSeen": "2025-11-23T23:13:02.239393357+08:00"
|
"LastSeen": "2025-11-23T23:13:02.239393357+08:00"
|
||||||
|
},
|
||||||
|
"v5-ali-northeast.douyinvod.com": {
|
||||||
|
"Domain": "v5-ali-northeast.douyinvod.com",
|
||||||
|
"Count": 1,
|
||||||
|
"LastSeen": "2025-11-24T01:41:33.349715856+08:00"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"hourlyStats": {
|
"hourlyStats": {
|
||||||
"2025-11-23-19": 12,
|
"2025-11-23-19": 12,
|
||||||
"2025-11-23-22": 2,
|
"2025-11-23-22": 2,
|
||||||
"2025-11-23-23": 2
|
"2025-11-23-23": 2,
|
||||||
|
"2025-11-24-00": 2,
|
||||||
|
"2025-11-24-01": 7
|
||||||
},
|
},
|
||||||
"lastSaved": "2025-11-23T23:53:55.655573463+08:00"
|
"lastSaved": "2025-11-24T01:49:08.420172547+08:00"
|
||||||
}
|
}
|
||||||
BIN
dns-server
BIN
dns-server
Binary file not shown.
979
dns-server.log
979
dns-server.log
@@ -19010,3 +19010,982 @@ time="2025-11-23T23:59:38+08:00" level=info msg="从缓存加载远程规则" ur
|
|||||||
time="2025-11-23T23:59:38+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
time="2025-11-23T23:59:38+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
time="2025-11-23T23:59:38+08:00" level=info msg="自动更新规则成功"
|
time="2025-11-23T23:59:38+08:00" level=info msg="自动更新规则成功"
|
||||||
time="2025-11-23T23:59:38+08:00" level=info msg="Shield计数数据保存成功"
|
time="2025-11-23T23:59:38+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:00:37+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:00:37+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:00:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:00:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:00:38+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-24T00:00:38+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:00:38+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:00:38+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:01:37+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:01:37+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:01:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:01:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:01:38+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-24T00:01:38+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:01:38+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:01:38+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:02:37+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:02:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:02:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:02:38+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-24T00:02:38+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:02:38+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:02:38+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:02:38+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:03:37+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:03:37+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:03:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:03:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:03:38+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-24T00:03:38+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:03:38+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:03:38+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:04:37+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:04:37+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:04:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:04:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:04:38+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-24T00:04:38+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:04:38+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:04:38+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:05:37+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:05:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:05:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:05:38+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-24T00:05:38+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:05:38+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:05:38+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:05:38+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:06:10+08:00" level=info msg="正在关闭服务..."
|
||||||
|
time="2025-11-24T00:06:10+08:00" level=info msg="统计数据保存成功"
|
||||||
|
time="2025-11-24T00:06:10+08:00" level=info msg="DNS服务器已停止"
|
||||||
|
time="2025-11-24T00:06:10+08:00" level=error msg="HTTP控制台服务器启动失败" error="http: Server closed"
|
||||||
|
time="2025-11-24T00:06:10+08:00" level=info msg="HTTP控制台服务器已停止"
|
||||||
|
time="2025-11-24T00:06:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:06:10+08:00" level=info msg="规则自动更新已停止"
|
||||||
|
time="2025-11-24T00:06:10+08:00" level=info msg="所有服务已关闭"
|
||||||
|
time="2025-11-24T00:06:10+08:00" level=warning msg="日志系统已关闭"
|
||||||
|
time="2025-11-24T00:07:36+08:00" level=error msg="解析Shield计数数据失败" error="unexpected end of JSON input"
|
||||||
|
time="2025-11-24T00:07:36+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-24T00:07:36+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 452, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:07:36+08:00" level=info msg="统计数据加载成功"
|
||||||
|
time="2025-11-24T00:07:36+08:00" level=info msg="DNS服务器已启动,监听端口: 53"
|
||||||
|
time="2025-11-24T00:07:36+08:00" level=info msg="HTTP控制台已启动,监听端口: 8080"
|
||||||
|
time="2025-11-24T00:07:36+08:00" level=info msg="DNS TCP服务器启动,监听端口: 53"
|
||||||
|
time="2025-11-24T00:07:36+08:00" level=info msg="启动Shield计数数据自动保存功能" file=./data/shield_stats.json interval=60
|
||||||
|
time="2025-11-24T00:07:36+08:00" level=info msg="DNS UDP服务器启动,监听端口: 53"
|
||||||
|
time="2025-11-24T00:07:36+08:00" level=info msg="HTTP控制台服务器启动,监听地址: 0.0.0.0:8080"
|
||||||
|
time="2025-11-24T00:07:36+08:00" level=info msg="规则自动更新已启动" interval=60
|
||||||
|
time="2025-11-24T00:07:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:08:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:08:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:08:36+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-24T00:08:36+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 452, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:08:36+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:09:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:09:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:09:37+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-24T00:09:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:09:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:09:37+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:10:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:10:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:10:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:10:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:10:37+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-24T00:10:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:10:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:10:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:11:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:11:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:11:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:11:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:11:37+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-24T00:11:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:11:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:11:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:12:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:12:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:12:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:12:37+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-24T00:12:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:12:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:12:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:12:37+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:13:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:13:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:13:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:13:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:13:37+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-24T00:13:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:13:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:13:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:14:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:14:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:14:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:14:37+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-24T00:14:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:14:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:14:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:14:37+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:15:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:15:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:15:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:15:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:15:37+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-24T00:15:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:15:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:16:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:16:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:16:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:16:37+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-24T00:16:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:16:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:16:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:16:37+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:17:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:17:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:17:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:17:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:17:37+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-24T00:17:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:17:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:17:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:18:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:18:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:18:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:18:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:18:37+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-24T00:18:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:18:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:18:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:19:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:19:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:19:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:19:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:19:36+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-24T00:19:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:19:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:19:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:20:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:20:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:20:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:20:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:20:36+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-24T00:20:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:20:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:20:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:21:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:21:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:21:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:21:37+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-24T00:21:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:21:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:22:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:22:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:22:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:22:37+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-24T00:22:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:22:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:22:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:22:37+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:23:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:23:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:23:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:23:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:23:37+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-24T00:23:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:23:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:23:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:24:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:24:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:24:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:24:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:24:37+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-24T00:24:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:24:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:24:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:25:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:25:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:25:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:25:37+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-24T00:25:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:25:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:25:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:25:37+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:26:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:26:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:26:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:26:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:26:37+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-24T00:26:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:26:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:26:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:27:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:27:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:27:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:27:37+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-24T00:27:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:27:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:27:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:27:37+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:28:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:28:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:28:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:28:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:28:36+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-24T00:28:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:28:36+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:28:36+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:29:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:29:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:29:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:29:37+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-24T00:29:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:29:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:30:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:30:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:30:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:30:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:30:37+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-24T00:30:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:30:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:31:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:31:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:31:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:31:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:31:36+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-24T00:31:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:31:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:31:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:32:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:32:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:32:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:32:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:32:36+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-24T00:32:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:32:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:32:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:32:55+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:64843" domain=ad.qq.com.amazehome.xyz type=1
|
||||||
|
time="2025-11-24T00:32:55+08:00" level=debug msg="DNS查询成功" domain=ad.qq.com.amazehome.xyz rtt=58.704512ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T00:32:55+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:64844" domain=ad.qq.com.amazehome.xyz type=28
|
||||||
|
time="2025-11-24T00:32:55+08:00" level=debug msg="DNS查询成功" domain=ad.qq.com.amazehome.xyz rtt=54.141686ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T00:32:55+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:64845" domain=ad.qq.com type=1
|
||||||
|
time="2025-11-24T00:32:55+08:00" level=debug msg="DNS查询成功" domain=ad.qq.com rtt=16.656737ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T00:32:55+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:64846" domain=ad.qq.com type=28
|
||||||
|
time="2025-11-24T00:32:55+08:00" level=debug msg="DNS查询成功" domain=ad.qq.com rtt=28.625359ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T00:33:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:33:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:33:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:33:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:33:37+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-24T00:33:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:33:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:33:51+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:64961" domain=adjust.net.amazehome.xyz type=1
|
||||||
|
time="2025-11-24T00:33:51+08:00" level=debug msg="DNS查询成功" domain=adjust.net.amazehome.xyz rtt=24.935293ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T00:33:51+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:64962" domain=adjust.net.amazehome.xyz type=28
|
||||||
|
time="2025-11-24T00:33:51+08:00" level=debug msg="DNS查询成功" domain=adjust.net.amazehome.xyz rtt=21.107882ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T00:33:51+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:64963" domain=adjust.net type=1
|
||||||
|
time="2025-11-24T00:33:51+08:00" level=info msg="域名被屏蔽" client="10.35.10.78:64963" domain=adjust.net
|
||||||
|
time="2025-11-24T00:33:51+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:64964" domain=adjust.net type=28
|
||||||
|
time="2025-11-24T00:33:51+08:00" level=info msg="域名被屏蔽" client="10.35.10.78:64964" domain=adjust.net
|
||||||
|
time="2025-11-24T00:34:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:34:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:34:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:34:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:34:37+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-24T00:34:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:34:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:34:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:35:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:35:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:35:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:35:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:35:37+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-24T00:35:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:35:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:35:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:36:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:36:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:36:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:36:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:36:37+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-24T00:36:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:36:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:36:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:37:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:37:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:37:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:37:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:37:37+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-24T00:37:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:37:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:38:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:38:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:38:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:38:37+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-24T00:38:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:38:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:38:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:38:37+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:39:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:39:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:39:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:39:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:39:36+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-24T00:39:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:39:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:39:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:40:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:40:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:40:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:40:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:40:37+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-24T00:40:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:40:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:41:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:41:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:41:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:41:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:41:37+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-24T00:41:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:41:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:41:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:42:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:42:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:42:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:42:37+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-24T00:42:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:42:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:42:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:42:37+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:43:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:43:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:43:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:43:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:43:37+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-24T00:43:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:43:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:43:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:44:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:44:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:44:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:44:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:44:37+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-24T00:44:37+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:44:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:44:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:45:36+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:45:36+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:45:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:45:36+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:45:37+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-24T00:45:37+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:45:37+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:46:12+08:00" level=info msg="正在关闭服务..."
|
||||||
|
time="2025-11-24T00:46:12+08:00" level=info msg="统计数据保存成功"
|
||||||
|
time="2025-11-24T00:46:12+08:00" level=info msg="DNS服务器已停止"
|
||||||
|
time="2025-11-24T00:46:12+08:00" level=error msg="HTTP控制台服务器启动失败" error="http: Server closed"
|
||||||
|
time="2025-11-24T00:46:12+08:00" level=info msg="HTTP控制台服务器已停止"
|
||||||
|
time="2025-11-24T00:46:12+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:46:12+08:00" level=info msg="规则自动更新已停止"
|
||||||
|
time="2025-11-24T00:46:12+08:00" level=info msg="所有服务已关闭"
|
||||||
|
time="2025-11-24T00:46:12+08:00" level=warning msg="日志系统已关闭"
|
||||||
|
time="2025-11-24T00:47:09+08:00" level=info msg="Shield计数数据加载成功"
|
||||||
|
time="2025-11-24T00:47:10+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-24T00:47:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 452, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:47:10+08:00" level=info msg="统计数据加载成功"
|
||||||
|
time="2025-11-24T00:47:10+08:00" level=info msg="DNS服务器已启动,监听端口: 53"
|
||||||
|
time="2025-11-24T00:47:10+08:00" level=info msg="HTTP控制台已启动,监听端口: 8080"
|
||||||
|
time="2025-11-24T00:47:10+08:00" level=info msg="DNS TCP服务器启动,监听端口: 53"
|
||||||
|
time="2025-11-24T00:47:10+08:00" level=info msg="规则自动更新已启动" interval=60
|
||||||
|
time="2025-11-24T00:47:10+08:00" level=info msg="启动Shield计数数据自动保存功能" file=./data/shield_stats.json interval=60
|
||||||
|
time="2025-11-24T00:47:10+08:00" level=info msg="DNS UDP服务器启动,监听端口: 53"
|
||||||
|
time="2025-11-24T00:47:10+08:00" level=info msg="HTTP控制台服务器启动,监听地址: 0.0.0.0:8080"
|
||||||
|
time="2025-11-24T00:47:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:48:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:48:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:48:10+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-24T00:48:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 452, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:48:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:49:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:49:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:49:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:49:10+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-24T00:49:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:49:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:50:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:50:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:50:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:50:10+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-24T00:50:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:50:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:51:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:51:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:51:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:51:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:51:10+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-24T00:51:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:51:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:51:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:52:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:52:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:52:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:52:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:52:10+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-24T00:52:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:52:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:52:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:53:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:53:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:53:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:53:10+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-24T00:53:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:53:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:53:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:53:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:54:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:54:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:54:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:54:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:54:10+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-24T00:54:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:54:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:54:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:55:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:55:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:55:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:55:10+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-24T00:55:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:55:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:56:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:56:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:56:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:56:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:56:10+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-24T00:56:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:56:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:56:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:57:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:57:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:57:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:57:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:57:10+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-24T00:57:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:57:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:57:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:58:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T00:58:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:58:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:58:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:58:10+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-24T00:58:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T00:58:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:58:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:59:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T00:59:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T00:59:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T00:59:10+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-24T00:59:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 3"
|
||||||
|
time="2025-11-24T00:59:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T00:59:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:00:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:00:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:00:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:00:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:00:10+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:00:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:00:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:00:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:01:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:01:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:01:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:01:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:01:10+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:01:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:01:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:01:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:02:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:02:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:02:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:02:10+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:02:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:02:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:02:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:02:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:03:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:03:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:03:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:03:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:03:10+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:03:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:03:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:03:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:04:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:04:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:04:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:04:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:04:10+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:04:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:04:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:04:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:05:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:05:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:05:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:05:10+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:05:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:05:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:05:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:05:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:06:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:06:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:06:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:06:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:06:10+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:06:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:06:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:06:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:07:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:07:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:07:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:07:10+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:07:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:07:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:07:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:07:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:08:10+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:08:10+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:08:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:08:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:08:10+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:08:10+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:08:10+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:08:10+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:08:16+08:00" level=info msg="正在关闭服务..."
|
||||||
|
time="2025-11-24T01:08:16+08:00" level=info msg="统计数据保存成功"
|
||||||
|
time="2025-11-24T01:08:16+08:00" level=info msg="DNS服务器已停止"
|
||||||
|
time="2025-11-24T01:08:16+08:00" level=error msg="HTTP控制台服务器启动失败" error="http: Server closed"
|
||||||
|
time="2025-11-24T01:08:16+08:00" level=info msg="HTTP控制台服务器已停止"
|
||||||
|
time="2025-11-24T01:08:16+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:08:16+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:08:16+08:00" level=info msg="规则自动更新已停止"
|
||||||
|
time="2025-11-24T01:08:16+08:00" level=info msg="所有服务已关闭"
|
||||||
|
time="2025-11-24T01:08:16+08:00" level=warning msg="日志系统已关闭"
|
||||||
|
time="2025-11-24T01:08:18+08:00" level=info msg="Shield计数数据加载成功"
|
||||||
|
time="2025-11-24T01:08:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:08:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:08:18+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:08:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:08:18+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:08:18+08:00" level=info msg="统计数据加载成功"
|
||||||
|
time="2025-11-24T01:08:18+08:00" level=info msg="DNS服务器已启动,监听端口: 53"
|
||||||
|
time="2025-11-24T01:08:18+08:00" level=info msg="HTTP控制台已启动,监听端口: 8080"
|
||||||
|
time="2025-11-24T01:08:18+08:00" level=info msg="DNS TCP服务器启动,监听端口: 53"
|
||||||
|
time="2025-11-24T01:08:18+08:00" level=info msg="启动Shield计数数据自动保存功能" file=./data/shield_stats.json interval=60
|
||||||
|
time="2025-11-24T01:08:18+08:00" level=info msg="DNS UDP服务器启动,监听端口: 53"
|
||||||
|
time="2025-11-24T01:08:18+08:00" level=info msg="HTTP控制台服务器启动,监听地址: 0.0.0.0:8080"
|
||||||
|
time="2025-11-24T01:08:18+08:00" level=info msg="规则自动更新已启动" interval=60
|
||||||
|
time="2025-11-24T01:08:18+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:09:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:09:18+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:09:18+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:09:18+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 452, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:09:18+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:10:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:10:18+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:10:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:10:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:10:18+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:10:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:10:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:10:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:11:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:11:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:11:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:11:18+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:11:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:11:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:11:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:11:19+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:12:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:12:18+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:12:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:12:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:12:18+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:12:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:12:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:12:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:13:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:13:18+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:13:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:13:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:13:19+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:13:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:13:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:14:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:14:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:14:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:14:19+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:14:19+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:14:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:14:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:14:19+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:15:18+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:15:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:15:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:15:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:15:19+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:15:19+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:15:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:15:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:16:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:16:18+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:16:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:16:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:16:18+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:16:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:16:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:16:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:17:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:17:18+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:17:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:17:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:17:18+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:17:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:17:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:17:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:18:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:18:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:18:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:18:19+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:18:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:18:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:18:19+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:19:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:19:18+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:19:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:19:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:19:19+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:19:19+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:19:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:19:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:20:18+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:20:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:20:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:20:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:20:18+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:20:19+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:20:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 3"
|
||||||
|
time="2025-11-24T01:20:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:21:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:21:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:21:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:21:19+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:21:19+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:21:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:21:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:21:19+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:22:18+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:22:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:22:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:22:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:22:18+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:22:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:22:18+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:22:18+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:23:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:23:18+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:23:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:23:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:23:19+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:23:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:23:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:24:18+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:24:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:24:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:24:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:24:19+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:24:19+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:24:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:24:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:25:18+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:25:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:25:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:25:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:25:18+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:25:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:25:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:25:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:26:18+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:26:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:26:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:26:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:26:18+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:26:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:26:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:26:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:27:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:27:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:27:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:27:18+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:27:19+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:27:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:27:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:27:19+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:28:18+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:28:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:28:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:28:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:28:18+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:28:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:28:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:28:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:29:18+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:29:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:29:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:29:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:29:18+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:29:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:29:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:29:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:30:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:30:18+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:30:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:30:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:30:18+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:30:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:30:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:30:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:31:18+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:31:18+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:31:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:31:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:31:18+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:31:18+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:31:19+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:31:19+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:31:26+08:00" level=info msg="正在关闭服务..."
|
||||||
|
time="2025-11-24T01:31:26+08:00" level=info msg="统计数据保存成功"
|
||||||
|
time="2025-11-24T01:31:26+08:00" level=info msg="DNS服务器已停止"
|
||||||
|
time="2025-11-24T01:31:26+08:00" level=error msg="HTTP控制台服务器启动失败" error="http: Server closed"
|
||||||
|
time="2025-11-24T01:31:26+08:00" level=info msg="HTTP控制台服务器已停止"
|
||||||
|
time="2025-11-24T01:31:26+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:31:26+08:00" level=info msg="规则自动更新已停止"
|
||||||
|
time="2025-11-24T01:31:26+08:00" level=info msg="所有服务已关闭"
|
||||||
|
time="2025-11-24T01:31:26+08:00" level=warning msg="日志系统已关闭"
|
||||||
|
time="2025-11-24T01:36:54+08:00" level=error msg="解析Shield计数数据失败" error="unexpected end of JSON input"
|
||||||
|
time="2025-11-24T01:36:54+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:36:55+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 452, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:36:55+08:00" level=info msg="统计数据加载成功"
|
||||||
|
time="2025-11-24T01:36:55+08:00" level=info msg="DNS服务器已启动,监听端口: 53"
|
||||||
|
time="2025-11-24T01:36:55+08:00" level=info msg="HTTP控制台已启动,监听端口: 8080"
|
||||||
|
time="2025-11-24T01:36:55+08:00" level=info msg="DNS TCP服务器启动,监听端口: 53"
|
||||||
|
time="2025-11-24T01:36:55+08:00" level=info msg="DNS UDP服务器启动,监听端口: 53"
|
||||||
|
time="2025-11-24T01:36:55+08:00" level=info msg="HTTP控制台服务器启动,监听地址: 0.0.0.0:8080"
|
||||||
|
time="2025-11-24T01:36:55+08:00" level=info msg="启动Shield计数数据自动保存功能" file=./data/shield_stats.json interval=60
|
||||||
|
time="2025-11-24T01:36:55+08:00" level=info msg="规则自动更新已启动" interval=60
|
||||||
|
time="2025-11-24T01:36:55+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:37:55+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:37:55+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:37:55+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:37:55+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 452, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:37:55+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:38:55+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:38:55+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:38:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:38:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:38:55+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:38:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:38:55+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:38:55+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:39:55+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:39:55+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:39:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:39:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:39:55+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:39:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:39:55+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:39:55+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:40:55+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:40:55+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:40:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:40:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:40:55+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:40:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:40:55+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:40:55+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:41:31+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:3189" domain=pull-flv-f1.douyincdn.com type=1
|
||||||
|
time="2025-11-24T01:41:31+08:00" level=debug msg="DNS查询成功" domain=pull-flv-f1.douyincdn.com rtt=5.435084ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:41:33+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:6165" domain=push-rtmp-l3.douyincdn.com type=1
|
||||||
|
time="2025-11-24T01:41:33+08:00" level=debug msg="DNS查询成功" domain=push-rtmp-l3.douyincdn.com rtt=5.622771ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:41:33+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:46034" domain=v5-ali-northeast.douyinvod.com type=1
|
||||||
|
time="2025-11-24T01:41:33+08:00" level=debug msg="DNS查询成功" domain=v5-ali-northeast.douyinvod.com rtt=4.497094ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:41:33+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:48411" domain=api.weathercn.com type=1
|
||||||
|
time="2025-11-24T01:41:33+08:00" level=info msg="域名被屏蔽" client="10.35.10.11:48411" domain=api.weathercn.com
|
||||||
|
time="2025-11-24T01:41:38+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:49746" domain=pull-t3.douyincdn.com type=1
|
||||||
|
time="2025-11-24T01:41:38+08:00" level=debug msg="DNS查询成功" domain=pull-t3.douyincdn.com rtt=5.723426ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:41:44+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:62514" domain=pull-tsl-l1.douyincdn.com type=1
|
||||||
|
time="2025-11-24T01:41:44+08:00" level=debug msg="DNS查询成功" domain=pull-tsl-l1.douyincdn.com rtt=5.653986ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:41:50+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:42983" domain=pull-flv-h11.douyincdn.com type=1
|
||||||
|
time="2025-11-24T01:41:50+08:00" level=debug msg="DNS查询成功" domain=pull-flv-h11.douyincdn.com rtt=5.592504ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:41:55+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:41:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:41:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:41:55+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:41:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:41:55+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:41:55+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:41:55+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:41:56+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:45313" domain=pull-tsl-h6.douyincdn.com type=1
|
||||||
|
time="2025-11-24T01:41:56+08:00" level=debug msg="DNS查询成功" domain=pull-tsl-h6.douyincdn.com rtt=6.033315ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:41:59+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:33719" domain=sofire.baidu.com type=1
|
||||||
|
time="2025-11-24T01:41:59+08:00" level=debug msg="DNS查询成功" domain=sofire.baidu.com rtt=5.049372ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:41:59+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:14322" domain=pull-lls-f5.douyinliving.com type=1
|
||||||
|
time="2025-11-24T01:41:59+08:00" level=debug msg="DNS查询成功" domain=pull-lls-f5.douyinliving.com rtt=5.839751ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:41:59+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:15555" domain=sofire.baidu.com type=1
|
||||||
|
time="2025-11-24T01:41:59+08:00" level=debug msg="DNS查询成功" domain=sofire.baidu.com rtt=5.704091ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:42:01+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:44160" domain=pull-flv-f6.douyinliving.com type=1
|
||||||
|
time="2025-11-24T01:42:01+08:00" level=debug msg="DNS查询成功" domain=pull-flv-f6.douyinliving.com rtt=5.240815ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:42:05+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:63958" domain=push-rtmp-hs-f5-encryption.douyincdn.com type=1
|
||||||
|
time="2025-11-24T01:42:05+08:00" level=debug msg="DNS查询成功" domain=push-rtmp-hs-f5-encryption.douyincdn.com rtt=5.07933ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:42:08+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:16204" domain=pull-rtmp-l6-source.douyincdn.com type=1
|
||||||
|
time="2025-11-24T01:42:08+08:00" level=debug msg="DNS查询成功" domain=pull-rtmp-l6-source.douyincdn.com rtt=5.901347ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:42:12+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:37023" domain=push-rtmp-t5.douyincdn.com type=1
|
||||||
|
time="2025-11-24T01:42:12+08:00" level=debug msg="DNS查询成功" domain=push-rtmp-t5.douyincdn.com rtt=7.182554ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:42:23+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:32754" domain=pull-flv-q6.douyincdn.com type=1
|
||||||
|
time="2025-11-24T01:42:23+08:00" level=debug msg="DNS查询成功" domain=pull-flv-q6.douyincdn.com rtt=5.224069ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:42:55+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:42:55+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:42:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:42:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:42:55+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:42:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:42:55+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:42:55+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:43:55+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:43:55+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:43:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:43:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:43:55+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:43:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:43:55+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:43:55+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:44:55+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:44:55+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:44:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:44:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:44:55+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:44:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:44:55+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:44:55+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:45:55+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:45:55+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:45:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:45:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:45:55+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:45:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:45:55+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:45:55+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:46:55+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:46:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:46:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:46:55+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:46:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:46:55+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:46:55+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:46:55+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:47:48+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:54033" domain=adjust.net.amazehome.xyz type=1
|
||||||
|
time="2025-11-24T01:47:48+08:00" level=debug msg="DNS查询成功" domain=adjust.net.amazehome.xyz rtt=26.677211ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:47:48+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:54034" domain=adjust.net.amazehome.xyz type=28
|
||||||
|
time="2025-11-24T01:47:48+08:00" level=debug msg="DNS查询成功" domain=adjust.net.amazehome.xyz rtt=24.176641ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:47:48+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:54035" domain=adjust.net type=1
|
||||||
|
time="2025-11-24T01:47:48+08:00" level=info msg="域名被屏蔽" client="10.35.10.78:54035" domain=adjust.net
|
||||||
|
time="2025-11-24T01:47:48+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:54036" domain=adjust.net type=28
|
||||||
|
time="2025-11-24T01:47:48+08:00" level=info msg="域名被屏蔽" client="10.35.10.78:54036" domain=adjust.net
|
||||||
|
time="2025-11-24T01:47:48+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:64065" domain=adjust.net.amazehome.xyz type=1
|
||||||
|
time="2025-11-24T01:47:48+08:00" level=debug msg="DNS查询成功" domain=adjust.net.amazehome.xyz rtt=17.501598ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:47:48+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:64066" domain=adjust.net.amazehome.xyz type=28
|
||||||
|
time="2025-11-24T01:47:48+08:00" level=debug msg="DNS查询成功" domain=adjust.net.amazehome.xyz rtt=64.890714ms server="223.6.6.6:53"
|
||||||
|
time="2025-11-24T01:47:48+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:64067" domain=adjust.net type=1
|
||||||
|
time="2025-11-24T01:47:48+08:00" level=info msg="域名被屏蔽" client="10.35.10.78:64067" domain=adjust.net
|
||||||
|
time="2025-11-24T01:47:48+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:64068" domain=adjust.net type=28
|
||||||
|
time="2025-11-24T01:47:48+08:00" level=info msg="域名被屏蔽" client="10.35.10.78:64068" domain=adjust.net
|
||||||
|
time="2025-11-24T01:47:49+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:64069" domain=adjust.net.amazehome.xyz type=1
|
||||||
|
time="2025-11-24T01:47:49+08:00" level=debug msg="DNS查询成功" domain=adjust.net.amazehome.xyz rtt=66.95899ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:47:49+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:64537" domain=adjust.net.amazehome.xyz type=28
|
||||||
|
time="2025-11-24T01:47:49+08:00" level=debug msg="DNS查询成功" domain=adjust.net.amazehome.xyz rtt=5.735744ms server="223.6.6.6:53"
|
||||||
|
time="2025-11-24T01:47:49+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:64538" domain=adjust.net type=1
|
||||||
|
time="2025-11-24T01:47:49+08:00" level=info msg="域名被屏蔽" client="10.35.10.78:64538" domain=adjust.net
|
||||||
|
time="2025-11-24T01:47:49+08:00" level=debug msg="接收到DNS查询" client="10.35.10.78:64539" domain=adjust.net type=28
|
||||||
|
time="2025-11-24T01:47:49+08:00" level=info msg="域名被屏蔽" client="10.35.10.78:64539" domain=adjust.net
|
||||||
|
time="2025-11-24T01:47:55+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:47:55+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:47:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:47:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:47:55+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:47:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:47:55+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:47:55+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:48:48+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:43398" domain=pull-hls-f5-tsl.douyincdn.com type=1
|
||||||
|
time="2025-11-24T01:48:48+08:00" level=debug msg="DNS查询成功" domain=pull-hls-f5-tsl.douyincdn.com rtt=6.713185ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:48:55+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:48:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:48:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:48:55+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:48:55+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:48:55+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:48:55+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:48:55+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:48:59+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:36578" domain=pull-hls-h11.douyincdn.com type=1
|
||||||
|
time="2025-11-24T01:48:59+08:00" level=debug msg="DNS查询成功" domain=pull-hls-h11.douyincdn.com rtt=5.443357ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:49:02+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:33820" domain=pull-hls-q13.douyincdn.com type=1
|
||||||
|
time="2025-11-24T01:49:02+08:00" level=debug msg="DNS查询成功" domain=pull-hls-q13.douyincdn.com rtt=5.419047ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:49:06+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:31578" domain=pull-lls-b1.douyincdn.com type=1
|
||||||
|
time="2025-11-24T01:49:06+08:00" level=debug msg="DNS查询成功" domain=pull-lls-b1.douyincdn.com rtt=6.688115ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:49:08+08:00" level=info msg="正在关闭服务..."
|
||||||
|
time="2025-11-24T01:49:08+08:00" level=info msg="统计数据保存成功"
|
||||||
|
time="2025-11-24T01:49:08+08:00" level=info msg="DNS服务器已停止"
|
||||||
|
time="2025-11-24T01:49:08+08:00" level=error msg="HTTP控制台服务器启动失败" error="http: Server closed"
|
||||||
|
time="2025-11-24T01:49:08+08:00" level=info msg="HTTP控制台服务器已停止"
|
||||||
|
time="2025-11-24T01:49:08+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:49:08+08:00" level=info msg="规则自动更新已停止"
|
||||||
|
time="2025-11-24T01:49:08+08:00" level=info msg="所有服务已关闭"
|
||||||
|
time="2025-11-24T01:49:08+08:00" level=warning msg="日志系统已关闭"
|
||||||
|
time="2025-11-24T01:49:19+08:00" level=info msg="Shield计数数据加载成功"
|
||||||
|
time="2025-11-24T01:49:20+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:49:20+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:49:20+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:49:20+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:49:20+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:49:20+08:00" level=info msg="统计数据加载成功"
|
||||||
|
time="2025-11-24T01:49:20+08:00" level=info msg="DNS服务器已启动,监听端口: 53"
|
||||||
|
time="2025-11-24T01:49:20+08:00" level=info msg="HTTP控制台已启动,监听端口: 8080"
|
||||||
|
time="2025-11-24T01:49:20+08:00" level=info msg="DNS TCP服务器启动,监听端口: 53"
|
||||||
|
time="2025-11-24T01:49:20+08:00" level=info msg="规则自动更新已启动" interval=60
|
||||||
|
time="2025-11-24T01:49:20+08:00" level=info msg="启动Shield计数数据自动保存功能" file=./data/shield_stats.json interval=60
|
||||||
|
time="2025-11-24T01:49:20+08:00" level=info msg="DNS UDP服务器启动,监听端口: 53"
|
||||||
|
time="2025-11-24T01:49:20+08:00" level=info msg="HTTP控制台服务器启动,监听地址: 0.0.0.0:8080"
|
||||||
|
time="2025-11-24T01:49:20+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:49:21+08:00" level=debug msg="接收到DNS查询" client="10.35.10.11:63690" domain=pull-hls-q6.douyincdn.com type=1
|
||||||
|
time="2025-11-24T01:49:21+08:00" level=debug msg="DNS查询成功" domain=pull-hls-q6.douyincdn.com rtt=8.078025ms server="223.5.5.5:53"
|
||||||
|
time="2025-11-24T01:50:20+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:50:20+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:50:20+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:50:20+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 452, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:50:20+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:51:20+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:51:20+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:51:20+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-Filters/raw/branch/main/hosts/adaway.txt"
|
||||||
|
time="2025-11-24T01:51:20+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:51:20+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt"
|
||||||
|
time="2025-11-24T01:51:20+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 901, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:51:20+08:00" level=info msg="自动更新规则成功"
|
||||||
|
time="2025-11-24T01:51:20+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:52:20+08:00" level=info msg="开始自动更新规则"
|
||||||
|
time="2025-11-24T01:52:20+08:00" level=info msg="Shield计数数据保存成功"
|
||||||
|
time="2025-11-24T01:52:20+08:00" level=info msg="从缓存加载远程规则" url="https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt"
|
||||||
|
time="2025-11-24T01:52:21+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:52:21+08:00" level=info msg="规则加载完成,域名规则: 86449, 排除规则: 977, 正则规则: 457, hosts规则: 5"
|
||||||
|
time="2025-11-24T01:52:21+08:00" level=info msg="自动更新规则成功"
|
||||||
|
|||||||
@@ -339,22 +339,14 @@ func (s *Server) handleQuery(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查域名是否被屏蔽
|
// 获取域名屏蔽的详细信息
|
||||||
blocked := s.shieldManager.IsBlocked(domain)
|
blockDetails := s.shieldManager.CheckDomainBlockDetails(domain)
|
||||||
|
|
||||||
// 检查hosts文件是否有匹配
|
// 添加时间戳
|
||||||
hostsIP, hasHosts := s.shieldManager.GetHostsIP(domain)
|
blockDetails["timestamp"] = time.Now()
|
||||||
|
|
||||||
result := map[string]interface{}{
|
|
||||||
"domain": domain,
|
|
||||||
"blocked": blocked,
|
|
||||||
"hasHosts": hasHosts,
|
|
||||||
"hostsIP": hostsIP,
|
|
||||||
"timestamp": time.Now(),
|
|
||||||
}
|
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
json.NewEncoder(w).Encode(result)
|
json.NewEncoder(w).Encode(blockDetails)
|
||||||
}
|
}
|
||||||
|
|
||||||
// handleStatus 处理系统状态请求
|
// handleStatus 处理系统状态请求
|
||||||
|
|||||||
@@ -438,7 +438,8 @@ func (m *ShieldManager) addRegexRule(re *regexp.Regexp, original string, block b
|
|||||||
}
|
}
|
||||||
|
|
||||||
// IsBlocked 检查域名是否被屏蔽
|
// IsBlocked 检查域名是否被屏蔽
|
||||||
func (m *ShieldManager) IsBlocked(domain string) bool {
|
// CheckDomainBlockDetails 检查域名是否被屏蔽,并返回详细信息
|
||||||
|
func (m *ShieldManager) CheckDomainBlockDetails(domain string) map[string]interface{} {
|
||||||
m.rulesMutex.RLock()
|
m.rulesMutex.RLock()
|
||||||
defer m.rulesMutex.RUnlock()
|
defer m.rulesMutex.RUnlock()
|
||||||
|
|
||||||
@@ -448,10 +449,30 @@ func (m *ShieldManager) IsBlocked(domain string) bool {
|
|||||||
domain = parts[0]
|
domain = parts[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
// 首先检查排除规则(优先级最高)
|
result := map[string]interface{}{
|
||||||
|
"domain": domain,
|
||||||
|
"blocked": false,
|
||||||
|
"blockRule": "",
|
||||||
|
"blockRuleType": "",
|
||||||
|
"excluded": false,
|
||||||
|
"excludeRule": "",
|
||||||
|
"excludeRuleType": "",
|
||||||
|
"hasHosts": false,
|
||||||
|
"hostsIP": "",
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查hosts记录
|
||||||
|
hostsIP, hasHosts := m.GetHostsIP(domain)
|
||||||
|
result["hasHosts"] = hasHosts
|
||||||
|
result["hostsIP"] = hostsIP
|
||||||
|
|
||||||
|
// 检查排除规则(优先级最高)
|
||||||
// 检查域名排除规则
|
// 检查域名排除规则
|
||||||
if m.domainExceptions[domain] {
|
if m.domainExceptions[domain] {
|
||||||
return false
|
result["excluded"] = true
|
||||||
|
result["excludeRule"] = domain
|
||||||
|
result["excludeRuleType"] = "exact_domain"
|
||||||
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查子域名排除规则
|
// 检查子域名排除规则
|
||||||
@@ -459,21 +480,30 @@ func (m *ShieldManager) IsBlocked(domain string) bool {
|
|||||||
for i := 0; i < len(parts)-1; i++ {
|
for i := 0; i < len(parts)-1; i++ {
|
||||||
subdomain := strings.Join(parts[i:], ".")
|
subdomain := strings.Join(parts[i:], ".")
|
||||||
if m.domainExceptions[subdomain] {
|
if m.domainExceptions[subdomain] {
|
||||||
return false
|
result["excluded"] = true
|
||||||
|
result["excludeRule"] = subdomain
|
||||||
|
result["excludeRuleType"] = "subdomain"
|
||||||
|
return result
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查正则表达式排除规则
|
// 检查正则表达式排除规则
|
||||||
for _, re := range m.regexExceptions {
|
for _, re := range m.regexExceptions {
|
||||||
if re.pattern.MatchString(domain) {
|
if re.pattern.MatchString(domain) {
|
||||||
return false
|
result["excluded"] = true
|
||||||
|
result["excludeRule"] = re.original
|
||||||
|
result["excludeRuleType"] = "regex"
|
||||||
|
return result
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 然后检查阻止规则
|
// 检查阻止规则
|
||||||
// 检查精确域名匹配
|
// 检查精确域名匹配
|
||||||
if m.domainRules[domain] {
|
if m.domainRules[domain] {
|
||||||
return true
|
result["blocked"] = true
|
||||||
|
result["blockRule"] = domain
|
||||||
|
result["blockRuleType"] = "exact_domain"
|
||||||
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查子域名匹配(AdGuardHome风格)
|
// 检查子域名匹配(AdGuardHome风格)
|
||||||
@@ -481,18 +511,30 @@ func (m *ShieldManager) IsBlocked(domain string) bool {
|
|||||||
for i := 0; i < len(parts)-1; i++ {
|
for i := 0; i < len(parts)-1; i++ {
|
||||||
subdomain := strings.Join(parts[i:], ".")
|
subdomain := strings.Join(parts[i:], ".")
|
||||||
if m.domainRules[subdomain] {
|
if m.domainRules[subdomain] {
|
||||||
return true
|
result["blocked"] = true
|
||||||
|
result["blockRule"] = subdomain
|
||||||
|
result["blockRuleType"] = "subdomain"
|
||||||
|
return result
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查正则表达式匹配
|
// 检查正则表达式匹配
|
||||||
for _, re := range m.regexRules {
|
for _, re := range m.regexRules {
|
||||||
if re.pattern.MatchString(domain) {
|
if re.pattern.MatchString(domain) {
|
||||||
return true
|
result["blocked"] = true
|
||||||
|
result["blockRule"] = re.original
|
||||||
|
result["blockRuleType"] = "regex"
|
||||||
|
return result
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsBlocked 检查域名是否被屏蔽(保留原有方法以保持兼容性)
|
||||||
|
func (m *ShieldManager) IsBlocked(domain string) bool {
|
||||||
|
details := m.CheckDomainBlockDetails(domain)
|
||||||
|
return details["blocked"].(bool)
|
||||||
}
|
}
|
||||||
|
|
||||||
// RecordBlockedDomain 记录被屏蔽的域名
|
// RecordBlockedDomain 记录被屏蔽的域名
|
||||||
|
|||||||
760
static/css/style.css
Normal file
760
static/css/style.css
Normal file
@@ -0,0 +1,760 @@
|
|||||||
|
/* 全局样式重置 */
|
||||||
|
* {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
html, body {
|
||||||
|
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||||
|
background-color: #f5f7fa;
|
||||||
|
color: #333;
|
||||||
|
line-height: 1.6;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 主容器样式 */
|
||||||
|
.container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
min-height: 100vh;
|
||||||
|
width: 100%;
|
||||||
|
max-width: 100%;
|
||||||
|
background-color: #fff;
|
||||||
|
box-shadow: 0 0 20px rgba(0, 0, 0, 0.05);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 头部样式 */
|
||||||
|
header.header-container {
|
||||||
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||||
|
color: white;
|
||||||
|
padding: 1.5rem;
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
box-sizing: border-box;
|
||||||
|
position: relative;
|
||||||
|
z-index: 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo i {
|
||||||
|
margin-right: 1rem;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo h1 {
|
||||||
|
font-size: 1.8rem;
|
||||||
|
margin: 0;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
header p {
|
||||||
|
font-size: 1rem;
|
||||||
|
opacity: 0.9;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 主体布局容器 */
|
||||||
|
.main-layout {
|
||||||
|
display: flex;
|
||||||
|
flex: 1;
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 侧边栏样式 */
|
||||||
|
.sidebar {
|
||||||
|
width: 250px;
|
||||||
|
background-color: #2c3e50;
|
||||||
|
color: white;
|
||||||
|
padding: 1rem 0;
|
||||||
|
flex-shrink: 0;
|
||||||
|
overflow-y: auto;
|
||||||
|
height: calc(100vh - 130px); /* 减去header的高度 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-menu {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-item {
|
||||||
|
padding: 1rem 1.5rem;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-item:hover {
|
||||||
|
background-color: #34495e;
|
||||||
|
padding-left: 1.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-item.active {
|
||||||
|
background-color: #3498db;
|
||||||
|
border-left: 4px solid #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-item i {
|
||||||
|
margin-right: 1rem;
|
||||||
|
width: 20px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 主内容区域样式 */
|
||||||
|
.content {
|
||||||
|
flex: 1;
|
||||||
|
padding: 1rem;
|
||||||
|
overflow-y: auto;
|
||||||
|
background-color: #f8f9fa;
|
||||||
|
min-width: 0; /* 防止flex子元素溢出 */
|
||||||
|
height: calc(100vh - 130px); /* 减去header的高度 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 面板样式 */
|
||||||
|
.panel {
|
||||||
|
display: none;
|
||||||
|
background-color: white;
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 1.5rem;
|
||||||
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
|
||||||
|
box-sizing: border-box;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel.active {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
padding-bottom: 1rem;
|
||||||
|
border-bottom: 1px solid #e9ecef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-header h2 {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
color: #2c3e50;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 状态指示器 */
|
||||||
|
.status-indicator {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status-dot {
|
||||||
|
width: 10px;
|
||||||
|
height: 10px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background-color: #e74c3c;
|
||||||
|
margin-right: 8px;
|
||||||
|
animation: pulse 2s infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status-dot.connected {
|
||||||
|
background-color: #2ecc71;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes pulse {
|
||||||
|
0% {
|
||||||
|
transform: scale(1);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
transform: scale(1.1);
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
transform: scale(1);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 按钮样式 */
|
||||||
|
.btn {
|
||||||
|
padding: 0.5rem 1rem;
|
||||||
|
border: none;
|
||||||
|
border-radius: 4px;
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
font-weight: 500;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn i {
|
||||||
|
margin-right: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-primary {
|
||||||
|
background-color: #3498db;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-primary:hover {
|
||||||
|
background-color: #2980b9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-secondary {
|
||||||
|
background-color: #7f8c8d;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-secondary:hover {
|
||||||
|
background-color: #6c757d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-success {
|
||||||
|
background-color: #2ecc71;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-success:hover {
|
||||||
|
background-color: #27ae60;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-danger {
|
||||||
|
background-color: #e74c3c;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-danger:hover {
|
||||||
|
background-color: #c0392b;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-warning {
|
||||||
|
background-color: #f39c12;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-warning:hover {
|
||||||
|
background-color: #e67e22;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-sm {
|
||||||
|
padding: 0.375rem 0.75rem;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-block {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 统计卡片网格 */
|
||||||
|
.stats-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
|
||||||
|
gap: 1.5rem;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stat-card {
|
||||||
|
background-color: white;
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 1.5rem;
|
||||||
|
text-align: center;
|
||||||
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
|
||||||
|
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stat-card:hover {
|
||||||
|
transform: translateY(-5px);
|
||||||
|
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.stat-card i {
|
||||||
|
font-size: 2rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
color: #3498db;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stat-value {
|
||||||
|
font-size: 2rem;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
color: #2c3e50;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stat-label {
|
||||||
|
font-size: 0.9rem;
|
||||||
|
color: #7f8c8d;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 图表容器 */
|
||||||
|
.charts-container {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
||||||
|
gap: 1.5rem;
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.chart-card {
|
||||||
|
background-color: white;
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 1.5rem;
|
||||||
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
|
||||||
|
}
|
||||||
|
|
||||||
|
.chart-card h3 {
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
color: #2c3e50;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 表格容器 */
|
||||||
|
.tables-container {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
||||||
|
gap: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-card {
|
||||||
|
background-color: white;
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 1.5rem;
|
||||||
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-card h3 {
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
color: #2c3e50;
|
||||||
|
}
|
||||||
|
/* 表格样式 */
|
||||||
|
.table-wrapper {
|
||||||
|
overflow-x: auto;
|
||||||
|
border-radius: 8px;
|
||||||
|
background-color: #ffffff;
|
||||||
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||||
|
margin-bottom: 16px;
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
width: 100%;
|
||||||
|
border-collapse: collapse;
|
||||||
|
background-color: #ffffff;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
th, td {
|
||||||
|
padding: 0.75rem 1rem;
|
||||||
|
text-align: left;
|
||||||
|
border-bottom: 1px solid #e9ecef;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
background-color: #f8f9fa;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #2c3e50;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.loading {
|
||||||
|
text-align: center;
|
||||||
|
color: #7f8c8d;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr:hover {
|
||||||
|
background-color: #f8f9fa;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 分页控件样式 */
|
||||||
|
.pagination-controls {
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-radius: 8px;
|
||||||
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||||
|
padding: 16px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination-info {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination-buttons {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 16px;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.items-per-page {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.items-per-page select {
|
||||||
|
padding: 6px 12px;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
border-radius: 4px;
|
||||||
|
background-color: #fff;
|
||||||
|
font-size: 14px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-buttons {
|
||||||
|
display: flex;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn:disabled {
|
||||||
|
opacity: 0.5;
|
||||||
|
cursor: not-allowed;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 规则内容样式优化 */
|
||||||
|
.rule-content {
|
||||||
|
max-width: 600px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rule-content pre {
|
||||||
|
margin: 0;
|
||||||
|
font-family: inherit;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-break: break-all;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 表单样式 */
|
||||||
|
.form-group {
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-group label {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #2c3e50;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-group input,
|
||||||
|
.form-group select {
|
||||||
|
width: 100%;
|
||||||
|
padding: 0.75rem;
|
||||||
|
border: 1px solid #ced4da;
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 1rem;
|
||||||
|
transition: border-color 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-group input:focus,
|
||||||
|
.form-group select:focus {
|
||||||
|
outline: none;
|
||||||
|
border-color: #3498db;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-row {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
||||||
|
gap: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 管理区域样式 */
|
||||||
|
.rules-management,
|
||||||
|
.hosts-management,
|
||||||
|
.blacklists-management {
|
||||||
|
margin-top: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rules-input,
|
||||||
|
.rules-filter,
|
||||||
|
.hosts-filter {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr auto;
|
||||||
|
gap: 1rem;
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rules-input {
|
||||||
|
grid-template-columns: 1fr auto auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 查询表单 */
|
||||||
|
.query-form .form-group {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr auto;
|
||||||
|
gap: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 查询结果样式 */
|
||||||
|
.query-result {
|
||||||
|
margin-top: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#query-result-container {
|
||||||
|
background-color: #f8f9fa;
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#query-result-container.hidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.result-header {
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
border-bottom: 1px solid #e9ecef;
|
||||||
|
padding-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.result-header h3 {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
color: #2c3e50;
|
||||||
|
}
|
||||||
|
|
||||||
|
.result-item {
|
||||||
|
padding: 0.5rem 0;
|
||||||
|
border-bottom: 1px solid #e9ecef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.result-item:last-child {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 配置表单样式 */
|
||||||
|
.config-form {
|
||||||
|
margin-top: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.config-section {
|
||||||
|
background-color: #f8f9fa;
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 1.5rem;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.config-section h3 {
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
color: #2c3e50;
|
||||||
|
}
|
||||||
|
|
||||||
|
.config-actions {
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 通知组件 */
|
||||||
|
.notification {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 20px;
|
||||||
|
right: 20px;
|
||||||
|
background-color: #3498db;
|
||||||
|
color: white;
|
||||||
|
padding: 1rem 1.5rem;
|
||||||
|
border-radius: 4px;
|
||||||
|
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
|
||||||
|
z-index: 1000;
|
||||||
|
transform: translateX(100%);
|
||||||
|
transition: transform 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification.show {
|
||||||
|
transform: translateX(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification.success {
|
||||||
|
background-color: #2ecc71;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification.error {
|
||||||
|
background-color: #e74c3c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification.warning {
|
||||||
|
background-color: #f39c12;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-content {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-content i {
|
||||||
|
margin-right: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 大屏幕优化 */
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
.container {
|
||||||
|
max-width: 1400px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 平板设备 */
|
||||||
|
@media (max-width: 1024px) {
|
||||||
|
.content {
|
||||||
|
padding: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stats-grid,
|
||||||
|
.charts-container {
|
||||||
|
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
|
||||||
|
}
|
||||||
|
|
||||||
|
.tables-container {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 移动设备 */
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.container {
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar {
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
max-height: 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-menu {
|
||||||
|
display: flex;
|
||||||
|
overflow-x: auto;
|
||||||
|
padding-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-item {
|
||||||
|
white-space: nowrap;
|
||||||
|
padding: 0.75rem 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stats-grid,
|
||||||
|
.charts-container,
|
||||||
|
.tables-container {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rules-input,
|
||||||
|
.rules-filter,
|
||||||
|
.hosts-filter {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-row {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
.query-form .form-group {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel {
|
||||||
|
padding: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination-controls {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: stretch;
|
||||||
|
gap: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination-buttons {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: stretch;
|
||||||
|
gap: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-buttons {
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 小屏幕移动设备 */
|
||||||
|
@media (max-width: 480px) {
|
||||||
|
header {
|
||||||
|
padding: 1.5rem 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo h1 {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
padding: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-header {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
gap: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stat-card {
|
||||||
|
padding: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stat-value {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.chart-card {
|
||||||
|
padding: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
th, td {
|
||||||
|
padding: 0.5rem;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 加载动画 */
|
||||||
|
.loading {
|
||||||
|
display: inline-block;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
border: 3px solid #f3f3f3;
|
||||||
|
border-top: 3px solid #3498db;
|
||||||
|
border-radius: 50%;
|
||||||
|
animation: spin 1s linear infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes spin {
|
||||||
|
0% { transform: rotate(0deg); }
|
||||||
|
100% { transform: rotate(360deg); }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 确保按钮在不同容器中保持一致宽度 */
|
||||||
|
.w-full {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 确保输入和按钮在表单组中有合适的高度对齐 */
|
||||||
|
.form-group button {
|
||||||
|
height: auto;
|
||||||
|
align-self: flex-end;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 优化表格中的操作按钮间距 */
|
||||||
|
.actions-cell {
|
||||||
|
display: flex;
|
||||||
|
gap: 0.5rem;
|
||||||
|
}
|
||||||
2659
static/index.html
2659
static/index.html
File diff suppressed because it is too large
Load Diff
1190
static/index.html.bak
Normal file
1190
static/index.html.bak
Normal file
File diff suppressed because it is too large
Load Diff
252
static/js/app.js
Normal file
252
static/js/app.js
Normal file
@@ -0,0 +1,252 @@
|
|||||||
|
// 全局配置
|
||||||
|
const API_BASE_URL = '/api';
|
||||||
|
|
||||||
|
// DOM 加载完成后执行
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
// 初始化面板切换
|
||||||
|
initPanelNavigation();
|
||||||
|
|
||||||
|
// 初始化通知组件
|
||||||
|
initNotification();
|
||||||
|
|
||||||
|
// 加载初始数据
|
||||||
|
loadInitialData();
|
||||||
|
|
||||||
|
// 定时更新数据
|
||||||
|
setInterval(loadInitialData, 60000); // 每分钟更新一次
|
||||||
|
});
|
||||||
|
|
||||||
|
// 初始化面板导航
|
||||||
|
function initPanelNavigation() {
|
||||||
|
const navItems = document.querySelectorAll('.nav-item');
|
||||||
|
const panels = document.querySelectorAll('.panel');
|
||||||
|
|
||||||
|
navItems.forEach(item => {
|
||||||
|
item.addEventListener('click', function() {
|
||||||
|
// 移除所有活动类
|
||||||
|
navItems.forEach(nav => nav.classList.remove('active'));
|
||||||
|
panels.forEach(panel => panel.classList.remove('active'));
|
||||||
|
|
||||||
|
// 添加当前活动类
|
||||||
|
this.classList.add('active');
|
||||||
|
const target = this.getAttribute('data-target');
|
||||||
|
document.getElementById(target).classList.add('active');
|
||||||
|
|
||||||
|
// 面板激活时执行相应的初始化函数
|
||||||
|
if (window[`init${target.charAt(0).toUpperCase() + target.slice(1)}Panel`]) {
|
||||||
|
window[`init${target.charAt(0).toUpperCase() + target.slice(1)}Panel`]();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化通知组件
|
||||||
|
function initNotification() {
|
||||||
|
window.showNotification = function(message, type = 'info') {
|
||||||
|
const notification = document.getElementById('notification');
|
||||||
|
const notificationMessage = document.getElementById('notification-message');
|
||||||
|
|
||||||
|
// 设置消息和类型
|
||||||
|
notificationMessage.textContent = message;
|
||||||
|
notification.className = 'notification show ' + type;
|
||||||
|
|
||||||
|
// 自动关闭
|
||||||
|
setTimeout(() => {
|
||||||
|
notification.classList.remove('show');
|
||||||
|
}, 3000);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// 加载初始数据
|
||||||
|
function loadInitialData() {
|
||||||
|
// 加载服务器状态
|
||||||
|
fetch(`${API_BASE_URL}/status`)
|
||||||
|
.then(response => response.json())
|
||||||
|
.then(data => {
|
||||||
|
// 更新服务器状态指示器
|
||||||
|
const statusDot = document.querySelector('.status-dot');
|
||||||
|
const serverStatus = document.getElementById('server-status');
|
||||||
|
|
||||||
|
if (data && data.status === 'running') {
|
||||||
|
statusDot.classList.add('connected');
|
||||||
|
serverStatus.textContent = '运行中';
|
||||||
|
} else {
|
||||||
|
statusDot.classList.remove('connected');
|
||||||
|
serverStatus.textContent = '离线';
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('获取服务器状态失败:', error);
|
||||||
|
|
||||||
|
// 更新状态为离线
|
||||||
|
const statusDot = document.querySelector('.status-dot');
|
||||||
|
const serverStatus = document.getElementById('server-status');
|
||||||
|
statusDot.classList.remove('connected');
|
||||||
|
serverStatus.textContent = '离线';
|
||||||
|
});
|
||||||
|
|
||||||
|
// 加载统计数据
|
||||||
|
fetch(`${API_BASE_URL}/stats`)
|
||||||
|
.then(response => response.json())
|
||||||
|
.then(data => {
|
||||||
|
// 更新统计数据
|
||||||
|
if (data && data.dns) {
|
||||||
|
updateStatCards(data.dns);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('获取统计数据失败:', error);
|
||||||
|
window.showNotification('获取统计数据失败', 'error');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新统计卡片数据
|
||||||
|
function updateStatCards(stats) {
|
||||||
|
const statElements = {
|
||||||
|
'blocked-count': stats.blocked || 0,
|
||||||
|
'allowed-count': stats.allowed || 0,
|
||||||
|
'error-count': stats.error || 0,
|
||||||
|
'total-queries': stats.totalQueries || 0,
|
||||||
|
'rules-count': stats.rulesCount || 0,
|
||||||
|
'hosts-count': stats.hostsCount || 0
|
||||||
|
};
|
||||||
|
|
||||||
|
for (const [id, value] of Object.entries(statElements)) {
|
||||||
|
const element = document.getElementById(id);
|
||||||
|
if (element) {
|
||||||
|
element.textContent = formatNumber(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 通用API请求函数
|
||||||
|
function apiRequest(endpoint, method = 'GET', data = null) {
|
||||||
|
const headers = {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
};
|
||||||
|
|
||||||
|
const config = {
|
||||||
|
method,
|
||||||
|
headers
|
||||||
|
};
|
||||||
|
|
||||||
|
if (data && (method === 'POST' || method === 'PUT' || method === 'DELETE')) {
|
||||||
|
config.body = JSON.stringify(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
return fetch(`${API_BASE_URL}${endpoint}`, config)
|
||||||
|
.then(response => {
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error(`HTTP error! status: ${response.status}`);
|
||||||
|
}
|
||||||
|
return response.json();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 数字格式化函数
|
||||||
|
function formatNumber(num) {
|
||||||
|
if (num >= 1000000) {
|
||||||
|
return (num / 1000000).toFixed(1) + 'M';
|
||||||
|
} else if (num >= 1000) {
|
||||||
|
return (num / 1000).toFixed(1) + 'K';
|
||||||
|
}
|
||||||
|
return num.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 确认对话框函数
|
||||||
|
function confirmAction(message, onConfirm) {
|
||||||
|
if (confirm(message)) {
|
||||||
|
onConfirm();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 加载状态函数
|
||||||
|
function showLoading(element) {
|
||||||
|
if (element) {
|
||||||
|
element.innerHTML = '<td colspan="100%" class="loading">加载中...</td>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 错误状态函数
|
||||||
|
function showError(element, message) {
|
||||||
|
if (element) {
|
||||||
|
element.innerHTML = `<td colspan="100%" style="color: #e74c3c;">${message}</td>`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 空状态函数
|
||||||
|
function showEmpty(element, message) {
|
||||||
|
if (element) {
|
||||||
|
element.innerHTML = `<td colspan="100%" style="color: #7f8c8d; font-style: italic;">${message}</td>`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 表格排序功能
|
||||||
|
function initTableSort(tableId) {
|
||||||
|
const table = document.getElementById(tableId);
|
||||||
|
if (!table) return;
|
||||||
|
|
||||||
|
const headers = table.querySelectorAll('thead th');
|
||||||
|
headers.forEach(header => {
|
||||||
|
header.addEventListener('click', function() {
|
||||||
|
const columnIndex = Array.from(headers).indexOf(this);
|
||||||
|
const isAscending = this.getAttribute('data-sort') !== 'asc';
|
||||||
|
|
||||||
|
// 重置所有标题
|
||||||
|
headers.forEach(h => h.setAttribute('data-sort', ''));
|
||||||
|
this.setAttribute('data-sort', isAscending ? 'asc' : 'desc');
|
||||||
|
|
||||||
|
// 排序行
|
||||||
|
sortTable(table, columnIndex, isAscending);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 表格排序实现
|
||||||
|
function sortTable(table, columnIndex, isAscending) {
|
||||||
|
const tbody = table.querySelector('tbody');
|
||||||
|
const rows = Array.from(tbody.querySelectorAll('tr'));
|
||||||
|
|
||||||
|
// 排序行
|
||||||
|
rows.sort((a, b) => {
|
||||||
|
const aValue = a.cells[columnIndex].textContent.trim();
|
||||||
|
const bValue = b.cells[columnIndex].textContent.trim();
|
||||||
|
|
||||||
|
// 尝试数字排序
|
||||||
|
const aNum = parseFloat(aValue);
|
||||||
|
const bNum = parseFloat(bValue);
|
||||||
|
|
||||||
|
if (!isNaN(aNum) && !isNaN(bNum)) {
|
||||||
|
return isAscending ? aNum - bNum : bNum - aNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 字符串排序
|
||||||
|
return isAscending
|
||||||
|
? aValue.localeCompare(bValue)
|
||||||
|
: bValue.localeCompare(aValue);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 重新添加行
|
||||||
|
rows.forEach(row => tbody.appendChild(row));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 搜索过滤功能
|
||||||
|
function initSearchFilter(inputId, tableId, columnIndex) {
|
||||||
|
const input = document.getElementById(inputId);
|
||||||
|
const table = document.getElementById(tableId);
|
||||||
|
|
||||||
|
if (!input || !table) return;
|
||||||
|
|
||||||
|
input.addEventListener('input', function() {
|
||||||
|
const filter = this.value.toLowerCase();
|
||||||
|
const rows = table.querySelectorAll('tbody tr');
|
||||||
|
|
||||||
|
rows.forEach(row => {
|
||||||
|
const cell = row.cells[columnIndex];
|
||||||
|
if (cell) {
|
||||||
|
const text = cell.textContent.toLowerCase();
|
||||||
|
row.style.display = text.includes(filter) ? '' : 'none';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
230
static/js/modules/blacklists.js
Normal file
230
static/js/modules/blacklists.js
Normal file
@@ -0,0 +1,230 @@
|
|||||||
|
// 初始化远程黑名单面板
|
||||||
|
function initBlacklistsPanel() {
|
||||||
|
// 加载远程黑名单列表
|
||||||
|
loadBlacklists();
|
||||||
|
|
||||||
|
// 初始化事件监听器
|
||||||
|
initBlacklistsEventListeners();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化事件监听器
|
||||||
|
function initBlacklistsEventListeners() {
|
||||||
|
// 添加黑名单按钮
|
||||||
|
document.getElementById('add-blacklist').addEventListener('click', addBlacklist);
|
||||||
|
|
||||||
|
// 更新所有黑名单按钮
|
||||||
|
document.getElementById('update-all-blacklists').addEventListener('click', updateAllBlacklists);
|
||||||
|
|
||||||
|
// 按Enter键添加黑名单
|
||||||
|
document.getElementById('blacklist-url').addEventListener('keypress', function(e) {
|
||||||
|
if (e.key === 'Enter') {
|
||||||
|
addBlacklist();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 加载远程黑名单列表
|
||||||
|
function loadBlacklists() {
|
||||||
|
const tbody = document.getElementById('blacklists-table').querySelector('tbody');
|
||||||
|
showLoading(tbody);
|
||||||
|
|
||||||
|
apiRequest('/shield')
|
||||||
|
.then(data => {
|
||||||
|
renderBlacklists(data);
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('获取远程黑名单列表失败:', error);
|
||||||
|
showError(tbody, '获取远程黑名单列表失败');
|
||||||
|
window.showNotification('获取远程黑名单列表失败', 'error');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 渲染远程黑名单表格
|
||||||
|
function renderBlacklists(blacklists) {
|
||||||
|
const tbody = document.getElementById('blacklists-table').querySelector('tbody');
|
||||||
|
if (!tbody) return;
|
||||||
|
|
||||||
|
if (!blacklists || blacklists.length === 0) {
|
||||||
|
showEmpty(tbody, '暂无远程黑名单');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
tbody.innerHTML = '';
|
||||||
|
|
||||||
|
blacklists.forEach(list => {
|
||||||
|
addBlacklistToTable(list);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 初始化表格排序
|
||||||
|
initTableSort('blacklists-table');
|
||||||
|
|
||||||
|
// 初始化操作按钮监听器
|
||||||
|
initBlacklistsActionListeners();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加黑名单到表格
|
||||||
|
function addBlacklistToTable(list) {
|
||||||
|
const tbody = document.getElementById('blacklists-table').querySelector('tbody');
|
||||||
|
const row = document.createElement('tr');
|
||||||
|
|
||||||
|
const statusClass = list.status === 'success' ? 'status-success' :
|
||||||
|
list.status === 'error' ? 'status-error' : 'status-pending';
|
||||||
|
|
||||||
|
const statusText = list.status === 'success' ? '正常' :
|
||||||
|
list.status === 'error' ? '错误' : '等待中';
|
||||||
|
|
||||||
|
const lastUpdate = list.lastUpdate ? new Date(list.lastUpdate).toLocaleString() : '从未';
|
||||||
|
|
||||||
|
row.innerHTML = `
|
||||||
|
<td>${list.name}</td>
|
||||||
|
<td>${list.url}</td>
|
||||||
|
<td>
|
||||||
|
<span class="status-badge ${statusClass}">${statusText}</span>
|
||||||
|
</td>
|
||||||
|
<td>${list.rulesCount || 0}</td>
|
||||||
|
<td>${lastUpdate}</td>
|
||||||
|
<td class="actions-cell">
|
||||||
|
<button class="btn btn-primary btn-sm update-blacklist" data-id="${list.id}">
|
||||||
|
<i class="fas fa-sync-alt"></i> 更新
|
||||||
|
</button>
|
||||||
|
<button class="btn btn-danger btn-sm delete-blacklist" data-id="${list.id}">
|
||||||
|
<i class="fas fa-trash-alt"></i> 删除
|
||||||
|
</button>
|
||||||
|
</td>
|
||||||
|
`;
|
||||||
|
|
||||||
|
tbody.appendChild(row);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加远程黑名单
|
||||||
|
function addBlacklist() {
|
||||||
|
const nameInput = document.getElementById('blacklist-name');
|
||||||
|
const urlInput = document.getElementById('blacklist-url');
|
||||||
|
|
||||||
|
const name = nameInput.value.trim();
|
||||||
|
const url = urlInput.value.trim();
|
||||||
|
|
||||||
|
if (!name) {
|
||||||
|
window.showNotification('请输入黑名单名称', 'warning');
|
||||||
|
nameInput.focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!url) {
|
||||||
|
window.showNotification('请输入黑名单URL', 'warning');
|
||||||
|
urlInput.focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 简单的URL格式验证
|
||||||
|
if (!isValidUrl(url)) {
|
||||||
|
window.showNotification('请输入有效的URL', 'warning');
|
||||||
|
urlInput.focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
apiRequest('/shield', 'POST', { name: name, url: url })
|
||||||
|
.then(data => {
|
||||||
|
if (data.success) {
|
||||||
|
window.showNotification('远程黑名单添加成功', 'success');
|
||||||
|
nameInput.value = '';
|
||||||
|
urlInput.value = '';
|
||||||
|
loadBlacklists();
|
||||||
|
} else {
|
||||||
|
window.showNotification(`添加失败: ${data.message || '未知错误'}`, 'error');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('添加远程黑名单失败:', error);
|
||||||
|
window.showNotification('添加远程黑名单失败', 'error');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新远程黑名单
|
||||||
|
function updateBlacklist(id) {
|
||||||
|
apiRequest(`/shield/${id}/update`, 'POST')
|
||||||
|
.then(data => {
|
||||||
|
if (data.success) {
|
||||||
|
window.showNotification('远程黑名单更新成功', 'success');
|
||||||
|
loadBlacklists();
|
||||||
|
} else {
|
||||||
|
window.showNotification(`更新失败: ${data.message || '未知错误'}`, 'error');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('更新远程黑名单失败:', error);
|
||||||
|
window.showNotification('更新远程黑名单失败', 'error');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新所有远程黑名单
|
||||||
|
function updateAllBlacklists() {
|
||||||
|
confirmAction(
|
||||||
|
'确定要更新所有远程黑名单吗?这可能需要一些时间。',
|
||||||
|
() => {
|
||||||
|
apiRequest('/shield/update-all', 'POST')
|
||||||
|
.then(data => {
|
||||||
|
if (data.success) {
|
||||||
|
window.showNotification('所有远程黑名单更新成功', 'success');
|
||||||
|
loadBlacklists();
|
||||||
|
} else {
|
||||||
|
window.showNotification(`更新失败: ${data.message || '未知错误'}`, 'error');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('更新所有远程黑名单失败:', error);
|
||||||
|
window.showNotification('更新所有远程黑名单失败', 'error');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除远程黑名单
|
||||||
|
function deleteBlacklist(id) {
|
||||||
|
apiRequest(`/shield/${id}`, 'DELETE')
|
||||||
|
.then(data => {
|
||||||
|
if (data.success) {
|
||||||
|
window.showNotification('远程黑名单删除成功', 'success');
|
||||||
|
loadBlacklists();
|
||||||
|
} else {
|
||||||
|
window.showNotification(`删除失败: ${data.message || '未知错误'}`, 'error');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('删除远程黑名单失败:', error);
|
||||||
|
window.showNotification('删除远程黑名单失败', 'error');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 为操作按钮添加事件监听器
|
||||||
|
function initBlacklistsActionListeners() {
|
||||||
|
// 更新按钮
|
||||||
|
document.querySelectorAll('.update-blacklist').forEach(button => {
|
||||||
|
button.addEventListener('click', function() {
|
||||||
|
const id = this.getAttribute('data-id');
|
||||||
|
updateBlacklist(id);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// 删除按钮
|
||||||
|
document.querySelectorAll('.delete-blacklist').forEach(button => {
|
||||||
|
button.addEventListener('click', function() {
|
||||||
|
const id = this.getAttribute('data-id');
|
||||||
|
|
||||||
|
confirmAction(
|
||||||
|
'确定要删除这条远程黑名单吗?',
|
||||||
|
() => deleteBlacklist(id)
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 验证URL格式
|
||||||
|
function isValidUrl(url) {
|
||||||
|
try {
|
||||||
|
new URL(url);
|
||||||
|
return true;
|
||||||
|
} catch (e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
148
static/js/modules/config.js
Normal file
148
static/js/modules/config.js
Normal file
@@ -0,0 +1,148 @@
|
|||||||
|
// 初始化配置管理面板
|
||||||
|
function initConfigPanel() {
|
||||||
|
// 加载当前配置
|
||||||
|
loadConfig();
|
||||||
|
|
||||||
|
// 初始化事件监听器
|
||||||
|
initConfigEventListeners();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化事件监听器
|
||||||
|
function initConfigEventListeners() {
|
||||||
|
// 保存配置按钮
|
||||||
|
document.getElementById('save-config').addEventListener('click', saveConfig);
|
||||||
|
|
||||||
|
// 屏蔽方法变更
|
||||||
|
document.getElementById('block-method').addEventListener('change', updateCustomBlockIpVisibility);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 加载当前配置
|
||||||
|
function loadConfig() {
|
||||||
|
apiRequest('/config')
|
||||||
|
.then(config => {
|
||||||
|
renderConfig(config);
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('获取配置失败:', error);
|
||||||
|
window.showNotification('获取配置失败', 'error');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 渲染配置表单
|
||||||
|
function renderConfig(config) {
|
||||||
|
if (!config) return;
|
||||||
|
|
||||||
|
// 设置屏蔽方法
|
||||||
|
const blockMethodSelect = document.getElementById('block-method');
|
||||||
|
if (config.shield && config.shield.blockMethod) {
|
||||||
|
blockMethodSelect.value = config.shield.blockMethod;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置自定义屏蔽IP
|
||||||
|
const customBlockIpInput = document.getElementById('custom-block-ip');
|
||||||
|
if (config.shield && config.shield.customBlockIP) {
|
||||||
|
customBlockIpInput.value = config.shield.customBlockIP;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置远程规则更新间隔
|
||||||
|
const updateIntervalInput = document.getElementById('update-interval');
|
||||||
|
if (config.shield && config.shield.updateInterval) {
|
||||||
|
updateIntervalInput.value = config.shield.updateInterval;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新自定义屏蔽IP的可见性
|
||||||
|
updateCustomBlockIpVisibility();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新自定义屏蔽IP输入框的可见性
|
||||||
|
function updateCustomBlockIpVisibility() {
|
||||||
|
const blockMethod = document.getElementById('block-method').value;
|
||||||
|
const customBlockIpContainer = document.getElementById('custom-block-ip').closest('.form-group');
|
||||||
|
|
||||||
|
if (blockMethod === 'customIP') {
|
||||||
|
customBlockIpContainer.style.display = 'block';
|
||||||
|
} else {
|
||||||
|
customBlockIpContainer.style.display = 'none';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 保存配置
|
||||||
|
function saveConfig() {
|
||||||
|
// 收集表单数据
|
||||||
|
const configData = {
|
||||||
|
shield: {
|
||||||
|
blockMethod: document.getElementById('block-method').value,
|
||||||
|
updateInterval: parseInt(document.getElementById('update-interval').value)
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// 如果选择了自定义IP,添加到配置中
|
||||||
|
if (configData.shield.blockMethod === 'customIP') {
|
||||||
|
const customBlockIp = document.getElementById('custom-block-ip').value.trim();
|
||||||
|
|
||||||
|
// 验证自定义IP格式
|
||||||
|
if (!isValidIp(customBlockIp)) {
|
||||||
|
window.showNotification('请输入有效的自定义屏蔽IP', 'warning');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
configData.shield.customBlockIP = customBlockIp;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 验证更新间隔
|
||||||
|
if (isNaN(configData.shield.updateInterval) || configData.shield.updateInterval < 60) {
|
||||||
|
window.showNotification('更新间隔必须大于等于60秒', 'warning');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 保存配置
|
||||||
|
apiRequest('/config', 'PUT', configData)
|
||||||
|
.then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
window.showNotification('配置保存成功', 'success');
|
||||||
|
|
||||||
|
// 询问是否需要重启服务以应用配置
|
||||||
|
confirmAction(
|
||||||
|
'配置已保存。某些更改可能需要重启服务才能生效。是否现在重启服务?',
|
||||||
|
() => restartService()
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
window.showNotification(`保存失败: ${response.message || '未知错误'}`, 'error');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('保存配置失败:', error);
|
||||||
|
window.showNotification('保存配置失败', 'error');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 重启服务
|
||||||
|
function restartService() {
|
||||||
|
apiRequest('/service/restart', 'POST')
|
||||||
|
.then(response => {
|
||||||
|
if (response.success) {
|
||||||
|
window.showNotification('服务正在重启,请稍后刷新页面', 'success');
|
||||||
|
|
||||||
|
// 等待几秒后重新加载页面
|
||||||
|
setTimeout(() => {
|
||||||
|
location.reload();
|
||||||
|
}, 3000);
|
||||||
|
} else {
|
||||||
|
window.showNotification(`重启失败: ${response.message || '未知错误'}`, 'error');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('重启服务失败:', error);
|
||||||
|
// 重启服务可能会导致连接中断,这是正常的
|
||||||
|
window.showNotification('服务重启中,请手动刷新页面确认状态', 'info');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 验证IP地址格式
|
||||||
|
function isValidIp(ip) {
|
||||||
|
// 支持IPv4和IPv6简单验证
|
||||||
|
const ipv4Regex = /^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$/;
|
||||||
|
const ipv6Regex = /^([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}$/;
|
||||||
|
|
||||||
|
return ipv4Regex.test(ip) || ipv6Regex.test(ip);
|
||||||
|
}
|
||||||
246
static/js/modules/dashboard.js
Normal file
246
static/js/modules/dashboard.js
Normal file
@@ -0,0 +1,246 @@
|
|||||||
|
// 初始化仪表盘面板
|
||||||
|
function initDashboardPanel() {
|
||||||
|
// 加载统计数据
|
||||||
|
loadDashboardData();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 加载仪表盘数据
|
||||||
|
function loadDashboardData() {
|
||||||
|
// 加载24小时统计数据
|
||||||
|
loadHourlyStats();
|
||||||
|
|
||||||
|
// 加载请求类型分布
|
||||||
|
loadRequestsDistribution();
|
||||||
|
|
||||||
|
// 加载最常屏蔽的域名
|
||||||
|
loadTopBlockedDomains();
|
||||||
|
|
||||||
|
// 加载最常解析的域名
|
||||||
|
loadTopResolvedDomains();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 加载24小时统计数据
|
||||||
|
function loadHourlyStats() {
|
||||||
|
apiRequest('/api/hourly-stats')
|
||||||
|
.then(data => {
|
||||||
|
if (data && data.labels && data.data) {
|
||||||
|
// 只使用一组数据(假设是屏蔽请求数)
|
||||||
|
renderHourlyChart(data.labels, data.data, []);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('获取24小时统计失败:', error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 渲染24小时统计图表
|
||||||
|
function renderHourlyChart(hours, blocked, allowed) {
|
||||||
|
const ctx = document.getElementById('hourly-chart');
|
||||||
|
if (!ctx) return;
|
||||||
|
|
||||||
|
// 销毁现有图表
|
||||||
|
if (window.hourlyChart) {
|
||||||
|
window.hourlyChart.destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建新图表
|
||||||
|
window.hourlyChart = new Chart(ctx, {
|
||||||
|
type: 'line',
|
||||||
|
data: {
|
||||||
|
labels: hours,
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
label: '屏蔽请求',
|
||||||
|
data: blocked,
|
||||||
|
borderColor: '#e74c3c',
|
||||||
|
backgroundColor: 'rgba(231, 76, 60, 0.1)',
|
||||||
|
borderWidth: 2,
|
||||||
|
tension: 0.3,
|
||||||
|
fill: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '允许请求',
|
||||||
|
data: allowed,
|
||||||
|
borderColor: '#2ecc71',
|
||||||
|
backgroundColor: 'rgba(46, 204, 113, 0.1)',
|
||||||
|
borderWidth: 2,
|
||||||
|
tension: 0.3,
|
||||||
|
fill: true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
responsive: true,
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
scales: {
|
||||||
|
y: {
|
||||||
|
beginAtZero: true,
|
||||||
|
title: {
|
||||||
|
display: true,
|
||||||
|
text: '请求数'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
x: {
|
||||||
|
title: {
|
||||||
|
display: true,
|
||||||
|
text: '时间(小时)'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
position: 'top',
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
mode: 'index',
|
||||||
|
intersect: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 加载请求类型分布
|
||||||
|
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.Error || 0
|
||||||
|
];
|
||||||
|
renderRequestsPieChart(labels, requestData);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('获取请求类型分布失败:', error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 渲染请求类型饼图
|
||||||
|
function renderRequestsPieChart(labels, data) {
|
||||||
|
const ctx = document.getElementById('requests-pie-chart');
|
||||||
|
if (!ctx) return;
|
||||||
|
|
||||||
|
// 销毁现有图表
|
||||||
|
if (window.requestsPieChart) {
|
||||||
|
window.requestsPieChart.destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建新图表
|
||||||
|
window.requestsPieChart = new Chart(ctx, {
|
||||||
|
type: 'doughnut',
|
||||||
|
data: {
|
||||||
|
labels: labels,
|
||||||
|
datasets: [{
|
||||||
|
data: data,
|
||||||
|
backgroundColor: [
|
||||||
|
'#2ecc71', // 允许
|
||||||
|
'#e74c3c', // 屏蔽
|
||||||
|
'#f39c12', // 错误
|
||||||
|
'#9b59b6' // 其他
|
||||||
|
],
|
||||||
|
borderWidth: 2,
|
||||||
|
borderColor: '#fff'
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
responsive: true,
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
position: 'right',
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
callbacks: {
|
||||||
|
label: function(context) {
|
||||||
|
const label = context.label || '';
|
||||||
|
const value = context.raw || 0;
|
||||||
|
const total = context.dataset.data.reduce((a, b) => a + b, 0);
|
||||||
|
const percentage = ((value / total) * 100).toFixed(1);
|
||||||
|
return `${label}: ${value} (${percentage}%)`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
cutout: '60%'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 加载最常屏蔽的域名
|
||||||
|
function loadTopBlockedDomains() {
|
||||||
|
apiRequest('/api/top-blocked')
|
||||||
|
.then(data => {
|
||||||
|
renderTopBlockedDomains(data);
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('获取最常屏蔽域名失败:', error);
|
||||||
|
showError(document.getElementById('top-blocked-table').querySelector('tbody'), '获取数据失败');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 渲染最常屏蔽的域名表格
|
||||||
|
function renderTopBlockedDomains(domains) {
|
||||||
|
const tbody = document.getElementById('top-blocked-table').querySelector('tbody');
|
||||||
|
if (!tbody) return;
|
||||||
|
|
||||||
|
if (!domains || domains.length === 0) {
|
||||||
|
showEmpty(tbody, '暂无屏蔽记录');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
tbody.innerHTML = '';
|
||||||
|
|
||||||
|
domains.forEach((domain, index) => {
|
||||||
|
const row = document.createElement('tr');
|
||||||
|
row.innerHTML = `
|
||||||
|
<td>${domain.domain}</td>
|
||||||
|
<td>${formatNumber(domain.count)}</td>
|
||||||
|
`;
|
||||||
|
tbody.appendChild(row);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 初始化表格排序
|
||||||
|
initTableSort('top-blocked-table');
|
||||||
|
}
|
||||||
|
|
||||||
|
// 加载最常解析的域名
|
||||||
|
function loadTopResolvedDomains() {
|
||||||
|
apiRequest('/api/top-resolved')
|
||||||
|
.then(data => {
|
||||||
|
renderTopResolvedDomains(data);
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('获取最常解析域名失败:', error);
|
||||||
|
showError(document.getElementById('top-resolved-table').querySelector('tbody'), '获取数据失败');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 渲染最常解析的域名表格
|
||||||
|
function renderTopResolvedDomains(domains) {
|
||||||
|
const tbody = document.getElementById('top-resolved-table').querySelector('tbody');
|
||||||
|
if (!tbody) return;
|
||||||
|
|
||||||
|
if (!domains || domains.length === 0) {
|
||||||
|
showEmpty(tbody, '暂无解析记录');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
tbody.innerHTML = '';
|
||||||
|
|
||||||
|
domains.forEach((domain, index) => {
|
||||||
|
const row = document.createElement('tr');
|
||||||
|
row.innerHTML = `
|
||||||
|
<td>${domain.domain}</td>
|
||||||
|
<td>${formatNumber(domain.count)}</td>
|
||||||
|
`;
|
||||||
|
tbody.appendChild(row);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 初始化表格排序
|
||||||
|
initTableSort('top-resolved-table');
|
||||||
|
}
|
||||||
180
static/js/modules/hosts.js
Normal file
180
static/js/modules/hosts.js
Normal file
@@ -0,0 +1,180 @@
|
|||||||
|
// 初始化Hosts面板
|
||||||
|
function initHostsPanel() {
|
||||||
|
// 加载Hosts列表
|
||||||
|
loadHosts();
|
||||||
|
|
||||||
|
// 初始化事件监听器
|
||||||
|
initHostsEventListeners();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化事件监听器
|
||||||
|
function initHostsEventListeners() {
|
||||||
|
// 添加Hosts按钮
|
||||||
|
document.getElementById('add-hosts').addEventListener('click', addHostsEntry);
|
||||||
|
|
||||||
|
// Hosts过滤
|
||||||
|
document.getElementById('hosts-filter').addEventListener('input', filterHosts);
|
||||||
|
|
||||||
|
// 按Enter键添加Hosts
|
||||||
|
document.getElementById('hosts-domain').addEventListener('keypress', function(e) {
|
||||||
|
if (e.key === 'Enter') {
|
||||||
|
addHostsEntry();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 加载Hosts列表
|
||||||
|
function loadHosts() {
|
||||||
|
const tbody = document.getElementById('hosts-table').querySelector('tbody');
|
||||||
|
showLoading(tbody);
|
||||||
|
|
||||||
|
apiRequest('/shield/hosts', 'GET')
|
||||||
|
.then(data => {
|
||||||
|
renderHosts(data);
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('获取Hosts列表失败:', error);
|
||||||
|
showError(tbody, '获取Hosts列表失败');
|
||||||
|
window.showNotification('获取Hosts列表失败', 'error');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 渲染Hosts表格
|
||||||
|
function renderHosts(hosts) {
|
||||||
|
const tbody = document.getElementById('hosts-table').querySelector('tbody');
|
||||||
|
if (!tbody) return;
|
||||||
|
|
||||||
|
if (!hosts || hosts.length === 0) {
|
||||||
|
showEmpty(tbody, '暂无Hosts条目');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
tbody.innerHTML = '';
|
||||||
|
|
||||||
|
hosts.forEach(entry => {
|
||||||
|
addHostsToTable(entry.ip, entry.domain);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 初始化表格排序
|
||||||
|
initTableSort('hosts-table');
|
||||||
|
|
||||||
|
// 初始化删除按钮监听器
|
||||||
|
initDeleteHostsListeners();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加Hosts到表格
|
||||||
|
function addHostsToTable(ip, domain) {
|
||||||
|
const tbody = document.getElementById('hosts-table').querySelector('tbody');
|
||||||
|
const row = document.createElement('tr');
|
||||||
|
|
||||||
|
row.innerHTML = `
|
||||||
|
<td>${ip}</td>
|
||||||
|
<td>${domain}</td>
|
||||||
|
<td class="actions-cell">
|
||||||
|
<button class="btn btn-danger btn-sm delete-hosts" data-ip="${ip}" data-domain="${domain}">
|
||||||
|
<i class="fas fa-trash-alt"></i> 删除
|
||||||
|
</button>
|
||||||
|
</td>
|
||||||
|
`;
|
||||||
|
|
||||||
|
tbody.appendChild(row);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加Hosts条目
|
||||||
|
function addHostsEntry() {
|
||||||
|
const ipInput = document.getElementById('hosts-ip');
|
||||||
|
const domainInput = document.getElementById('hosts-domain');
|
||||||
|
|
||||||
|
const ip = ipInput.value.trim();
|
||||||
|
const domain = domainInput.value.trim();
|
||||||
|
|
||||||
|
if (!ip) {
|
||||||
|
window.showNotification('请输入IP地址', 'warning');
|
||||||
|
ipInput.focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!domain) {
|
||||||
|
window.showNotification('请输入域名', 'warning');
|
||||||
|
domainInput.focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 简单的IP地址格式验证
|
||||||
|
if (!isValidIp(ip)) {
|
||||||
|
window.showNotification('请输入有效的IP地址', 'warning');
|
||||||
|
ipInput.focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
apiRequest('/shield/hosts', 'POST', { ip: ip, domain: domain });
|
||||||
|
apiRequest('/shield/hosts', 'POST', { ip: ip, domain: domain })
|
||||||
|
.then(data => {
|
||||||
|
if (data.success) {
|
||||||
|
window.showNotification('Hosts条目添加成功', 'success');
|
||||||
|
ipInput.value = '';
|
||||||
|
domainInput.value = '';
|
||||||
|
loadHosts();
|
||||||
|
} else {
|
||||||
|
window.showNotification(`添加失败: ${data.message || '未知错误'}`, 'error');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('添加Hosts条目失败:', error);
|
||||||
|
window.showNotification('添加Hosts条目失败', 'error');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除Hosts条目
|
||||||
|
function deleteHostsEntry(ip, domain) {
|
||||||
|
apiRequest('/shield/hosts', 'DELETE', { ip: ip, domain: domain })
|
||||||
|
.then(data => {
|
||||||
|
if (data.success) {
|
||||||
|
window.showNotification('Hosts条目删除成功', 'success');
|
||||||
|
loadHosts();
|
||||||
|
} else {
|
||||||
|
window.showNotification(`删除失败: ${data.message || '未知错误'}`, 'error');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('删除Hosts条目失败:', error);
|
||||||
|
window.showNotification('删除Hosts条目失败', 'error');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 过滤Hosts
|
||||||
|
function filterHosts() {
|
||||||
|
const filterText = document.getElementById('hosts-filter').value.toLowerCase();
|
||||||
|
const rows = document.querySelectorAll('#hosts-table tbody tr');
|
||||||
|
|
||||||
|
rows.forEach(row => {
|
||||||
|
const ip = row.cells[0].textContent.toLowerCase();
|
||||||
|
const domain = row.cells[1].textContent.toLowerCase();
|
||||||
|
|
||||||
|
row.style.display = (ip.includes(filterText) || domain.includes(filterText)) ? '' : 'none';
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 为删除按钮添加事件监听器
|
||||||
|
function initDeleteHostsListeners() {
|
||||||
|
document.querySelectorAll('.delete-hosts').forEach(button => {
|
||||||
|
button.addEventListener('click', function() {
|
||||||
|
const ip = this.getAttribute('data-ip');
|
||||||
|
const domain = this.getAttribute('data-domain');
|
||||||
|
|
||||||
|
confirmAction(
|
||||||
|
`确定要删除这条Hosts条目吗?\n${ip} ${domain}`,
|
||||||
|
() => deleteHostsEntry(ip, domain)
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 验证IP地址格式
|
||||||
|
function isValidIp(ip) {
|
||||||
|
// 支持IPv4和IPv6简单验证
|
||||||
|
const ipv4Regex = /^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$/;
|
||||||
|
const ipv6Regex = /^([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}$/;
|
||||||
|
|
||||||
|
return ipv4Regex.test(ip) || ipv6Regex.test(ip);
|
||||||
|
}
|
||||||
145
static/js/modules/query.js
Normal file
145
static/js/modules/query.js
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
// 初始化DNS查询面板
|
||||||
|
function initQueryPanel() {
|
||||||
|
// 初始化事件监听器
|
||||||
|
initQueryEventListeners();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化事件监听器
|
||||||
|
function initQueryEventListeners() {
|
||||||
|
// 查询按钮
|
||||||
|
document.getElementById('run-query').addEventListener('click', runDnsQuery);
|
||||||
|
|
||||||
|
// 按Enter键执行查询
|
||||||
|
document.getElementById('query-domain').addEventListener('keypress', function(e) {
|
||||||
|
if (e.key === 'Enter') {
|
||||||
|
runDnsQuery();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 执行DNS查询
|
||||||
|
function runDnsQuery() {
|
||||||
|
const domainInput = document.getElementById('query-domain');
|
||||||
|
const domain = domainInput.value.trim();
|
||||||
|
|
||||||
|
if (!domain) {
|
||||||
|
window.showNotification('请输入要查询的域名', 'warning');
|
||||||
|
domainInput.focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 显示查询中状态
|
||||||
|
showQueryLoading();
|
||||||
|
|
||||||
|
apiRequest('/query?domain=' + domain, 'GET', { domain: domain })
|
||||||
|
.then(data => {
|
||||||
|
renderQueryResult(data);
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('DNS查询失败:', error);
|
||||||
|
showQueryError('查询失败,请稍后重试');
|
||||||
|
window.showNotification('DNS查询失败', 'error');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 显示查询加载状态
|
||||||
|
function showQueryLoading() {
|
||||||
|
const resultContainer = document.getElementById('query-result-container');
|
||||||
|
resultContainer.classList.remove('hidden');
|
||||||
|
|
||||||
|
// 清空之前的结果
|
||||||
|
const resultHeader = resultContainer.querySelector('.result-header h3');
|
||||||
|
const resultContent = resultContainer.querySelector('.result-content');
|
||||||
|
|
||||||
|
resultHeader.textContent = '查询中...';
|
||||||
|
resultContent.innerHTML = '<div class="loading"></div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 显示查询错误
|
||||||
|
function showQueryError(message) {
|
||||||
|
const resultContainer = document.getElementById('query-result-container');
|
||||||
|
resultContainer.classList.remove('hidden');
|
||||||
|
|
||||||
|
const resultHeader = resultContainer.querySelector('.result-header h3');
|
||||||
|
const resultContent = resultContainer.querySelector('.result-content');
|
||||||
|
|
||||||
|
resultHeader.textContent = '查询错误';
|
||||||
|
resultContent.innerHTML = `<div class="result-item" style="color: #e74c3c;">${message}</div>`;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 渲染查询结果
|
||||||
|
function renderQueryResult(result) {
|
||||||
|
const resultContainer = document.getElementById('query-result-container');
|
||||||
|
resultContainer.classList.remove('hidden');
|
||||||
|
|
||||||
|
const resultHeader = resultContainer.querySelector('.result-header h3');
|
||||||
|
const resultContent = resultContainer.querySelector('.result-content');
|
||||||
|
|
||||||
|
resultHeader.textContent = '查询结果';
|
||||||
|
|
||||||
|
// 根据查询结果构建内容
|
||||||
|
let content = '';
|
||||||
|
|
||||||
|
// 域名
|
||||||
|
content += `<div class="result-item"><strong>域名:</strong> <span id="result-domain">${result.domain || ''}</span></div>`;
|
||||||
|
|
||||||
|
// 状态
|
||||||
|
const statusText = result.isBlocked ? '被屏蔽' : result.isAllowed ? '允许访问' : '未知';
|
||||||
|
const statusClass = result.isBlocked ? 'status-error' : result.isAllowed ? 'status-success' : '';
|
||||||
|
content += `<div class="result-item"><strong>状态:</strong> <span id="result-status" class="${statusClass}">${statusText}</span></div>`;
|
||||||
|
|
||||||
|
// 规则类型
|
||||||
|
let ruleType = '';
|
||||||
|
if (result.isBlocked) {
|
||||||
|
if (result.isRegexMatch) {
|
||||||
|
ruleType = '正则表达式规则';
|
||||||
|
} else if (result.isDomainMatch) {
|
||||||
|
ruleType = '域名规则';
|
||||||
|
} else {
|
||||||
|
ruleType = '未知规则类型';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ruleType = result.isWhitelist ? '白名单规则' : result.isHosts ? 'Hosts记录' : '未匹配任何规则';
|
||||||
|
}
|
||||||
|
content += `<div class="result-item"><strong>规则类型:</strong> <span id="result-rule-type">${ruleType}</span></div>`;
|
||||||
|
|
||||||
|
// 匹配规则
|
||||||
|
const matchedRule = result.matchedRule || '无';
|
||||||
|
content += `<div class="result-item"><strong>匹配规则:</strong> <span id="result-rule">${matchedRule}</span></div>`;
|
||||||
|
|
||||||
|
// Hosts记录
|
||||||
|
const hostsRecord = result.hostsRecord ? `${result.hostsRecord.ip} ${result.hostsRecord.domain}` : '无';
|
||||||
|
content += `<div class="result-item"><strong>Hosts记录:</strong> <span id="result-hosts">${hostsRecord}</span></div>`;
|
||||||
|
|
||||||
|
// 查询时间
|
||||||
|
const queryTime = `${(result.queryTime || 0).toFixed(2)} ms`;
|
||||||
|
content += `<div class="result-item"><strong>查询时间:</strong> <span id="result-time">${queryTime}</span></div>`;
|
||||||
|
|
||||||
|
// DNS响应(如果有)
|
||||||
|
if (result.dnsResponse) {
|
||||||
|
content += '<div class="result-item"><strong>DNS响应:</strong></div>';
|
||||||
|
content += '<div class="dns-response">';
|
||||||
|
|
||||||
|
if (result.dnsResponse.answers && result.dnsResponse.answers.length > 0) {
|
||||||
|
content += '<ul>';
|
||||||
|
result.dnsResponse.answers.forEach(answer => {
|
||||||
|
content += `<li>${answer.name} ${answer.type} ${answer.value}</li>`;
|
||||||
|
});
|
||||||
|
content += '</ul>';
|
||||||
|
} else {
|
||||||
|
content += '<p>无DNS响应记录</p>';
|
||||||
|
}
|
||||||
|
content += '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
resultContent.innerHTML = content;
|
||||||
|
|
||||||
|
// 更新结果元素的内容(确保数据一致性)
|
||||||
|
document.getElementById('result-domain').textContent = result.domain || '';
|
||||||
|
document.getElementById('result-status').textContent = statusText;
|
||||||
|
document.getElementById('result-status').className = statusClass;
|
||||||
|
document.getElementById('result-rule-type').textContent = ruleType;
|
||||||
|
document.getElementById('result-rule').textContent = matchedRule;
|
||||||
|
document.getElementById('result-hosts').textContent = hostsRecord;
|
||||||
|
document.getElementById('result-time').textContent = queryTime;
|
||||||
|
}
|
||||||
270
static/js/modules/rules.js
Normal file
270
static/js/modules/rules.js
Normal file
@@ -0,0 +1,270 @@
|
|||||||
|
// 屏蔽规则管理模块
|
||||||
|
|
||||||
|
// 全局变量
|
||||||
|
let rules = [];
|
||||||
|
let currentPage = 1;
|
||||||
|
let itemsPerPage = 50; // 默认每页显示50条规则
|
||||||
|
let filteredRules = [];
|
||||||
|
|
||||||
|
// 初始化屏蔽规则面板
|
||||||
|
function initRulesPanel() {
|
||||||
|
// 加载规则列表
|
||||||
|
loadRules();
|
||||||
|
|
||||||
|
// 绑定添加规则按钮事件
|
||||||
|
document.getElementById('add-rule-btn').addEventListener('click', addNewRule);
|
||||||
|
|
||||||
|
// 绑定刷新规则按钮事件
|
||||||
|
document.getElementById('reload-rules-btn').addEventListener('click', reloadRules);
|
||||||
|
|
||||||
|
// 绑定搜索框事件
|
||||||
|
document.getElementById('rule-search').addEventListener('input', filterRules);
|
||||||
|
|
||||||
|
// 绑定每页显示数量变更事件
|
||||||
|
document.getElementById('items-per-page').addEventListener('change', () => {
|
||||||
|
itemsPerPage = parseInt(document.getElementById('items-per-page').value);
|
||||||
|
currentPage = 1; // 重置为第一页
|
||||||
|
renderRulesList();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 绑定分页按钮事件
|
||||||
|
document.getElementById('prev-page-btn').addEventListener('click', goToPreviousPage);
|
||||||
|
document.getElementById('next-page-btn').addEventListener('click', goToNextPage);
|
||||||
|
document.getElementById('first-page-btn').addEventListener('click', goToFirstPage);
|
||||||
|
document.getElementById('last-page-btn').addEventListener('click', goToLastPage);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 加载规则列表
|
||||||
|
async function loadRules() {
|
||||||
|
try {
|
||||||
|
const rulesPanel = document.getElementById('rules-panel');
|
||||||
|
showLoading(rulesPanel);
|
||||||
|
|
||||||
|
const data = await apiRequest('/shield', 'GET');
|
||||||
|
rules = data.rules || [];
|
||||||
|
filteredRules = [...rules];
|
||||||
|
currentPage = 1; // 重置为第一页
|
||||||
|
renderRulesList();
|
||||||
|
} catch (error) {
|
||||||
|
showError('加载规则失败:' + error.message);
|
||||||
|
} finally {
|
||||||
|
const rulesPanel = document.getElementById('rules-panel');
|
||||||
|
hideLoading(rulesPanel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 渲染规则列表
|
||||||
|
function renderRulesList() {
|
||||||
|
const rulesList = document.getElementById('rules-list');
|
||||||
|
const paginationInfo = document.getElementById('pagination-info');
|
||||||
|
|
||||||
|
// 清空列表
|
||||||
|
rulesList.innerHTML = '';
|
||||||
|
|
||||||
|
if (filteredRules.length === 0) {
|
||||||
|
rulesList.innerHTML = '<tr><td colspan="4" class="text-center">暂无规则</td></tr>';
|
||||||
|
paginationInfo.textContent = '共0条规则';
|
||||||
|
updatePaginationButtons();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 计算分页数据
|
||||||
|
const totalPages = Math.ceil(filteredRules.length / itemsPerPage);
|
||||||
|
const startIndex = (currentPage - 1) * itemsPerPage;
|
||||||
|
const endIndex = Math.min(startIndex + itemsPerPage, filteredRules.length);
|
||||||
|
const currentRules = filteredRules.slice(startIndex, endIndex);
|
||||||
|
|
||||||
|
// 渲染当前页的规则
|
||||||
|
currentRules.forEach((rule, index) => {
|
||||||
|
const row = document.createElement('tr');
|
||||||
|
const globalIndex = startIndex + index;
|
||||||
|
|
||||||
|
row.innerHTML = `
|
||||||
|
<td class="rule-id">${globalIndex + 1}</td>
|
||||||
|
<td class="rule-content"><pre>${escapeHtml(rule)}</pre></td>
|
||||||
|
<td class="rule-actions">
|
||||||
|
<button class="btn btn-danger btn-sm delete-rule" data-index="${globalIndex}">
|
||||||
|
<i class="fas fa-trash"></i> 删除
|
||||||
|
</button>
|
||||||
|
</td>
|
||||||
|
`;
|
||||||
|
|
||||||
|
rulesList.appendChild(row);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 绑定删除按钮事件
|
||||||
|
document.querySelectorAll('.delete-rule').forEach(button => {
|
||||||
|
button.addEventListener('click', (e) => {
|
||||||
|
const index = parseInt(e.currentTarget.dataset.index);
|
||||||
|
deleteRule(index);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// 更新分页信息
|
||||||
|
paginationInfo.textContent = `显示 ${startIndex + 1}-${endIndex} 条,共 ${filteredRules.length} 条规则,第 ${currentPage}/${totalPages} 页`;
|
||||||
|
|
||||||
|
// 更新分页按钮状态
|
||||||
|
updatePaginationButtons();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新分页按钮状态
|
||||||
|
function updatePaginationButtons() {
|
||||||
|
const totalPages = Math.ceil(filteredRules.length / itemsPerPage);
|
||||||
|
const prevBtn = document.getElementById('prev-page-btn');
|
||||||
|
const nextBtn = document.getElementById('next-page-btn');
|
||||||
|
const firstBtn = document.getElementById('first-page-btn');
|
||||||
|
const lastBtn = document.getElementById('last-page-btn');
|
||||||
|
|
||||||
|
prevBtn.disabled = currentPage === 1;
|
||||||
|
nextBtn.disabled = currentPage === totalPages || totalPages === 0;
|
||||||
|
firstBtn.disabled = currentPage === 1;
|
||||||
|
lastBtn.disabled = currentPage === totalPages || totalPages === 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 上一页
|
||||||
|
function goToPreviousPage() {
|
||||||
|
if (currentPage > 1) {
|
||||||
|
currentPage--;
|
||||||
|
renderRulesList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 下一页
|
||||||
|
function goToNextPage() {
|
||||||
|
const totalPages = Math.ceil(filteredRules.length / itemsPerPage);
|
||||||
|
if (currentPage < totalPages) {
|
||||||
|
currentPage++;
|
||||||
|
renderRulesList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 第一页
|
||||||
|
function goToFirstPage() {
|
||||||
|
currentPage = 1;
|
||||||
|
renderRulesList();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 最后一页
|
||||||
|
function goToLastPage() {
|
||||||
|
currentPage = Math.ceil(filteredRules.length / itemsPerPage);
|
||||||
|
renderRulesList();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加新规则
|
||||||
|
async function addNewRule() {
|
||||||
|
const ruleInput = document.getElementById('rule-input');
|
||||||
|
const rule = ruleInput.value.trim();
|
||||||
|
|
||||||
|
if (!rule) {
|
||||||
|
showNotification('请输入规则内容', 'warning');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const response = await apiRequest('/shield/rule', 'POST', { rule });
|
||||||
|
|
||||||
|
if (response.success) {
|
||||||
|
rules.push(rule);
|
||||||
|
filteredRules = [...rules];
|
||||||
|
ruleInput.value = '';
|
||||||
|
|
||||||
|
// 添加后跳转到最后一页,显示新添加的规则
|
||||||
|
currentPage = Math.ceil(filteredRules.length / itemsPerPage);
|
||||||
|
renderRulesList();
|
||||||
|
|
||||||
|
showNotification('规则添加成功', 'success');
|
||||||
|
} else {
|
||||||
|
showNotification('规则添加失败:' + (response.message || '未知错误'), 'error');
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
showError('添加规则失败:' + error.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除规则
|
||||||
|
async function deleteRule(index) {
|
||||||
|
if (!confirm('确定要删除这条规则吗?')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const rule = filteredRules[index];
|
||||||
|
const response = await apiRequest('/shield/rule', 'DELETE', { rule });
|
||||||
|
|
||||||
|
if (response.success) {
|
||||||
|
// 在原规则列表中找到并删除
|
||||||
|
const originalIndex = rules.indexOf(rule);
|
||||||
|
if (originalIndex !== -1) {
|
||||||
|
rules.splice(originalIndex, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 在过滤后的列表中删除
|
||||||
|
filteredRules.splice(index, 1);
|
||||||
|
|
||||||
|
// 如果当前页没有数据了,回到上一页
|
||||||
|
const totalPages = Math.ceil(filteredRules.length / itemsPerPage);
|
||||||
|
if (currentPage > totalPages && totalPages > 0) {
|
||||||
|
currentPage = totalPages;
|
||||||
|
}
|
||||||
|
|
||||||
|
renderRulesList();
|
||||||
|
showNotification('规则删除成功', 'success');
|
||||||
|
} else {
|
||||||
|
showNotification('规则删除失败:' + (response.message || '未知错误'), 'error');
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
showError('删除规则失败:' + error.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 重新加载规则
|
||||||
|
async function reloadRules() {
|
||||||
|
if (!confirm('确定要重新加载所有规则吗?这将覆盖当前内存中的规则。')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const rulesPanel = document.getElementById('rules-panel');
|
||||||
|
showLoading(rulesPanel);
|
||||||
|
|
||||||
|
await apiRequest('/shield/reload', 'POST');
|
||||||
|
|
||||||
|
// 重新加载规则列表
|
||||||
|
await loadRules();
|
||||||
|
showNotification('规则重新加载成功', 'success');
|
||||||
|
} catch (error) {
|
||||||
|
showError('重新加载规则失败:' + error.message);
|
||||||
|
} finally {
|
||||||
|
const rulesPanel = document.getElementById('rules-panel');
|
||||||
|
hideLoading(rulesPanel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 过滤规则
|
||||||
|
function filterRules() {
|
||||||
|
const searchTerm = document.getElementById('rule-search').value.toLowerCase();
|
||||||
|
|
||||||
|
if (searchTerm) {
|
||||||
|
filteredRules = rules.filter(rule => rule.toLowerCase().includes(searchTerm));
|
||||||
|
} else {
|
||||||
|
filteredRules = [...rules];
|
||||||
|
}
|
||||||
|
|
||||||
|
currentPage = 1; // 重置为第一页
|
||||||
|
renderRulesList();
|
||||||
|
}
|
||||||
|
|
||||||
|
// HTML转义,防止XSS攻击
|
||||||
|
function escapeHtml(text) {
|
||||||
|
const map = {
|
||||||
|
'&': '&',
|
||||||
|
'<': '<',
|
||||||
|
'>': '>',
|
||||||
|
'"': '"',
|
||||||
|
"'": '''
|
||||||
|
};
|
||||||
|
return text.replace(/[&<>"']/g, m => map[m]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出初始化函数
|
||||||
|
window.initRulesPanel = initRulesPanel;
|
||||||
Reference in New Issue
Block a user