远程服务器走本地代理配置指南
通过 SSH RemoteForward 把本机代理端口”反向”暴露给远程服务器,让在服务器上跑的 VSCode Remote、Claude Code、
npm、pip等命令都能借道本地代理出网。三步搞定。
背景
本机有一个 HTTP 代理跑在 127.0.0.1:7897,但 SSH 上去的服务器没法直接访问。最佳做法不是去服务器上装一份代理,而是利用 SSH 的 RemoteForward,把本机的 7897 反向映射到服务器的 17897 —— 这样服务器上的程序只要把 HTTP(S)_PROXY 指向 127.0.0.1:17897,流量就会被 SSH 通道带回本机走出去。
端口任选,这里用
17897只是为了和本地7897视觉上对得上号,不冲突就行。
第一步:配置 SSH RemoteForward
编辑本机的 C:\Users\85365\.ssh\config,在对应服务器条目下添加一行:
1 | Host my-server |
含义:SSH 连上后,在服务器端开 17897 端口,所有打到这个端口的流量都会被 SSH 通道转回本机的 7897。
第二步:重连 + 配置 Shell 环境变量
先把已有的 SSH 连接断开(VSCode 里 “Kill VS Code Server on Host” 最稳),然后重新连上,让 RemoteForward 真正生效。
进终端后执行:
1 | export HTTP_PROXY=http://127.0.0.1:17897 |
这一步保证命令行里 curl、git、npm、pip 等都走代理。想长期生效就把这三行加到 ~/.bashrc 或 ~/.zshrc 末尾。
验证一下:
1 | curl -I https://www.google.com # 能 200 就说明通了 |
第三步:给 VSCode Remote + Claude Code 配代理
仅 shell 配了还不够 —— VSCode 进程和 Claude Code 扩展是 VSCode Server 拉起来的,不会继承你后开的终端环境变量。
Ctrl + Shift + P 搜索 Preferences: Open Remote Settings (JSON),写入:
1 | { |
http.proxy—— VSCode 自己拉扩展、检查更新走的代理。claudeCode.environmentVariables—— Claude Code 扩展启动子进程时注入的环境变量,确保它调 Anthropic API 时能出网。
改完最好 Reload Window 一下让设置生效。
常见坑位
| 现象 | 原因 / 排查 |
|---|---|
curl 一直 hang |
RemoteForward 没起来;多半是 SSH 没重连,或本机代理没监听 127.0.0.1(有些代理默认只听 0.0.0.0 反而 OK,但若绑了别的回环就要看清楚) |
| Claude Code 报网络错误 | 八成是 VSCode Remote Settings 没配;只在终端 export 是不够的 |
| 端口被占 | 换一个,比如 17898,三处同步改掉即可 |
| 断网/掉线后再连不上 | RemoteForward 端口残留,服务器侧 ss -lnt | grep 17897 看一眼,必要时换端口或重启 sshd |
写在最后:搞通一次以后服务器上跑啥都顺,再也不用为 npm install 卡在 registry、Claude Code 连不上 API 这种破事浪费时间了。

