一个 Claude Code Skill,本机一键体检 Claude Code / Anthropic 账号的封号风险。
针对中国区用户最常见的误封场景:环境画像与北美默认人设对不齐时,会被风控系统标记为高风险——哪怕你完全没有违规行为。
mkdir -p ~/.claude/skills
cd ~/.claude/skills
git clone https://github.com/fourierwang66666/claude-ban-risk-check.git在 Claude Code 里直接说:
帮我做个封号风险体检
或显式触发:
/claude-ban-risk-check
Claude 会自动跑聚合脚本,输出一份带分数 + 修复建议的中文报告。
也可以单独跑某一项:
python3 ~/.claude/skills/claude-ban-risk-check/scripts/check-ip.py| 维度 | 权重 | 检测内容 |
|---|---|---|
| IP 类型 | 30 | 住宅/机房/VPN/移动 + 历史滥用分(ipapi.is)+ 可选独立举报人数(AbuseIPDB) |
| 账号痕迹 | 20 | OAuth+API key 共存、多 key 轮换、凭证在 iCloud/Dropbox/git 里 |
| IP 稳定性 | 15 | 7 天内跨国跳变 |
| 会话频率 | 15 | jsonl 时间戳分析:>5/秒、>60/分、24/7 无间隔 |
| Shell 批量 | 15 | for 循环、xargs claude、sub2api 痕迹 |
| 时区/语言 | 10 | 系统 tz / lang / IP 国家三者对齐 |
| cron/launchd | 10 | 定时调用 Claude/Anthropic 的后台任务 |
| 代理链 | 8 | 环境变量 vs settings.json 冲突 |
| DNS 泄露 | 7 | DNS 出口 vs IP 出口国家不一致 |
总分越低越好:
- 0–14:✅ safe
- 15–34:🟡 watchful
- 35–59:🟠 at_risk
- 60+:🔴 critical
check-ip.py 默认只用免费的 ipapi.is。想看"过去 90 天有多少独立用户举报过这个 IP",去 abuseipdb.com 注册免费账号拿 key(1000 次/天),然后:
export ABUSEIPDB_KEY=your_key_hereAnthropic 的封号判断(从公开行为反推)核心不是"用户做了什么",而是"用户看起来像不像北美默认用户"。九个检测项扫的就是这套画像里的关键信号——IP 出口、地理一致性、调用节奏、账号痕迹。Skill 把它们量化成一个 0-100 的分数,越低越像默认用户,越高越像被标记的非默认。
- 只覆盖本机可观察的信号:浏览器 WebRTC 泄露、设备指纹、Anthropic 服务端的内部画像因子都看不到,只能靠提示提醒。
- 会话频率检测会误报:Claude Code 自身的多 agent 并发触发的峰值可能踩到 5 次/秒的阈值,这是工具特征不是机器人,需要结合 shell 历史和 cron 综合判断。
- 风控规则是黑盒:九项指标和权重是从社区流传的《防封要点》反推出来的,跟 Anthropic 真实的判定函数不完全等价。Skill 会随着观察到的真实封号案例迭代。
- 修复建议不会自动执行:所有结果只输出建议文本,不会代替用户修改系统配置(修改时区、改 DNS 都需要用户主动操作)。
- 仅 macOS 测试通过:Linux 应该大部分能跑(除了 keychain / scutil 部分),Windows 没适配。
claude-ban-risk-check/
├── SKILL.md # Skill 触发文档 + 报告模板
└── scripts/
├── aggregate.py # 编排 + 打分
├── check-ip.py # IP 类型 + 滥用分
├── check-ip-stability.py # 跨国跳变
├── check-timezone.py # 时区/语言/IP 一致性
├── check-proxy.py # 代理链
├── check-dns.py # DNS 泄露
├── check-account.py # 账号痕迹
├── check-sessions.py # jsonl 频率
├── check-shell-history.py # 批量调用
├── check-cron.py # cron/launchd
└── _emit.py # JSON 输出辅助(已废弃)
MIT