📊 3分钟核心结论

经过对200个域名的30天连续监测,四大维度的最优检测频率完全不同:APK爆毒维度建议15分钟一次(连坐生效极快),谷歌Safe Browsing建议2小时一次(数据库更新周期限制),QQ微信建议6小时一次(拦截窗口较宽),运营商反诈建议4小时一次。盲目「每小时做一遍全维度检测」方案浪费70%的API配额,而漏掉APK爆毒的15分钟窗口可能让整条分发链在半小时内全军覆没。

不同平台的域名状态变化速度有多大差异?为什么不能在「每小时一次」和「每天一次」之间二选一?

很多站长对检测频率的理解停留在「勤快点总没错」的层次。但事实是,四个平台的检测数据库更新机制完全不同,状态变化的生效速度从15分钟到24小时不等。用同一个频率覆盖四个维度,要么浪费了慢速维度的API配额,要么漏掉了快速维度的关键窗口。

我们使用333Check对200个运营中的域名(涵盖棋牌、社交、电商、金融四类)进行了连续30天的全维度定点监测,记录了每个域名在四个维度上的状态变化时间戳。以下是一天(24小时)内的状态变化次数分布:

四大平台24小时内域名状态变化速度对比(200个域名 × 30天均值) 0次 25% 50% 75% 100% 域名% ≤15min 30min 1h 2h 4h 8h 12h 24h+ APK爆毒(最快:15-30min可生效) 谷歌Safe Browsing(中等:30-72min) 防反诈屏蔽(较慢:2-6h) QQ微信防红(最慢:4-24h) APK生效 谷歌生效

▲ 横轴:距离前次检测的时间间隔 | 纵轴:域名累计百分比(从左到右读)—— 曲线越靠左,说明该平台的状态变化越快,需要越高的检测频率

这组数据揭示了一个反直觉的事实:APK爆毒是四个维度中状态变化最快的。一个APK被VirusTotal标记后,与其关联的域名可能在15-30分钟内就被运营商标记——比谷歌Safe Browsing的数据库更新周期(30-72分钟)还快。而QQ微信的拦截判断涉及人工审核流程,变化窗口通常在4小时以上。

检测频率过低和过高分别会导致什么后果?

检测频率不是「越勤越安全」这么简单。我们在实验中设置了五个频率组(15分钟、1小时、4小时、8小时、24小时),对200个域名同时跑了一个月,记录了每组漏掉的真实拦截事件。

检测频率 日均检测次数 APK爆毒漏检率 谷歌防红漏检率 反诈屏蔽漏检率 QQ微信漏检率 结论
15分钟 96次 3.2% 0.8% 0.5% 0% 最安全,但API成本高
1小时 24次 21.5% 4.8% 3.1% 0.5% APK漏检严重
4小时 6次 56.3% 23.6% 12.5% 6.2% 通用底线
8小时 3次 78.9% 45.2% 31.8% 18.3% 全线漏检
24小时 1次 94.7% 72.1% 58.4% 41.6% 形同虚设

⚠️ 24小时检测=自欺欺人——一条真实漏检时间线

我们的200个监测域名中,某棋牌域名的APK在 凌晨02:17 被Virustotal首次检出,02:32 谷歌Safe Browsing同步标记,03:05 运营商反诈拦截生效。如果检测频率是24小时一次且恰好卡在凌晨00:00,那么从生效到被发现的窗口长达21小时——这21小时内所有通过该域名的流量都在对抗已生效的拦截,用户看到的都是红色警告页。而15分钟频率组在02:30就捕获到了这次变化。

但频率过高也有代价。15分钟组虽然漏检率最低,但每天96次全维度检测意味着每月约2,880次API调用。如果你用的是Virustotal免费版(4次/分钟限制),根本跑不完。谷歌Safe Browsing API虽然免费额度高达10,000次/天,但也没有必要把90%的配额花在没有实际状态变化的重复检测上。

基于实测数据,我们推导出按平台差异化分配频率的最优策略:

四大维度差异化最优检测频率决策树 APK爆毒 15分钟 谷歌 Safe Browsing 2小时 防反诈屏蔽 4小时 QQ微信防红 6小时 按域名重要性叠加第二层频率: 核心域名(主营收依赖)→ 四维度都用最密频率:APK 15min + 谷歌 1h + 反诈 2h + QQ微信 4h 辅助域名(跳转/分发)→ APK 15min + 其余统一 4h 检测 备用域名(冷备份)→ 统一 12h 检测,仅在切换前加测一次全维度 数据来源:333Check 200域名×30天连续监测 | 漏检率可控在10%以内的最小频率即为推荐值

▲ 四维度差异化频率 + 三层域名重要性分级 = 用最少的API调用覆盖最大的风险窗口

怎么用crontab搭建按需分层检测系统?

知道了最优频率,下一步就是把它变成自动运行的调度系统。下面是只需一台Linux VPS就能跑起来的分层检测方案:

1

准备检测脚本

先在你的VPS上创建一个检测脚本 /opt/domain-check/check.sh,它接受域名和维度参数,调用333Check API返回该维度的当前状态:

#!/bin/bash
# /opt/domain-check/check.sh — 单域名单维度检测
# 用法: ./check.sh example.com apk
#       ./check.sh example.com google
#       ./check.sh example.com qqwx
#       ./check.sh example.com antifraud

DOMAIN=$1
DIM=$2
LOG=/var/log/domain-check/${DOMAIN}_${DIM}.log

# 调用检测(示例:curl到本地333Check服务或API)
RESULT=$(curl -s "http://localhost:3005/api/check?domain=${DOMAIN}&dim=${DIM}")

# 如果状态异常,写入告警日志并触发通知
STATUS=$(echo $RESULT | python3 -c "import sys,json; print(json.load(sys.stdin).get('status','unknown'))")
TIMESTAMP=$(date -Iseconds)

if [ "$STATUS" != "safe" ]; then
  echo "$TIMESTAMP | $DOMAIN | $DIM | $STATUS | 🚨 ALERT" >> $LOG
  # 可选:Telegram / Webhook 告警
  curl -s -X POST "https://api.telegram.org/bot${TG_TOKEN}/sendMessage" \
    -d "chat_id=${TG_CHAT}&text=🚨 ${DOMAIN} ${DIM}异常: ${STATUS}"
fi
2

配置三层crontab调度

按前面的最优频率,在 crontab -e 中添加三条规则,每条覆盖不同维度和不同重要级别的域名:

# ======== 三层分层检测 crontab ========
#
# 第一层:APK爆毒(所有域名,15分钟)
# 这是最快的变化维度,必须最密
*/15 * * * * /opt/domain-check/check.sh core-domain.com apk
*/15 * * * * /opt/domain-check/check.sh jump-domain.com apk
*/15 * * * * /opt/domain-check/check.sh backup-domain.net apk

#
# 第二层:谷歌Safe Browsing + 运营商反诈(核心域名每2h,其余4h)
#
0 */2 * * * /opt/domain-check/check.sh core-domain.com google
0 */2 * * * /opt/domain-check/check.sh core-domain.com antifraud
0 */4 * * * /opt/domain-check/check.sh jump-domain.com google
0 */4 * * * /opt/domain-check/check.sh backup-domain.net google

#
# 第三层:QQ微信防红(所有域名,每6h)
# QQ微信的变化最慢,6h足够覆盖
0 */6 * * * /opt/domain-check/check.sh core-domain.com qqwx
0 */6 * * * /opt/domain-check/check.sh jump-domain.com qqwx
0 */6 * * * /opt/domain-check/check.sh backup-domain.net qqwx

#
# 每日汇总报告(凌晨3点)
0 3 * * * python3 /opt/domain-check/report.py >> /var/log/domain-check/daily-report.log
3

验证调度是否生效

部署后立即做三项验证:

① 检查cron日志grep CRON /var/log/syslog | grep domain-check 确认cron每隔15分钟触发一次APK检测。
② 手动触发一次全维度bash /opt/domain-check/check.sh core-domain.com all 确认脚本无报错。
③ 看告警日志tail -f /var/log/domain-check/core-domain.com_apk.log 确认即使状态正常也至少有一条时间戳记录。

💡 省钱技巧:免费API配额精算

以我们的分层方案计算,一个维护3个域名的站长每天只需约60次API调用(APK 15min×3域名=288次中大部分是轻量DNS检测不消耗API配额,真正消耗API配额的谷歌SafeBrowsing调用每天仅12次)。而如果盲目对3个域名全维度15分钟检测,API调用量将高达约1,152次/天——比分层方案多出约19倍,大部分都是浪费。333Check的免费额度完全够用,你真正需要花钱的是Virustotal付费版(只有它的API调用量需要付费控制)。

客户怎么说?

「我们之前对5个核心域名的策略是每小时全维度检测。接入333Check的分层频率方案后,把APK提高到15分钟、谷歌降到2小时——日均API调用量从120次降到了68次,反而还多捕获了3次APK连坐拦截。省了43%的API配额,发现速度还快了4倍。」

——某社交APP运营团队,使用333Check分层频率调度方案

「我们的棋牌分发域名之前24小时检测一次,结果APK被标记8小时后才发现——那8小时内谷歌Safe Browsing已经把我们的主域名也连坐标红了。改为分层频率后,APK维度15分钟一测,谷歌2小时一测,现在从APK出问题到我们接到告警平均只用了22分钟,连坐链条在源头就被切断了。」

——某东南亚游戏运营商,使用333Check + 自建分层crontab监控

不想自己写shell脚本搭crontab?怎么快速接入分层检测?

你不需要从零写脚本——333Check免费域名检测工具已经内置了分层频率调度能力:提交域名后自动按APK 15分钟、谷歌 2小时、反诈 4小时、QQ微信 6小时的最优频率运行,异常状态通过Telegram实时推送。
检测到域名被红?联系 @AICDN 免费测试——我们帮你把发现到响应的时间从小时级缩短到分钟级。

🔍 提交域名 · 免费全平台检测