YOURSJEYO / claude-switcher
git clone https://github.com/YOURSJEYO/claude-switcher.git
Fail-Closed 账号环境管理器:11项环境指纹审计(Block-on-Fail)、手写STUN协议栈的WebRTC泄漏探针、Kill-Switch断网急停、多账号快照隔离、配置漂移自愈 —— 让真实IP在物理上无法泄漏
—
stars, 24h
+571
stars, 7 days · #106
+571
stars, 30 days · #503
571
★ total · +571% this week
52
forks · 4 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageShell
LicenseMIT
Created2026-10-14 (6d ago)
Last pushtoday
Watchers0
OwnerUser
Links
README excerpt
# Claude 切换器 **Fail-Closed 账号环境管理器 —— 让真实 IP 在物理上无法泄漏** > 🛠️ **本项目持续活跃更新中**——防护项随目标平台风控演进不断增加,见下方路线图。 --- ## 为什么做这个 AI 服务平台的风控已经从"看 IP"进化到**全维度环境画像**:时区、Locale、DNS 出口、WebRTC 候选地址、设备指纹、行为时序。绝大多数封号不是因为你做错了什么,而是某个你没意识到的场景里,真实出口 IP 悄悄溜出去了一次——哪怕只是一个 TCP SYN 握手包。 本项目的立场:**防御不建立在"用户记得"上,而建立在系统级的硬性物理约束上**。 > 哪怕代理暴毙、哪怕软件静默升级、哪怕随手乱点,也绝对发不出一次直连请求。 ## 核心创新 ### 1. Block-on-Fail 环境审计引擎 每次启动前强制执行 14 项环境指纹审计,**任一指标不达标,应用物理上不会被拉起**: | # | 检查项 | 防什么 | |---|---|---| | 01 | 代理内核 | 代理根本没在跑就启动 | | 02 | TUN 网卡 | 系统代理开着但流量没被接管 | | 03 | 出口 IP | 出口国家/地区异常 | | 04 | IP 一致性 | 出口 IP 突变(跳节点是风控信号) | | 05 | 时区 | 系统时区与 IP Geo-location 冲突 | | 06 | 地区 Locale | 系统区域设置不符 | | 07 | IPv6 | 双栈旁路直连(最隐蔽的泄漏通道之一) | | 08 | DNS 隧道 | Fake-IP 校验,杜绝明文 DNS 泄漏 | | 09 | WebRTC | 多节点 STUN 交叉探测(详见第 2 节) | | 10 | 保镖守护进程 | Kill-Switch 是否在线(详见第 3 节) | | 11 | 置顶路由规则 | 生态域名是否被强制走代理(详见第 6 节) | | 12 | 客户端语言 | 防止 JS 层 `navigator.language` / `Intl` 读出系统中文 | | 13 | ASN 属性 | 住宅宽带 vs 机房 IP(Residential vs Datacenter) | | 14 | 生态可达性 | claude.ai / api.anthropic.com 连通性验证 | > 关于「IP 与上次一致」:除了比对上一次出口,审计引擎还会维护 48 小时出口 IP 历史——**48 小时内出口 IP 变化 ≥3 次会亮黄色警告**(不阻断启动)。IP 频繁漂移意味着账号画像在风控眼里"居无定所",建议固定一条高质量住宅节点长期使用。 ### 2. 纯标准库手写 STUN 协议栈的 WebRTC 泄漏探针 不依赖浏览器内核(headless Chrome 的 ICE 子系统在无人值守场景下根本不工作——我们踩过这个坑),直接用 `socket` + `struct` 手工构造 RFC 5389 Binding Request,解析 XOR-MAPPED-ADDRESS。 真正的创新在**交叉验证拓扑**:探测列表同时包含全球节点(Google/Cloudflare)与国内骨干节点——走隧道时应回传代理出口 IP,裸连时国内节点必然秒回并当场抓获真实 IP。两种状态可区分、零误报、不依赖"恰好不通"。 ### 3. Fail-Closed Kill-Switch 常驻守护进程以 10s 周期巡检隧道健康度(内核进程 × 虚拟网卡双因子),隧道中断即刻终止受保护进程。区别于客户端自带的 Fail-Open 容错重试——那种机制会把含真实 IP 的握手包送到对方网关日志里,哪怕最终"超时失败"。 ### 4. Session Snapshot 快照隔离 多账号不是"登出再登入"(那会产生大量认证事件与指纹抖动),而是**物理交换数据卷**:每个账号持有独立的 Device Fingerprint、OAuth Credential 与本地状态,切换时原子化封存/载入。对服务端而言,每个账号看到的都是一台恒定不变的设备。 ### 5. 配置漂移自愈(Watchdog) 软件更新会静默重置你的安全配置(我们的生产环境里,TUN 开关被代理客户端更新重置了 4 次,系统时区被改回 8 次)。Watchdog 周期巡检 + 基线回滚 + 全程留痕,配置漂移从"事故"降级为"日志里的一行记录"。 ### 6. Pinned Routing 置顶路由 目标服务全家族域名及其生态依赖(Turnstile 人机验证 / Telemetry / Payment / Support)置顶锁定代理路由,优先级高于任何第三方分流规则集——不信任、不验证、直接免疫规则库误判。 ## 实战战绩 这不是玩具项目,每个机制都有生产环境实战记录: [code] ## 界面 原生 SwiftUI 单文件应用(无 Xcode 工程、无第三方依赖,`swiftc` 一条命令出可执行文件),图标由 Swift 代码程序生成——整个仓库不含一张设计素材。 ## 安装 **系统要求**:macOS · Clash Verge / Shadowrocket / sing-box / ClashX / Surge 任一(TUN 可用)· Claude 桌面版 · python3 > **Windows 用户**:`windows/` 目录提供 Windows 版(PowerShell + WPF,Beta),安装与注意事项见 windows/README.md。 > **Linux 用户**:`linux/` 目录提供 Linux 版(bash + systemd,Beta),设计取舍(无官方桌面版→切换浏览器登录态)见 linux/README.md。 [code] ## 地区自适应 不再锁死美国:安装程序按当前出口 IP 的国家自动锁定**目标国家 + 时区 + 地区格式**三件套(出口是 CN 会直接拒装,逼你先挂好代理)。之后换了其他国家的节点,不用重装,一条命令重新适配: [code] 14 项检查里的「出口 IP / 时区 / 地区」全部按新目标判定,界面无需任何改动。 ## 不会配置?交给你的 AI 仓库根目录的 `AGENTS.md` 是一份完整的 **Agent 交接提示词**:把它直接粘贴给你的本地模型(Kimi Code / Cursor / Claude Code 等),它会按文档自动完成环境检查、安装、配置与验收。里面还附了我们实战踩过的全部坑的排障手册。 ## 使用 1. 双击桌面「Claude切换器」→ 等待 14 项检查 2. 全绿 → 选账号启动;有红项 → 「一键修复」自动处理 3. B 账号首次使用登录一次,以后 A/B 随切随用、互不干扰 4. 换了其他国家的节点 → 跑一次 `~/.local/bin/claude-switch.sh set-region`,国家/时区/地区格式一键重新锁定 ## 使用卫生与被封急救 工具能兜底技术泄漏,兜不住主动作死。以下每条都是社