📱 3分钟速览:手机上跑四维域名检测的全流程

第一步:安装 Termux(F-Droid版,不要用Play商店旧版)→ 第二步:在Termux里安装 curl jq python dnsutils 四个工具包 → 第三步:配置谷歌 Safe Browsing API 密钥(免费)→ 第四步:复制本文提供的 Shell 一键检测脚本 → 第五步:运行脚本,3秒内拿到四维检测结果,支持自动保存日志和异常告警。

⏱ 预计搭建时间:15分钟(含Termux安装和工具链配置) | 日常使用:一条命令 3 秒出结果

为什么需要在手机上搭建域名检测环境?手机端检测解决了什么问题?

传统域名检测有三大痛点:① 必须开电脑——凌晨域名突然打不开,爬起来开机查状态,等电脑启动完已经过了五分钟;② 检测网络环境单一——电脑连的是固定WiFi,你测出来「正常」不代表移动端用户看到的结果也正常;③ 紧急情况响应太慢——手机上收到用户反馈说「链接打不开了」,你还要找人开电脑查。

手机端检测的价值在于:它天然具备多网络环境优势。一台手机同时拥有 WiFi 和 4G/5G 两套网络栈——你可以分别用 WiFi 和移动数据各跑一次检测,前后只用一条命令切换。这对于诊断「地域性拦截」「运营商级别劫持」特别有用——我们已经在本站之前的文章中实测过,同一个域名在移动/联通/电信/广电四家运营商返回的检测结果可能存在 37% 的差异。

更关键的是——手机是你随身携带的计算设备。它不需要额外供电、不依赖固定网络、随时随地都能跑检测。对于管理多个域名的运营者来说,这意味着你可以在地铁上、在餐厅里、甚至在景区排队时快速排查域名状态,不需要等回到办公室。

Termux 移动端四维域名检测架构 $ ./check.sh domain.com [1/4] Google SB.....SAFE [2/4] QQ/WeChat.....正常 [3/4] 反诈DNS........劫持 [4/4] VT APK..........0/95 ───────────────── ⚠ 综合评分: 65/100 3.1s | 2026-08-11 14:23 ⏰ 下次: 18:00 | 已保存日志 🌐 Google Safe Browsing API v4 💬 QQ/微信 URL 安全检测 🛡 反诈中心 DNS 拦截检测 🦠 Virustotal APK 爆毒扫描 WiFi / 4G / 5G 双网络栈随时切换检测 · 原生移动网络环境

▲ Termux 移动端四维检测架构:四大平台 API 汇聚到手机终端,一条命令输出全维度结果,同时支持 WiFi 和移动数据双网络切换排查

Termux环境如何安装并配置四大平台的检测工具链?

第一步,下载正确的 Termux 版本。这里有个关键避坑提示:Google Play 商店里的 Termux 版本已经停更两年,很多包都无法正常安装。请直接从 F-Droid(f-droid.org)下载最新版 Termux,或者在 Termux 官网 termux.dev 获取 APK。安装后打开,你会看到一个类似 Linux 终端的界面。

1

更新 Termux 包管理器并安装基础工具链

打开 Termux,依次输入以下命令。注意:首次运行 pkg update 会提示确认,输入 y 回车即可。

# Step 1: 更新软件源(必须做,否则后续安装可能失败) pkg update && pkg upgrade -y # Step 2: 安装核心工具 pkg install curl jq python dnsutils termux-api -y # Step 3: 验证安装 curl --version && jq --version && python3 --version && dig -v
💡 提示:termux-api 包需要配合 Google Play 上的 Termux:API 应用使用(用于手机通知推送)。如果不需要通知功能,可以不装。
2

配置谷歌 Safe Browsing API 密钥(免费)

谷歌 Safe Browsing API v4 每天提供免费 10,000 次查询,对个人域名运营完全够用。

# 在 Termux 中设置 API 密钥为环境变量 echo 'export GSB_API_KEY="你的API密钥"' >> ~/.bashrc source ~/.bashrc # 测试 API 连通性 curl -s -X POST "https://safebrowsing.googleapis.com/v4/threatMatches:find?key=$GSB_API_KEY" \ -H "Content-Type: application/json" \ -d '{"client":{"clientId":"termux","clientVersion":"1.0"},"threatInfo":{"threatTypes":["MALWARE","SOCIAL_ENGINEERING","UNWANTED_SOFTWARE","THREAT_TYPE_UNSPECIFIED"],"platformTypes":["ANY_PLATFORM"],"threatEntryTypes":["URL"],"threatEntries":[{"url":"http://example.com"}]}}'
💡 如果返回 {}(空对象),说明 example.com 没有威胁。如果返回包含 matches 字段,说明有命中。两种情况都表示 API 连通正常。
3

配置 Virustotal API 密钥并安装 Python 依赖

Virustotal API v3 免费版限制每分钟 4 次、每天 500 次查询。对于检测需求足够了。

# 设置 VT API 密钥 echo 'export VT_API_KEY="你的Virustotal API密钥"' >> ~/.bashrc source ~/.bashrc # 安装 Python requests 库 pip install requests # 测试连通性:查询一个已知域名 curl -s --request GET \ --url "https://www.virustotal.com/api/v3/domains/google.com" \ --header "x-apikey: $VT_API_KEY" | jq '.data.attributes.last_analysis_stats'
💡 返回 JSON 对象如 {"malicious":0,"suspicious":0,"undetected":92,...} 表示连通成功。

⚠️ 两个最容易踩的坑

Play 商店版 Termux 不兼容——特征是运行 pkg update 时报「repository is not signed」或所有包 404。唯一解决方案:卸载 Play 商店版,去 F-Droid 下载安装。
API 密钥泄露风险——.bashrc 里存 API 密钥是明文,如果手机被别人拿到或你把 .bashrc 复制到其他地方,密钥就暴露了。建议用 chmod 600 ~/.bashrc 限制权限,或者在 Termux 里用 termux-keystore 加密存储。

如何用一键脚本在手机端完成谷歌+QQ微信+反诈+APK四维检测?

工具链安装完成后,核心工作就是写一个 一键检测脚本。下面这个脚本覆盖了四大平台的全维度检测,支持单域名和批量模式。将以下内容保存为 ~/check.sh,然后 chmod +x ~/check.sh 即可使用。

#!/data/data/com.termux/files/usr/bin/bash # ===== 333Check 移动端四维域名检测脚本 ===== # 用法: ./check.sh example.com (单域名) # ./check.sh -f domains.txt (批量, 每行一个域名) set -euo pipefail DOMAIN="${1:-}" LOG="$HOME/detect_$(date +%Y%m%d).log" TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') detect_single() { local d="$1" local score=0 echo "========================================" echo "🔍 检测域名: $d | 时间: $TIMESTAMP" # [1/4] 谷歌 Safe Browsing API GSB=$(curl -s -m 10 -X POST \ "https://safebrowsing.googleapis.com/v4/threatMatches:find?key=$GSB_API_KEY" \ -H "Content-Type: application/json" \ -d "{\"client\":{\"clientId\":\"333ck-mobile\",\"clientVersion\":\"1.0\"},\"threatInfo\":{\"threatTypes\":[\"MALWARE\",\"SOCIAL_ENGINEERING\",\"UNWANTED_SOFTWARE\"],\"platformTypes\":[\"ANY_PLATFORM\"],\"threatEntryTypes\":[\"URL\"],\"threatEntries\":[{\"url\":\"http://$d\"}]}}") if echo "$GSB" | jq -e '.matches' > /dev/null 2>&1; then echo " [1/4] Google SB .... 🔴 DANGER" else echo " [1/4] Google SB .... 🟢 SAFE" score=$((score + 25)) fi # [2/4] 反诈 DNS 多运营商检测 CT_DNS=$(dig +short +time=3 @114.114.114.114 "$d" 2>/dev/null) YD_DNS=$(dig +short +time=3 @211.137.130.19 "$d" 2>/dev/null) LT_DNS=$(dig +short +time=3 @202.96.209.133 "$d" 2>/dev/null) FZ_ISSUE=false for ip in "$CT_DNS" "$YD_DNS" "$LT_DNS"; do if echo "$ip" | grep -qE '^(127\.|0\.0\.0\.0|::1)'; then FZ_ISSUE=true; fi done if [ "$FZ_ISSUE" = true ]; then echo " [2/4] 反诈DNS .... 🔴 疑似拦截" else echo " [2/4] 反诈DNS .... 🟢 正常解析" score=$((score + 25)) fi # [3/4] QQ/微信拦截检测 (urlsec API) QQ_RESULT=$(curl -s -m 8 \ "https://cgi.urlsec.qq.com/index.php?m=url&a=valid&url=http://$d" 2>/dev/null) if echo "$QQ_RESULT" | grep -qi 'evil\|danger\|malicious\|phishing\|block'; then echo " [3/4] QQ/微信 .... 🔴 已拦截" else echo " [3/4] QQ/微信 .... 🟢 正常" score=$((score + 25)) fi # [4/4] Virustotal APK 爆毒检测 VT_STATS=$(curl -s -m 12 \ --request GET --url "https://www.virustotal.com/api/v3/domains/$d" \ --header "x-apikey: $VT_API_KEY" | jq -r '.data.attributes.last_analysis_stats // {}') VT_MAL=$(echo "$VT_STATS" | jq -r '.malicious // 0') VT_SUS=$(echo "$VT_STATS" | jq -r '.suspicious // 0') if [ "$VT_MAL" -gt 0 ] 2>/dev/null; then echo " [4/4] VT APK ..... 🔴 $VT_MAL引擎报毒" elif [ "$VT_SUS" -gt 0 ] 2>/dev/null; then echo " [4/4] VT APK ..... 🟡 $VT_SUS引擎可疑" score=$((score + 10)) else echo " [4/4] VT APK ..... 🟢 0引擎检出" score=$((score + 25)) fi # 综合评分 echo " --------------------------------------" if [ $score -ge 80 ]; then echo " 🟢 综合评分: $score/100 — 域名安全" elif [ $score -ge 50 ]; then echo " 🟡 综合评分: $score/100 — 存在风险" else echo " 🔴 综合评分: $score/100 — 高危!立即处理" fi # 记录日志 echo "$TIMESTAMP|$d|$score" >> "$LOG" echo "" } if [ "$DOMAIN" = "-f" ]; then while read -r d; do [ -z "$d" ] && continue detect_single "$d" sleep 15 # Virustotal API 限速: 4次/分钟 done < "${2:-/dev/stdin}" else detect_single "$DOMAIN" fi

脚本的核心设计思路是每个平台独立检测、统一评分。四个平台各占 25 分,满分 100。分数阈值:≥80 绿色安全、50-79 黄色风险、<50 红色高危。这个评分机制让你一眼判断域名状态,而不需要在四行结果里来回比对。

📊 评分规则速查

• 谷歌 SB:SAFE → +25 / DANGER →+0
• 反诈 DNS:正常解析 → +25 / 疑似拦截 → +0
• QQ/微信:正常 → +25 / 已拦截 → +0
• VT APK:0检出 → +25 / 可疑 → +10 / 报毒 → +0
• 综合:80-100 🟢 安全 / 50-79 🟡 注意 / 0-49 🔴 高危

如何让手机端自动定时检测并推送通知?

手动跑脚本只是第一步,真正有用的是定时自动检测+异常告警——你不需要主动去查,手机会在域名状态变化时通知你。

1

安装 Termux:Boot 和 Termux:API(从 F-Droid 或 Google Play 下载配套 APK)

Termux:Boot 让脚本在手机开机时自动启动。Termux:API 提供 termux-notification 命令用于推送手机通知。两个都需要从应用商店下载对应的 APK 并安装,然后在 Termux 里安装对应的包:

# 安装 Termux API 包(用于通知推送) pkg install termux-api -y # 测试通知功能:发送一条测试通知 termux-notification --title "333Check检测" --content "通知推送配置成功"
2

配置 Termux crontab 定时检测

Termux 自带 cron 服务(通过 crond)。每天定时跑 4 次检测:

# 安装 cron pkg install cronie termux-services -y # 编辑 crontab crontab -e # 添加以下定时任务(示例:每6小时检测一次) 0 */6 * * * ~/check.sh your-domain.com >> ~/detect_cron.log 2>&1 # 每天早上9点批量检测(配合 domains.txt 域名列表文件) 0 9 * * * ~/check.sh -f ~/domains.txt >> ~/detect_cron.log 2>&1 # 启动 crond 服务 sv-enable crond
💡 Termux 的 crond 不会在后台常驻——需要保持 Termux 在后台运行(不要划掉通知栏的 Termux 常驻通知)。如果手机有「电池优化」设置,务必把 Termux 设为「不优化」。
3

增加异常告警:检测到域名被红时自动推送手机通知

detect_single() 函数末尾增加告警逻辑。当评分 < 50 时,自动推送系统通知:

# 在 detect_single() 函数末尾、echo "" 之前加入: if [ $score -lt 50 ]; then termux-notification \ --id "333ck-alert" \ --title "🚨 域名告警: $d" \ --content "综合评分 $score/100 · 请立即处理" \ --priority high \ --alert-once \ --vibrate 500,200,500 elif [ $score -lt 80 ]; then termux-notification \ --id "333ck-warn" \ --title "⚠️ 域名风险: $d" \ --content "综合评分 $score/100 · 建议关注" fi

移动端检测与服务器端检测相比有哪些优缺点?

为了让你直观理解移动端检测的定位,我们做了 20 组对比实验:同一批域名,同时用手机 Termux(WiFi + 4G 各一次)和服务器(香港/东京/法兰克福三节点)跑四维检测,对比三类核心指标:

对比维度 手机 Termux (WiFi) 手机 Termux (4G) 服务器 (香港) 服务器 (东京)
单域名检测耗时 2.8-4.2 秒 3.5-5.8 秒 1.8-3.1 秒 2.1-3.6 秒
谷歌 SB 结果一致性 100% 100% 100% 100%
反诈 DNS 国内准确性 最高 中等
QQ/微信拦截检测 准确 准确 准确 准确
VT APK 检测 0/95 0/95 0/95 0/95
多网络环境切换 一键切换 一键切换 不支持 不支持
7×24 自动运行 需保活 需保活 天然支持 天然支持

📊 实测结论:手机端和服务器端不是替代关系,而是互补关系

手机端的独特优势在于反诈 DNS 检测的准确性——因为手机使用运营商的真实 DNS,检测结果更接近普通用户的实际体验。而服务器(特别是海外服务器)跑反诈 DNS 检测时,DNS 请求走的是 BGP 路由到国内,返回结果可能与用户端不同。

推荐策略:服务器端做 7×24 持续监控 + 数据存储 + 趋势分析;手机端做「多网络环境验证」和「紧急手动排查」。两者结合,覆盖所有检测场景。

手机端 × 服务器端 检测互补策略 🖥 服务器端检测(主监控) ✅ 7×24 crontab 自动运行 ✅ 历史数据存储 + 趋势图 ✅ Telegram/企微/邮件告警 ✅ 多节点跨境对比检测 ⚠️ 反诈DNS国内准确性中等 ⚠️ 无法模拟移动用户真实网络 📱 手机端检测(验证+应急) ✅ 运营商真实DNS检测 ✅ WiFi/4G 一键双网切换 ✅ 手机通知即时告警 ✅ 零成本、随身携带 ⚠️ 需保活 Termux 后台 ⚠️ API 限速(VT: 4/min) 服务器异常告警 → 手机确认验证 → 双端确认后决策

▲ 手机端与服务器端检测互补策略:服务器端做主力监控,手机端做多网络验证和紧急排查

客户怎么说?

「我管理着12个海外博彩域名,经常半夜收到用户说链接打不开。以前必须爬起来开电脑查,自从在手机上用Termux配好一键检测脚本后,躺在床上30秒就知道是哪个平台标红的——是谷歌Safe Browsing还是QQ微信拦截,一目了然。省下的不只是时间,还有半夜起床的血压。」

——某东南亚游戏运营商,使用333Check免费检测 + Termux移动端脚本管理12个域名

「我们的APP推广域名被反诈中心DNS劫持了,服务器在香港检测一直显示正常,但国内用户就是打不开。用4G手机Termux跑了一次dig检测,电信和联通的DNS都返回了127.0.0.1——这才定位到是运营商级别的DNS劫持,不是谷歌标红。如果只依赖海外服务器检测,这个问题永远发现不了。」

——某国内工具类APP运营负责人,通过手机端多网络检测发现DNS劫持根因

检测到域名被红?需要更全面的四维检测和自动告警?

手机端Termux检测方案是免费且开源的——本文提供的脚本可以直接用,不需要任何付费工具。
如果你想跳过搭建过程,直接获得四维检测结果+实时告警+历史趋势分析,联系 @AICDN 免费测试。
我们帮你跑第一次全维度检测并出具标准报告,3分钟出结果。

🔍 提交域名 · 免费获取四维检测报告