vscode server 代理配置

0. 需求背景

我的一些代码工程在香港linux服务器上。

我平时会用 vscode 远程连接到这个香港 linux 服务器进行代码开发。

但是由于服务器在香港,无法使用 gemini 和 codex。

不过我还有一个服务器在日本(可以用 gemini 和 codex,但代码一般不在那,不太方便)

需要方案可以借助日本服务器让我每次在香港服开发时也能使用 gemini 和 codex

1. SSH 隧道

在香港服务器上执行

# 在香港服务器上执行
ssh -D 1080 -N -f -q user@your-japan-server-ip
  • -D 1080: 在香港服务器本地开启 1080 端口作为 SOCKS5 代理。
  • -N: 不执行远程命令(仅转发端口)。
  • -f: 在后台运行。
  • user@your-japan-server-ip: 你的日本服务器登录信息。

验证: 在香港服务器上运行 curl --socks5 127.0.0.1:1080 https://ipinfo.io,如果返回的是你日本服务器的 IP,说明隧道建立成功。

不过个人尝试让 vscode server 直接用这个隧道依旧无法在香港使用 codex 和 gemini。应该原因是这两个的 vscode 插件对 SOCKS5 的支持极其糟糕。所以需要进一步把 socks 转化为 http

2. Privoxy

最稳妥的办法是在香港服务器上安装一个轻量级工具(Privoxy),把 SSH SOCKS5 隧道转换成 HTTP 代理。Codex/Copilot 对 HTTP 代理的支持是完美的。

2.1 Privoxy 安装

# Ubuntu/Debian 香港服执行
sudo apt update && sudo apt install privoxy -y

2.2 Privoxy 配置

(香港服)修改配置文件 /etc/privoxy/config

sudo nano /etc/privoxy/config

在文件末尾添加一行(注意末尾的点 .):

# 把流量转发给 SSH 隧道,注意最后有个空格和点
forward-socks5t / 127.0.0.1:1080 .

解释:这告诉 Privoxy,所有流量 (/) 都转发给本地的 1080 SOCKS5 端口。

找到 listen-address 这一行(通常在前面),确保它监听本地端口(默认是 8118):

listen-address  127.0.0.1:8118

2.3 重启 Privoxy

sudo systemctl restart privoxy

3. 修改 vscode 配置

  1. ctrl + , 打开设置面板
  2. 选 Remote [SSH:pphk-root] (根据ssh方式不同名字不同)
  3. 配置 http: Proxy 为 http://127.0.0.1:8118 (对应 Privoxy 的服务)
  4. Http: Proxy Strict SSL 的勾取消掉
  5. Http: Proxy Support 设置为 override

关闭 vscode 重新连接则应该可以使用 codex 插件了

发表评论