Claude Code 完整部署:家宽 VPS、AdsPower 与 claude-env

使用须知与免责声明:
- 地区严格一致(核心前提):务必保证 Claude 账号注册归属地与家宽 VPS 出口 IP 地区完全一致(例如:美区账号必须严格搭配美国本土住宅 IP 使用)。严禁使用美区账号挂载日韩、欧洲等异地节点访问,跨国 IP 跳跃是触发系统高危异常风控的最直接原因。
- 适用范围说明:本教程基于目前风控要求最为严苛的美区(US)环境进行实操演示,所有节点规划与浏览器指纹均以模拟合规美区家庭网络为准。
- 免责声明:本文仅为作者个人的技术部署与长期使用经验分享,不保证 100% 绝对不封号。Anthropic 官方的风控模型与反作弊机制处于动态演进中,请理性评估并自行承担使用风险与账号资产安全。
运行 Claude Code(Anthropic 官方命令行工具)时,网络环境主要面临两类风控限制:
- IP 属性限制:常见云厂商的数据中心(Hosting)IP 容易被风控系统直接拦截,使用家庭宽带(ISP)出口通常具有更高的可用性。
- 登录环境一致性:Claude Code 初始化时需要通过浏览器进行 OAuth 网页授权。如果授权网页所使用的 IP、浏览器指纹与命令行发起调用的出口 IP 存在较大差异,容易触发异地或异常调用风控。
本文介绍的方案通过统一出口网络与隔离运行环境解决上述问题:使用一台美国家宽 VPS 搭建 SOCKS5 代理作为唯一出口,网页端在固定指纹的 AdsPower 浏览器中登录,终端在内置代理分流的 claude-env Docker 容器中运行。
┌──> AdsPower(指纹浏览器)──> 登录 claude.ai 网页并完成授权
丽萨家宽 VPS ──┤ (通过 SOCKS5 代理)
(SOCKS5 代理) └──> claude-env (Docker 容器) ──> 运行 Claude Code CLI
(Mihomo 转本地 7890) └──> (可选) Looklook 远程终端
工具清单
| 工具 | 官网 / 地址 | 用途说明 |
|---|---|---|
| 丽萨主机 | lisahost.com(推荐支持链接) | 购买美国家庭宽带(ISP)VPS,作为统一出口节点 |
| AdsPower | adspower.net | 指纹浏览器,固定浏览器软硬件指纹与 Cookie |
| Docker Desktop | docker.com | 本地运行环境容器化,支持 Windows、macOS 与 Linux |
| claude-env | github.com/imythu/claude-env | 预置 Mihomo 代理路由的 Docker 镜像 |
| Claude | claude.ai | 网页端登录与 Claude Code OAuth 授权 |
| Net.Coffee Claude 检测 | ip.net.coffee/claude | 自查出口 IP 属性(住宅/机房)、纯净度与 Trust Score |
| Fuck Claude 环境检测 | fuck-claude.vercel.app | 自测浏览器时区、语言、WebRTC 及特征泄露 |
| Looklook | looklook.dev | 可选组件,提供基于 Web 的终端访问与移动端查看 |
第一步:VPS 部署与 SOCKS5 搭建
1. 选购与连接服务器
在丽萨主机选购带有“美国原生家庭宽带 IP”或“ISP 住宅”属性的 VPS。
☕ 写在前面:如果这篇部署教程切实解决了你的网络困扰,选购时不妨看在教程份上,使用我的 丽萨主机专属注册链接 进行购买支持,也算对博主熬夜折腾与梳理的一点心意回馈,十分感谢!
购买成功后,在服务器控制面板获取公网 IP、SSH 端口及 root 密码。
打开本地终端(Windows 使用 PowerShell,macOS 使用 Terminal),通过 SSH 登录服务器:
ssh root@<服务器IP> -p <SSH端口>
说明:首次连接输入
yes确认指纹。在 Linux 终端中输入密码时不显示字符或星号,直接输入完整密码后回车即可。
2. 部署 Dante SOCKS5 代理
登录 VPS 后,以 Debian/Ubuntu 系统为例,安装轻量代理服务端 dante-server:
apt-get update && apt-get install -y dante-server
获取主网卡名称(通常为 eth0 或 ens3):
ip route show default | awk '{print $5}'
备份默认配置并写入新配置(请将下方 eth0 替换为你实际查询到的网卡名称,端口可按需调整为其他未被占用的端口):
mv /etc/danted.conf /etc/danted.conf.bak
cat > /etc/danted.conf <<'EOF'
logoutput: syslog
user.privileged: root
user.unprivileged: nobody
# 监听地址与端口
internal: 0.0.0.0 port = 2080
external: eth0
# 认证方式:使用系统用户密码认证
socksmethod: username
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: error
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: error
}
EOF
创建专门用于 SOCKS5 认证的系统用户(不授予 shell 权限):
# 创建代理专用账号 proxyuser
useradd -r -s /bin/false proxyuser
# 设置密码(根据提示输入两次强密码)
passwd proxyuser
启动并设置开机自启:
systemctl restart danted
systemctl enable danted
systemctl status danted
注意:若 VPS 服务商控制台设有“安全组”或防火墙规则,需在后台放行对应的 SOCKS5 端口(如上例中的 TCP
2080)。
3. 本地验证连通性
在自己的电脑终端(PowerShell 或 Terminal)上执行以下命令测试代理是否可用:
curl --socks5-hostname <用户名>:<密码>@<服务器IP>:<端口> https://ipinfo.io
若能正确返回包含 VPS 出口 IP 及地区信息的 JSON,说明 SOCKS5 服务已正常可用。
第二步:在 AdsPower 中配置环境并登录 Claude
为了保证网页端登录环境与后续终端授权环境一致,需在 AdsPower 中固定浏览器指纹:
- 打开 AdsPower,点击 新建环境;
- 基础信息中自定义名称(如
Claude); - 代理设置:
- 代理类型:选择
SOCKS5; - 代理主机:填写 VPS IP;
- 代理端口:填写刚才配置的端口(如
2080); - 代理账号与密码:填写创建的代理账号(如
proxyuser)与对应密码;
- 代理类型:选择
- 点击 检查代理,确认检测结果显示连接成功且 IP 属于目标地区;
- 点击 确定 保存环境,随后点击 打开 启动该浏览器窗口;
- 环境与 IP 质量预检(关键步骤):
在打开的 AdsPower 专用浏览器中,建议在正式登录美区账号前,依次访问以下两个检测网址,确认当前伪装环境与网络质量:
- IP 质量与纯净度检测:打开 ip.net.coffee/claude
- 验证出口 IP 是否被识别为美国家庭宽带(ISP/住宅),而非数据中心机房(Datacenter);
- 查看 Trust Score(信任评分),确认处于安全区间,并检查 DNS 与 WebRTC 未出现异常归属地。
- 浏览器特征与环境泄露检测:打开 fuck-claude.vercel.app
- 进行一键特征扫描,检测浏览器的系统时区(避免留在东八区)、语言首选项、中文字体库、WebRTC 穿透等特征;
- 确认风险分处于安全低危状态,确保 AdsPower 已经有效屏蔽了本地设备的中国特征指纹。
- IP 质量与纯净度检测:打开 ip.net.coffee/claude
- 确认以上两项检测均无异常后,在同一个 AdsPower 窗口中访问 claude.ai,完成美区账号登录。
重要:后续所有与该账号相关的操作(日常提问、充值订阅、以及后文中的 Claude Code OAuth 授权),均必须在此时配置的 AdsPower 环境内进行,避免因多处异地登录导致环境关联。
第三步:安装 Docker 环境
claude-env 以容器方式运行,便于隔离依赖并管理本地网络路由:
- 访问 Docker Desktop 官网 下载并安装:
- Windows 用户建议勾选 WSL 2 后端;
- macOS 用户根据芯片类型(Apple Silicon 或 Intel)选择对应版本;
- Linux 用户直接通过包管理器安装 Docker Engine。
- 安装完成后启动 Docker,并在终端中验证:
docker --version
第四步:配置与启动 claude-env
claude-env 镜像内部预装了 Mihomo 代理路由。启动时容器会读取环境变量中的 SOCKS5 配置,并在容器内将上游代理转为本地标准的 HTTP / SOCKS 端口(7890),供 Claude Code 全局使用。
1. 创建工作目录与配置文件
在本地创建一个用于存放配置和持久化代码的工作目录。
macOS / Linux 用户:
mkdir -p claude-env-workspace
cd claude-env-workspace
cat > .env <<'EOF'
SOCKS_SERVER=<VPS公网IP>
SOCKS_PORT=<SOCKS5端口>
SOCKS_USERNAME=<代理用户名>
SOCKS_PASSWORD=<代理密码>
LOOKLOOK_AUTO_LOGIN=0
EOF
Windows 用户(PowerShell):
mkdir -Force claude-env-workspace
cd claude-env-workspace
@'
SOCKS_SERVER=<VPS公网IP>
SOCKS_PORT=<SOCKS5端口>
SOCKS_USERNAME=<代理用户名>
SOCKS_PASSWORD=<代理密码>
LOOKLOOK_AUTO_LOGIN=0
'@ | Out-File -FilePath .env -Encoding utf8
字段说明:
SOCKS_SERVER/SOCKS_PORT:第一步搭建的 SOCKS5 代理 IP 和端口;SOCKS_USERNAME/SOCKS_PASSWORD:SOCKS5 认证账号与密码;LOOKLOOK_AUTO_LOGIN:是否自动配置 Looklook 远程终端,默认设为0(暂不启用)。
2. 启动容器
在 claude-env-workspace 目录下执行容器启动命令:
macOS / Linux:
docker run -d --name claude-env --restart unless-stopped \
--env-file .env \
-p 7890:7890 \
-v "$PWD:/workspace" \
-v claude-config:/root/.claude \
-v looklook-data:/root/.local/share/looklook \
ghcr.io/imythu/claude-env:latest
Windows PowerShell:
docker run -d --name claude-env --restart unless-stopped --env-file .env -p 7890:7890 -v "${PWD}:/workspace" -v claude-config:/root/.claude -v looklook-data:/root/.local/share/looklook ghcr.io/imythu/claude-env:latest
挂载参数说明:
-p 7890:7890:将容器内代理端口映射到宿主机;-v "$PWD:/workspace":将当前本地目录挂载为容器内的工作区,代码双向实时同步;-v claude-config:/root/.claude:命名卷,用于持久化存储 Claude Code 的登录 Token,容器销毁后凭证不会丢失;-v looklook-data:/root/.local/share/looklook:命名卷,用于持久化 Looklook 状态。
3. 验证容器运行与网络
# 检查容器状态
docker ps
# 查看容器日志,确认 Mihomo 代理组件正常加载
docker logs claude-env
# 在容器内请求 IP 测试接口,检查出口是否为 VPS 的 IP
docker exec claude-env curl -s https://ipinfo.io
第五步:安装与授权 Claude Code
1. 进入容器终端
docker exec -it claude-env bash
2. 安装 Node.js 22 与 Claude Code
在容器内部依次运行:
cd /workspace
# 安装 Node.js 22 LTS
curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
apt-get install -y nodejs
# 全局安装 Claude Code
npm install -g @anthropic-ai/claude-code
# 检查安装
claude --version
3. 执行登录与网页授权
在容器中输入:
claude
首次运行会进入授权流程,终端会打印出类似如下的授权链接:
https://claude.ai/login?oauth=...
关键授权步骤:
- 复制终端中显示的完整 URL;
- 切换至前面已经登录好 Claude 的 AdsPower 浏览器窗口;
- 新建标签页,粘贴该 URL 并回车;
- 页面显示授权确认信息,点击 Authorize;
- 回到容器终端,终端将自动完成握手并进入 Claude Code 交互界面。
说明:因为授权请求是在 AdsPower 中完成的,Anthropic 服务端接收到的 OAuth 回调 IP 与容器内 Claude Code 发起请求的出口 IP 完全一致,从而保障了环境统一性。
第六步:配置 Looklook 远程终端(可选)
如需通过移动端或外部设备查看并管理 Claude Code 任务,可启用 Looklook:
- 编辑
.env文件,将变量修改为:LOOKLOOK_AUTO_LOGIN=1 - 重建容器应用配置:
重新执行第四步的docker stop claude-env && docker rm claude-envdocker run命令; - 查看并登录 Looklook:
# 查看初始化日志 docker exec claude-env cat /tmp/looklook-bootstrap.log # 交互式登录 docker exec -it claude-env looklook login # 后台启动守护进程 docker exec -d claude-env looklook run --no-browser
完成登录后,即可在任意浏览器中通过 Looklook 提供的网页端操作该容器终端。
日常使用与维护
1. 日常进入工作环境
电脑开机后,仅需两条命令即可恢复工作状态:
docker start claude-env
docker exec -it claude-env bash
cd /workspace
claude
由于认证凭据保存在 claude-config 卷中,无需重复进行 OAuth 授权。
2. 升级镜像
当 claude-env 镜像更新时,拉取新镜像并重新创建容器即可,切勿删除数据卷:
docker pull ghcr.io/imythu/claude-env:latest
docker stop claude-env
docker rm claude-env
# 重新执行第四步的 docker run 命令即可继续使用
常见问题排查
1. 容器启动时报错端口已被占用(port is already allocated)
- 原因:本机其他软件(如 Clash、V2Ray 等)占用了宿主机的
7890端口。 - 解决:修改
docker run参数中的宿主机端口映射,改为-p 7891:7890。容器内依然监听 7890,不影响 Claude Code 内部请求。
2. 容器内无法连接外网
- 排查步骤:
- 检查
.env文件中的 IP、端口、用户名和密码是否有书写错误; - 确认 VPS 的防火墙与服务商安全组已放行 SOCKS5 端口;
- 执行
docker logs claude-env查看 Mihomo 启动日志,确认代理节点是否存活; - 查看生成的 Mihomo 配置文件排查参数:
docker exec claude-env cat /etc/mihomo/config.yaml
- 检查
3. Windows 下路径挂载失败
- 确保在 Docker Desktop 的
Settings -> Resources -> File sharing中开启了当前目录所在磁盘分区的共享权限; - 在 PowerShell 中执行命令时,确认当前处于
claude-env-workspace目录下。
点击为《罗小黑战记2》盖上小黑的灵力肉垫印章!