云服务器共享本地代理指南

本文介绍如何通过SSH反向端口转发,以应对服务器上可能存在的网络限制。

应用:在服务器端使用 OpenCode / Claude Code 等。

参考配置[1]

  • 设备:腾讯云轻量应用服务器(特惠型实例)
  • 系统:Debian 12.13
  • CPU:4 核
  • 内存:4 GB[2]
  • 存储:40 GB SSD

背景

  • 不愿在服务器使用代理如 mihomo 等[3]
  • 满足编程时使用 Claude Code 等模型的需求
  • 便于运行脚本时使用 API 服务,如 OpenRouter 等

核心原理

  • 利用SSH反向端口转发,将服务器上的端口映射到本地
    • 让服务器监听内部端口,如 10000
    • 发往本地端口 10000 的请求通过SSH隧道传回本地电脑的代理端口;
    • 本地代理软件代为访问外网。
  • 部分常见代理软件端口
    • Clash:7890
    • V2rayN:10800
  • 多台本地电脑连接同一服务器
    • 服务器端:固定监听 10000 端口;
    • 本地端:在 SSH 配置中,映射到实际代理端口;
    • 通过这种方式,服务器配置静态,无需修改。

步骤

配置服务器的Remote Settings

让VS Code的远程终端自动走 127.0.0.1:10000 代理

  1. 在VS Code中连接远程服务器
  2. > Preferences: Open Remote Settings (JSON)
  3. 添加以下配置
1
2
3
4
5
6
7
{
"terminal.integrated.env.linux": {
"http_proxy": "http://127.0.0.1:10000",
"https_proxy": "http://127.0.0.1:10000",
"all_proxy": "socks5://127.0.0.1:10000"
}
}
  1. > Developer: Reload Window

配置本地电脑的 .ssh/config

  1. 打开本地电脑的 .ssh/config 文件
    • Windows:%USERPROFILE%\.ssh\config
    • Linux/Mac:~/.ssh/config
  2. 添加以下配置
1
RemoteForward 10000 127.0.0.1:10808

这里以本地为 V2rayN 客户端,代理端口为 10808 为例;

需保证缩进对齐,完整的配置示例如下:

1
2
3
4
Host xxxx
HostName xxx.xxx.xxx.xxx
User root
RemoteForward 10000 127.0.0.1:10808
  1. 特别地,如使用 Linux/Mac 系统,并使用私钥,需要修复权限。
1
chmod 600 ~/.ssh/id_ed25519

测试

  1. 确保本地代理设置正确,并启动
  2. 连接服务器(使用VS Code)
    • 因为配置了Remote Settings,所以在VS Code中连接服务器时,会自动走代理。
    • 直接在终端使用 ssh xxxx 连接服务器时,不会走代理。
  3. 使用 curl 测试
1
2
curl -I https://www.google.com
curl -I https://api.anthropic.com

不能使用 ping 测试,因为 ping 是 ICMP 协议,而不是 HTTP 协议。

Next Step

安装Claude Code[4]

1
curl -fsSL https://claude.ai/install.sh | bash

如果你在 macOS 上且使用 Homebrew,也可以直接安装:

1
brew install --cask claude-code

  1. 未必需要云服务器,通过 SSH 远程连接电脑也可。 ↩︎

  2. 相较 2 核 & 2 GB,4 核 & 4 GB 内存可以显著缓解服务器暴毙现象,也是最终选择腾讯云的原因。 ↩︎

  3. 在服务器上安装代理软件主要缺点有节点不稳定、错误配置会造成 SSH 高延迟、终端没有 GUI 界面。此外,目前对于代理的需求正在提高,部分情况下规则代理不能满足需求。 ↩︎

  4. npm install -g @anthropic-ai/claude-code 现在已经是兼容性方案,不再是官方首推。如果当前机器上已经有可用的 claude 命令,也可以直接执行 claude install 迁移到原生安装。 ↩︎