断网 GPU 服务器使用 Claude Code 指南
适用场景:本地 macOS + SSH 密码登录 + 服务器完全断网
原理
1
| 服务器 → SSH 反向隧道 → 本地电脑(Clash/pproxy)→ 互联网 → Anthropic API
|
方案选择
| 场景 |
推荐方案 |
| 本地使用 Clash 代理上网 |
方案一:直接转发 Clash 端口(推荐) |
| 本地直连外网,无代理工具 |
方案二:pproxy 自建代理 |
方案一:转发 Clash 端口(推荐)
如果本地使用 Clash/Clashy 上网,直接把 Clash 的代理端口通过 SSH 隧道转发给服务器,流量完全走 Clash 的规则,VPN 分流等策略全部生效。
第一步:确认 Clash 代理端口
在 Clashy 界面查看 HTTP 代理端口,默认为 7890。
第二步:建立 SSH 反向隧道(终端1)
1
| ssh -R 2081:localhost:7890 -N -p 30513 root@10.8.128.123
|
替换 30513、root、10.8.128.123 为你自己的 SSH 端口、用户名、服务器 IP。
⚠️ 输入密码后无任何输出属于正常现象,此终端保持运行,不要关闭。
第三步:SSH 登录服务器并设置代理(终端2)
1
| ssh root@10.8.128.123 -p 30513
|
登录后设置代理环境变量:
1 2 3
| export HTTP_PROXY=http://127.0.0.1:2081 export HTTPS_PROXY=http://127.0.0.1:2081 export ALL_PROXY=http://127.0.0.1:2081
|
💡 可以把这三行写入 ~/.bashrc,之后每次登录自动生效。
第四步:验证网络连通性
1
| curl --proxy http://127.0.0.1:2081 https://ifconfig.me
|
返回的 IP 与本地 Clash 出口 IP 一致即表示成功。
第五步:安装并运行 Claude Code
1 2
| npm install -g @anthropic-ai/claude-code claude
|
方案二:pproxy 自建代理
如果本地没有 Clash,用 pproxy 在本地起一个代理。
第一步:本地安装并启动 pproxy(终端1)
1 2
| pip3 install pproxy python3 -m pproxy -l socks5://0.0.0.0:1080 -l http://0.0.0.0:1081
|
⚠️ 此终端保持运行,不要关闭。
第二步:建立 SSH 反向隧道(终端2)
1
| ssh -R 2080:localhost:1080 -R 2081:localhost:1081 -N -p 30513 root@10.8.128.123
|
⚠️ 输入密码后无任何输出属于正常现象,此终端同样保持运行。
第三步:SSH 登录服务器并设置代理(终端3)
1
| ssh root@10.8.128.123 -p 30513
|
登录后设置代理环境变量:
1 2 3
| export HTTP_PROXY=http://127.0.0.1:2081 export HTTPS_PROXY=http://127.0.0.1:2081 export ALL_PROXY=http://127.0.0.1:2081
|
第四步:验证网络连通性
1
| curl --socks5-hostname 127.0.0.1:2080 https://ifconfig.me
|
返回一个 IP 地址即表示成功。
第五步:安装并运行 Claude Code
1 2
| npm install -g @anthropic-ai/claude-code claude
|
安装其他软件包
设置好环境变量后,pip、npm、claude 均可直接使用。apt 需一次性写入代理配置:
1 2
| echo 'Acquire::http::Proxy "http://127.0.0.1:2081";' > /etc/apt/apt.conf.d/proxy.conf echo 'Acquire::https::Proxy "http://127.0.0.1:2081";' >> /etc/apt/apt.conf.d/proxy.conf
|
之后各工具直接使用:
| 工具 |
命令 |
| pip |
pip install 包名 |
| apt |
apt install 包名 |
| npm |
npm install 包名 |
| claude |
claude |
常见问题
| 错误信息 |
原因 |
解决方法 |
connection to proxy closed |
本地代理未启动 |
确认 pproxy 或 Clash 正在运行 |
Could not resolve host |
DNS 未走代理 |
改用 --proxy 或 --socks5-hostname 参数 |
Protocol socks5h not supported |
服务器 curl 版本太旧 |
改用 --socks5-hostname 参数 |
Missing dependencies for SOCKS |
pip 缺少 SOCKS 支持 |
改用 HTTP 代理端口 2081 |
channel 2: open failed |
GatewayPorts 未开启 |
服务器执行 echo "GatewayPorts yes" >> /etc/ssh/sshd_config && systemctl restart sshd |
| 服务器能联网但未走 VPN |
Clash 分流模式未覆盖 pproxy 流量 |
改用方案一直接转发 Clash 端口 |