无尘阁日记

无尘阁日记

Claude 天天封号,真有人把它关进虚拟机了?
silcano

我把 Claude 关进虚拟机,11 项检查全绿。

不是比喻,是真关。视频号上那条讲 GitHub 项目的片子,说的是一个叫 Claude Cage 的东西 —— 它给 Claude Code 造了一个轻量 Linux 虚拟机,把"网络出口、时区语言、浏览器指纹"这三样最容易穿帮的东西全部搬进笼子里管,主机怎么折腾都不影响它。

我把仓库、官网文档、还有它那张检查清单通读了一遍,下面这篇就是完整拆解:它到底做什么、怎么下、怎么装、每一步会卡在哪、哪些宣传是夸大。看完你自己能装。

一、先说人话:它在解决什么

你要用 Claude,绕不开一个死循环:

账号在 A 国注册,人坐在国内,节点是机场的共享 IP,浏览器时区还是东八区,语言是简体中文。Claude 那边看到的是一台"物理上不可能存在"的机器 —— 于是在你眼里,就成了莫名其妙的封号。

社区里折腾这套东西的土办法有三个:指纹浏览器、VPS 上跑、改系统时区。三个都有毛病:指纹浏览器只管浏览器不管命令行;VPS 上跑要买机器、要配环境、延迟还高;改本机时区会把你自己所有软件一起改乱。

Claude Cage 的思路是第四个:不改主机,另开一台机器。 用 Lima 起一个轻量 Linux 虚拟机,虚拟机里的终端、浏览器、编辑器全部归它管,网络流量强制走它内置的 Mihomo 代理核心,时区和语言跟着出口 IP 自动同步。你的 Mac / Windows 主机一点都不动。

Claude Cage 官网首屏

官网那句话写得挺坦诚:「把 Claude 大小姐关起来。为了更好地保护我们的相遇。」

二、它不是什么(这段很重要,别被标题党带偏)

很多人一看"防封号"就以为装完就万事大吉。先把边界划清楚:

  • 它不提供代理,也不卖节点。 作者在 README 里写得很直白:你唯一需要的,是一个靠谱的代理节点,本项目不做任何代理推广。装完没节点,等于买了保险柜没钥匙。
  • 它不提供 Claude 账号,也不提供系统授权。 macOS 镜像、Windows 镜像的授权你自己解决。
  • 它和 Anthropic 没有任何关系。 独立社区项目,官网页脚专门写了这句。
  • 它不保证你不被封。 这句是文档原话的转述:网络检查只能展示配置和采样证据,不能保证账户不受平台限制,也不能替代完整的虚拟化安全审计。谁跟你说"装了绝对不封",那是在卖你东西。

还有一个坑必须提前说:GitHub 上搜 "ClaudeCage" 会出来两个不同的项目。视频里讲的是 Lee-xeo/Claude-Cage(有 Mihomo、有 11 项检查、有手机配对、有 VPS 部署,Go 写的)。另一个 jkoppen-headsfirst/ClaudeCage 是个单文件的 bubblewrap 沙箱,只管文件隔离,不管网络和指纹。别下错。

GitHub 仓库页

仓库现状(我截的实时数据):Star 1.3k、Fork 128、11 个 tag、257 次提交、7 个贡献者。语言构成 Go 43.2%、JavaScript 27.8%、C# 6.1%、PowerShell 5%、Python 4.8%、Swift 4.5% —— 从 C# 和 PowerShell 就能看出来,Windows 那边是真做了原生适配,不是套壳。

三、下载:文件认准这几个名字

当前版本 v0.1.7-rc.1。别从别的地方下,只认 GitHub Releases。

官网下载区

平台 文件名 系统要求
macOS Cage-0.1.7-rc.1-macos-arm64.dmg Apple Silicon,macOS 14+
Windows Cage-0.1.7-rc.1-windows-amd64-setup.exe Win 10 22H2 / 11,x64
Linux Cage-0.1.7-rc.1-linux-amd64.deb Debian 12 / Ubuntu 22.04 / 24.04,x86_64,需 KVM
Android Cage-0.1.7-rc.1-android-arm64.apk Android 8.0+,arm64
iOS 无预编译包,需自行构建 iOS 17+,需 Secure Enclave

不支持: Intel Mac、Windows ARM64、Linux ARM64。老款 Intel 的 MacBook 到这里就可以关页面了,作者明说暂不支持。

直链(把版本号换掉就能下历史版本):

# 项目主页(推荐从这里点)
https://lee-xeo.github.io/Claude-Cage/#download

# GitHub Releases(版本说明 + 校验文件)
https://github.com/Lee-xeo/Claude-Cage/releases

# macOS
https://github.com/Lee-xeo/Claude-Cage/releases/download/v0.1.7-rc.1/Cage-0.1.7-rc.1-macos-arm64.dmg

# Windows
https://github.com/Lee-xeo/Claude-Cage/releases/download/v0.1.7-rc.1/Cage-0.1.7-rc.1-windows-amd64-setup.exe

# Linux(下完执行 sudo apt install ./Cage-0.1.7-rc.1-linux-amd64.deb)
https://github.com/Lee-xeo/Claude-Cage/releases/download/v0.1.7-rc.1/Cage-0.1.7-rc.1-linux-amd64.deb

# Android
https://github.com/Lee-xeo/Claude-Cage/releases/download/v0.1.7-rc.1/Cage-0.1.7-rc.1-android-arm64.apk

装完的东西是自包含的:工作台、Mihomo 代理核心、浏览器、编辑器全在包里。不用预先装 Go、Node.js、Docker、Clash,这点比一堆"先配环境再上手"的开源项目友好太多。

四、第一次启动,按这五步走

这一段是全文最该照着做的部分,我按界面顺序拆开,把官方文档里散落在各处的坑都并进来了。

第 1 步:建一个 Cage 账户

打开软件第一屏不是干活,是让你先设一个本机账户:用户名 + 至少 8 位密码。

这个账户只负责"解锁这台机器上的 Cage",跟 Claude 订阅没关系 —— Claude 的登录在虚拟机里另外做。

重点:目前没有在线密码找回。 忘了就得走重装流程。设的时候想清楚,找个密码管理器存一下。macOS 上还能顺手开 Touch ID,日常解锁不用敲密码。

第 2 步:选客机系统 + 定存储目录

"客机系统"就是笼子里那台机器的操作系统。两个选项:

  • 自动匹配本机系统版本 —— 你 Mac 是 macOS 26,笼子里也给你装 macOS;你 Win 11,笼子里也 Win 11。好处是开发工具链一致,坏处是镜像大、慢。
  • 手动选 —— 大多数人选 Debian 或 Ubuntu 22.04 就够了,轻、快、装一次几百兆。

这里有个真坑: 主机是 Windows 10,想给笼子里装 Windows 11,你的主机必须是 Win 11 专业版 / 企业版 / 教育版,而且要支持 Hyper-V。家庭版做不了,只能退回去选 Debian 或 Ubuntu。Intel Mac 同理,直接选 Linux。

然后是存储目录。默认位置:

  • Mac / Linux:~/.claude-cage/state
  • Windows 正式安装版:安装目录下的 CageData(比如装在 D:\Cage,数据就在 D:\Cage\CageData)

可以改,但不要选磁盘根目录、网络盘、已有的项目文件夹。这个目录以后不要手动删 —— 你的环境、装的工具、Claude 的登录状态全在里面,删了等于从零开始。升级、重装、卸载应用都会保留它。

磁盘格式也有讲究:Windows 用 NTFS,Linux 用 ext4 / XFS / Btrfs,macOS 用已启用所有权的 APFS。

第 3 步:配代理(最容易翻车的一步)

点"下一步:配置代理",三种来源任选:

来源 怎么填
订阅链接填名称 + HTTPS 订阅地址
本地 YAML拖入 Clash / Mihomo 的 YAML、YML、JSON(单个 ≤ 8 MiB),也能直接粘内容
手动节点HTTP 或 SOCKS5 的服务器、端口、认证字段

三条硬规矩,不知道会白白卡一小时:

  1. 订阅必须是 Clash / Mihomo 的 YAML,里面得有 proxies 或 payload。Base64 那种一长串、单个节点分享链接(ss://、vmess://)、只引用远程 provider 的配置,全都不认。你的机场只给 Base64,就去找客服要 Clash 订阅链接,或者自己转(别把订阅传到在线转换网站,那是直接把节点送人)。
  2. Cage 用自己独立的 Mihomo 核心,不会自动读你本机 Clash 当前选中的节点。 你本机跑得好好的,不代表 Cage 里也是同一个出口。必须自己在"节点"页选完,再点 「应用代理」。
  3. "保存设置"不等于"应用代理"。 文档专门写了一句:未应用的选择只是草稿。多少人卡在这儿,以为配完了,其实没生效。

如果你有多层中转(比如中转 + 住宅 IP),"节点"页切到链式代理,按连接顺序排,最后一个设成"最终出口"。预览长这样:Cage → 中转节点 → 住宅代理 → 目标网站,目标网站看到的是最后那跳。

第 4 步:等镜像下载(这里会误解一次)

点"开始安装"之后,它开始下系统镜像、校验、装系统、配工具。

关键认知:镜像下载走的是你主机的网络,不是 Cage 里配的那个代理节点。 文档写得很明确 —— 系统镜像和镜像版本目录通过主机网络下载,遵循主机代理设置。

所以:你用 Clash,就直接开它的系统代理或 TUN,不然镜像下不动。而且代理连不上、或者 PAC 解析失败时,它报错、保留已下载的文件、绝不自动回退直连。修好代理回来点"继续安装",已下的部分会尽量续传;但摘要对不上就必须整个重下。

体量参考:Debian 13 基础镜像约 320–325 MiB,开发工具另外装。Debian 初始虚拟磁盘上限 24 GiB。macOS / Windows 客机要给系统和开发工具留更多空间,建议准备 60G 以上。

第 5 步:进工作台,跑第一条命令

检查通过后点"进入工作台"。左边栏是项目列表,点项目旁的加号打开你自己的目录,然后点"新建 Claude 终端",在里面跑:

claude

第一次会弹出一个浏览器窗口让你登录授权 —— 这个浏览器是 Cage 里的浏览器,不是你的 Chrome。登录状态、Cookie 全留在笼子里。

建议第一件事别急着上生产项目:先让它读一个文件、改一行代码,然后回主机确认文件真的改了、改动范围对不对。确认隔离边界符合预期,再投正式任务。

五、那 11 项检查,逐条拆给你看

这是整个项目最核心、也是视频里一句话带过的部分。我把它的检查面板截下来了,11 项全过是这样:

网络与隔离检查 11 项全部通过

逐条翻译成人话:

检查项 它在确认什么
VM 出站约束虚拟机往外走的流量,只能从预设的那条路出去
终端检测通道笼子里跑命令行时,检测探针本身是通的(不然检查等于白做)
DNS 与解析约束DNS 请求也走代理,不会被本地运营商劫持或泄露真实位置
系统时区与语言虚拟机系统层面报的时区、语言,跟出口 IP 对得上
浏览器时区与语言浏览器 JS 读出来的时区语言,跟系统层一致(很多人只改一个,露馅就在这)
共享文件与宿主私有目录只共享了你授权的目录,主机的私有目录没被顺出去
宿主管理接口笼子里访问不到主机的管理端口(不然隔离就是纸糊的)
代理故障关闭代理一挂,立刻断外网,不会偷偷退回直连
UDP 出站约束公网 UDP 该断的断了(防 QUIC / 打洞绕过代理)
IPv6 出站约束IPv6 也掐了,防止 IPv4 走代理、IPv6 裸奔
出口符合已保存规则当前出口 IP 跟你设定的规则(静态 IP / 同城市 / 同国家)一致

看懂这张表你就明白它的设计哲学了:宁可断网,也不放行一条来路不明的连接。

UI 上还有两句细节值得注意。左上角写着"外网已放行 —— 关键检查已通过,后台继续核对出口规则与环境配置",意思是这 11 项过完不是一劳永逸,后台还在周期性采样。下面还有两行灰色小字:「第三方 IP 信誉:未自动获取社区评分」、「社区补充检查(提示项,不参与联网准入)」。

点开补充检查能看到 IP 质量(ip.net.coffee)和浏览器信息(fuck-claude.com)两个社区检测网站。这两个是参考,不通过也不拦你。

社区浏览器指纹检测参考

还有一个反直觉的设计:中国大陆出口是硬拦截。 检测地址命中大陆网段、或者定位为中国大陆,直接不放行 —— 而且文档明说:静态 IP 和"不限地区"这两种设置都不能豁免。所以你节点列表里那些香港落地、国内中转的,趁早别选。

六、多开账号、看额度、断号接续

这套功能对「一个订阅不够用」的人是刚需。原文的账号分三类,先分清,不然会一直找不到登录在哪:

  • Cage 账户:解锁本机工作台的,第 1 步建的那个。
  • Claude Code 账号:笼子里终端用的,在「设置 → Claude 账号」管。
  • 网页 / Claude Desktop 登录:各存各的,不会自动进调度池。

添加第二个订阅的操作路径:

  1. 「设置 → Claude 账号」→ 点「登录新账号」;
  2. 按弹出的登录终端和临时授权浏览器走官方登录(每个账号用自己独立的配置目录);
  3. 成功后按邮箱登记,可以加备注,检查「参与自动分配」是不是开着;
  4. 回项目旁点终端图标新建 Claude 终端,标签上会显示这次分到哪个号。

已经在普通终端里登录过的号,账号面板会自动识别出邮箱,点「加入调度」就行。注意它只读笼子里的登录,不读你主机系统终端上的账号。

额度怎么看: 打开面板就向官方 CLI 查五小时和七天的用量与重置时间,卡片上的"检查状态"能立刻刷新,不用先发一条消息试水。某个窗口没返回读数时,会保留上次的百分比和读取时间 —— 但那个旧数字不能当实时额度用。

给新会话分配账号,两种策略:

  • 均衡分配:看当前在用的终端数 + 剩余额度,条件接近时轮着来;
  • 按列表顺序优先:先用排前面的,额度耗尽或登录失效再顺延,可以手动"上移"调顺序。

关掉某个号的"参与自动分配",只影响以后新建的终端,正在跑的不管。

断号接续是这里最值钱的功能,但有个前置条件:先去账号卡片里填「接续分组」,只有同组的号才允许接同一份历史。没分组 = 不能跨号接续。

然后终端上方有账号按钮,展开选模式:每次询问 / 额度耗尽后自动接续 / 始终等待原账号。手动切的时候可以勾"恢复后继续未完成的任务"。

两个限制别忽略:一是必须先停掉原执行者,有工具在跑、有待审批、有后台任务,都会挡住切换;二是分组不是隔离,它只管自动交接的去向,不构成文件系统安全边界,工作资料和个人资料别乱混一组。

七、手机扫码接管:电脑跑,手机批

这个功能我第一次看到有点意外 —— 它把 Claude Code 的对话和工具审批搬到了手机上。

操作就三步:

  1. 电脑端:「设置 → 远程连接 → 手机连接」→ 点「生成配对二维码」;
  2. 手机端:首页点「连接电脑 → 扫码连接」,给相机权限,扫完整二维码;
  3. 二维码大概 2 分钟有效,过期就刷新。相机不方便的话,电脑点「复制配对码」,手机用配对码入口粘那串一次性代码。

扫完能干什么:在手机上接着看 Claude 的回复、执行进度、历史记录;工具调用会在手机上弹出审批,显示工具名和参数,你选"允许一次"或"拒绝";还能开远程浏览器、远程操作 Claude Desktop 的窗口。

几个坑:

  • 电脑必须在线。 电脑关机、Cage 停了,手机什么都干不了,因为环境在电脑上跑。
  • 审批前一定要看参数里的命令和路径。手机上点"允许"和电脑上点"允许"后果一模一样。
  • 远程浏览器只显示单个页面,支持公网 IPv4 的 HTTP/HTTPS。要弹窗登录、传附件、放声音,回电脑做。
  • Android 直接下 APK(8.0+,arm64)。iOS 得自己编译:Mac 装完整 Xcode,装 Node.js 24 和对应 Go 版本,然后
npm ci --prefix ui
bash mobile/build.sh ios
open mobile/ios/CageMobile.xcodeproj

Xcode 里选 CageMobile scheme,Signing 里选自己的开发团队,插上 iPhone 点 Run。没开发者账号的会卡在签名这步,提前有心理准备。

八、扔到自己 VPS 上:不用 KVM

如果你嫌本机跑虚拟机吃内存,可以直接部署到自己的 Linux VPS。这条路走的是 rootless 容器,不需要 KVM —— 这点比在本机跑虚拟机门槛低。

服务器要满足这些(一条不满足就部署失败,先自查):

要求 具体
架构Linux x86_64(当前唯一目标,ARM 的 VPS 不行)
服务管理systemd 用户服务
内核cgroup v2 + rootless 用户命名空间
从属 ID/etc/subuid、/etc/subgid 至少 65536 个
设备节点/dev/fuse、/dev/net/tun 可用
基础工具OpenSSH、curl、tar、sha256sum、iproute2、iptables

部署流程全在 GUI 里:左栏「SSH 主机」→ 加号 → 填名称、地址、端口、用户名、密钥文件或 SSH agent → 点「连接此主机」→ 核对主机指纹(服务器那边会单独显示一份,对不上先查原因,别硬点继续)→ 首次点「部署并连接」,它自己传程序、建环境。

一个容易误会的点:关掉本地窗口或断 SSH,不等于停掉服务器上的任务,只是松开客户端连接,环境还在跑,重连就能接到活着的会话。真要停,得进云端工作台点"停止环境"。

千万别用"删容器 / 清理全部引擎数据"的方式升级,容器的可写文件系统里存着你的持久资料,删了就是全丢。

九、七个必须提前知道的坑

  1. 项目之间不隔离。 同一个 Cage 环境里所有项目共用一套工具、账号、Linux 文件系统。文档原话:项目之间没有独立隔离。想要项目级隔离,这个工具给不了。
  2. 共享目录就是你本机的真目录。 你授权哪个项目,笼子里的修改和删除就直接落到本机文件,包括 git 操作。用之前先 commit,或者先备份。这条是全文最容易出事的一句。
  3. 出站只有 IPv4 TCP。 公网 UDP、IPv6、ICMP,以及从笼子里主动访问主机和局域网的连接,全部阻断。依赖这些的工具会坏 —— 比如某些游戏联机、mDNS 发现、ping 检测。
  4. 检查通过 ≠ 不封号。 再说一遍,因为它真的只是"降低特征暴露",不是"免疫"。
  5. 密码没有找回入口。 丢了就得重来。
  6. 镜像走主机网络。 主机代理没开系统代理/TUN,镜像就下不动,跟笼子里的节点配置没关系。
  7. Git 保护会动全局配置。 初始化时如果勾了"启用 Git 保护",它会写当前主机用户的全局 safe.bareRepository=explicit。普通的 .git 项目不受影响,但裸仓库必须显式指定路径才能操作,本机其他 Git 工具也会受影响。不确定就別勾。

十、谁该装,谁别装

该装: 长期用 Claude Code 写代码、订阅不止一个、被莫名封过号、本机环境已经乱到不敢随便改时区的人。多账号 + 手机审批这两个功能,本身就能省掉一台备用机的钱。

别装: 只想在网页版聊几句的 —— 你不需要一台虚拟机;Intel Mac 用户 —— 不支持;本机内存 8G 的 —— 虚拟机 + 浏览器 + 编辑器会把你按在地上;以及没有稳定节点的人,这工具的前提就是"你有个靠谱的代理",本末不能倒置。

还有个更省事的上手方式,作者自己在 README 里给的:把这句丢给你的 agent——

帮我安装 https://github.com/Lee-xeo/Claude-Cage ,并把 Cage 的代理配置为我本机 Clash 的 xxx 节点。

README 里那句吐槽我原样保留:「反正不会是 claude code 😁」。

十一、地址汇总

要什么 地址
项目主页 / 下载https://lee-xeo.github.io/Claude-Cage/
GitHub 仓库https://github.com/Lee-xeo/Claude-Cage
Releases(安装包 + 校验)https://github.com/Lee-xeo/Claude-Cage/releases
完整使用文档https://lee-xeo.github.io/Claude-Cage/docs/
安装与首次启动https://lee-xeo.github.io/Claude-Cage/docs/installation/
网络与代理https://lee-xeo.github.io/Claude-Cage/docs/network/
多账号与额度https://lee-xeo.github.io/Claude-Cage/docs/accounts/
手机连接https://lee-xeo.github.io/Claude-Cage/docs/mobile/
VPS 部署https://lee-xeo.github.io/Claude-Cage/docs/cloud/
报 bughttps://github.com/Lee-xeo/Claude-Cage/issues

许可证:项目主体 MIT,随附组件各按自己许可,内置的 Mihomo 按 GPL-3.0 独立分发。想商用、想二次开发,这两条得看一遍。

最后说句实在话:这类工具的价值不在"防封号"这三个字,而在于它把「环境一致性」这件事变成了可视、可核对的东西。以前你只能靠感觉判断"我这台机器看起来像不像一个正常用户",现在有 11 行绿字摆在那儿。至于账号安不安全,平台规则随时会变,谁也给不了保证 —— 这话项目自己都写在文档里了。

关于作者 · 江天(楠哥)
AI 实战导师 / 企业 AI 落地顾问 / 智能体工程师,17 年跨界、15,000+ 小时 AI 实操、20+ 套已交付工作流。 看完整履历海报 → skills 实验室 →