Blog Post

远程连接服务器时的 AI 编程工具实践与配置指南

March 24, 2026

目前主流的 AI 编程辅助工具主要包括 Cursor、Copilot、Claude Code 以及 Codex。仅就笔者的实际体验,来谈谈在远程连接服务器进行开发时,这几款工具分别有哪些优缺点,以及相关的网络配置方案。

1. Cursor:交互体验好,但额度消耗快

Cursor 的好处在于它 Harness(指为智能体搭配的终端、工具等环境)做的好。在很多情况下,你只需在代码里直接选中某个段落并 @ 对应的文件或组件,它在对话框中就会提供非常准确的上下文理解和优化建议。相比之下,Copilot 和部分 VS Code 插件在精准识别选中文段上就稍显不足,有时甚至只能把整个庞大的源文件发给模型。

此外,Cursor 支持切换多种底层大模型。但唯一的缺点是额度限制问题:如果使用 Oups 4.6 的话,Pro 账户的额度很快就会耗尽。如果你希望把它当作一个长期且高性价比的主力工具,目前来看成本较高。比较合理的策略是,遇到复杂的架构规划或核心逻辑(Plan)时使用 Oups 4.6 这类强模型,而日常简单的代码补全可以切换到别的工具链。但如果全流程都依赖它,额度限制会是一个明显的瓶颈。

2. GitHub Copilot:开箱即用,适合轻度修改

Copilot 的最大好处自然是集成度高且免配置,同时也会接入各大公司的最新高级模型。但是由于砍掉了学生优惠的 Oups 4.6 和 GPT 5.4,这种情况下相对来说就比较鸡肋。

就我个人的开发习惯而言,如果在远程写论文,通常会在 VS Code 里装一个 Overleaf WorkShop 插件配合 Copilot 使用,让它帮忙对 LaTeX 内容做一些简单的修改。比如,表格数据的加粗加下划线这种操作还可以,非常方便。但如果是遇到特别复杂的代码重构或大型逻辑开发,可能还是交给专门的工具更靠谱。总而言之,Copilot 最显而易见的优点就是:无需折腾配置,直接开箱即用

3. Claude Code:环境配置与账号风控门槛较高

目前使用 Claude 相关工具(特别是原生工具和 API)最大痛点在于账号非常容易被封控。在开源社区里,例如比较火的自动科研Skill ARIS,有不少用户因为 Claude 账号受限,转而使用 GLM-5 等国内大模型来进行替代。但根据大家普遍的反馈,在处理复杂逻辑时,国内模型依然比不过 Sonnet 4.6,跟 Oups 4.6 相比差距就更大了。

同时,由于网络和风控原因,在远程服务器上配置运行 Claude Code 并不算特别简单(具体的配置步骤可以参考我之前的文章)。综合来看,我觉得目前阶段如果没有极特殊的需求,没有太大必要强行去折腾原生 Claude Code。因为如果只是想用上强大的 Oups 4.6 模型,你完全可以通过 Cursor、或者配置支持自定义 API 的第三方插件来曲线救国。GPT 5.4 级别通常已经能 handle 绝大部分的日常编码情况了。

4. Codex (等第三方 VS Code 插件):高性价比,但需配置代理连接

这里提到的 Codex,以前我用 Mac 平台使用时体验挺好。最近在 Windows 上尝试后,感觉不如 Mac 流畅,也可能是 Windows 终端环境和原生的 Unix 终端存在一些交互体验上的差距。

我最早是在购买的大模型额度(如 Cursor 额度)耗尽后,开始真正高频使用Codex。它们最大的优势就是便宜、耐用、性价比极高。即便每天高强度地使用进行科研或写代码,基本也完全够用。

但要在远程服务器的 VS Code 里流畅使用这些插件,往往需要解决网络连接问题——最典型的情况就是你的服务器无法直接访问 OpenAI 的接口。这时候就需要将本地(比如你的笔记本)网络代理的端口反向隧道转发(Reverse SSH Tunneling)到远程服务器上。

核心配置:SSH 远程端口转发与代理设置

首先,建议务必使用 SSH 密钥 (Key-based authentication) 验证连接服务器,而不是用密码。因为这些 AI 工具在后台运行或重新发起请求时,如果环境由于某个工具调用断掉重连,频繁让你重新输密码会极其折磨人。

1. 建立反向端口转发

在你的本地机器(笔记本/台式机)的终端里执行以下命令:

ssh -N -R 127.0.0.1:7898:127.0.0.1:7897 TTA2

参数说明:

  • 7897: 你的本地代理软件(比如 Clash Verge 等)提供的本地 HTTP 代理端口。
  • 7898: 映射在远程服务器(SSH 后)的端口号,你可以自己选一个未被占用的端口。
  • TTA2: 你在本地 ~/.ssh/config 中配置好的远程服务器的 Host Name(主机别名)。

这个命令的作用就是:将远程服务器请求 127.0.0.1:7898 的流量,安全地顺着 SSH 通道转发到你本机的 127.0.0.1:7897 端口上,再通过你的科学上网软件代理出去。

(注意:测试能否连通可以在服务器上用 curl -L http://google.com 试一下,确保收到了正常的响应页面,而不是超时卡死。)

2. VS Code 远程端的网络设置

配置好网络打通之后,需要让远程 VS Code 以及你安装的 AI 插件知道走这个端口:

连接上远程服务器后,按下 Command+Shift+P (Mac) 或 Ctrl+Shift+P (Win),输入 Preferences: Open Remote Settings (JSON),在打开的文件中添加:

{
  "http.proxy": "http://127.0.0.1:7898",
  "http.proxySupport": "override"
}

说明:

  • http.proxy 指定了我们在第一步里转发在远程的那个端口。
  • http.proxySupport 允许插件主动使用并覆盖其内部的代理配置。

3. Linux 服务器终端的环境变量配置

为了让命令行的其他工具(比如 curl、git、npm 等)也能在服务器上用这个通道拉取资源,可以在服务器终端修改 .bashrc.zshrc

export HTTP_PROXY=http://127.0.0.1:7898
export HTTPS_PROXY=http://127.0.0.1:7898
export NO_PROXY=localhost,127.0.0.1

添加完成后运行 source ~/.bashrc 使其生效,接着再次验证:

curl -I https://google.com

如果返回 HTTP/2 200 或类似的正常响应头,说明一切通过本机转发的网络配置终于大功告成了。此时在 VS Code 里登录扩展基本上就畅通无阻了。

5. 最常见的踩坑排雷总结

坑 1:你转发的是 SOCKS 端口,但 VS Code 里配的是 HTTP 代理

这就好比牛头不对马嘴。如果你本地代理软件的设定是:

  • 7897 = HTTP 端口
  • 7891 = SOCKS 端口

那么你在 VS Code 的 "http.proxy" 配置中必须填 HTTP 端口(7897 对应的转发口)。VS Code 的网络配置目前对纯 Socks5 的直接支援有时有兼容性问题,不要想当然直接塞一个 SOCKS 进去,否则查错半天。

坑 2:转发所在的终端窗口被你不小心关了

我们第一步敲的那个 ssh -N -R ... 命令,只要它被中止(你通过 Ctrl+C 杀掉,或者手贱关了窗口),那个搭建在 SSH 加密通道内部的 127.0.0.1:7898 端口引流就瞬间消失了。

防坑建议:

  • 一直留着那个 PowerShell 或者是你 Mac 上的 Terminal 窗口。
  • 在 Windows Terminal 单独开一个 Tab 挂着,然后忘掉它。
  • 高级操作:用 tmux 挂在后台,或者在本机制作成自动跑的开机后台无头任务也可以。

坑 3:Mac 和 Windows 同时连接服务器,发生了端口抢占

如果你属于多端办公党,Mac 和 Windows 同时都在连接一台服务器,而且不巧都执行了: 将本地某端口 -> 远程同一个 127.0.0.1:7898

这显然会导致其中一台设备在服务端绑定 7898 时失败引发冲突。

防坑建议: 最省事的做法是同一时刻只保留一台设备挂代理连接通道。 如果你确有“双端并用”的需求,一定要拆分端口:

  • Mac 的 ssh 命令映射给远程 7898
  • Windows 的 ssh 命令映射给远程 7899

然后在用到对应的端时,将 Windows 环境连上去的对应的 VS Code Remote Settings (JSON) 中的端口改为 7899 即可:

{
  "http.proxy": "http://127.0.0.1:7899",
  "http.proxySupport": "override"
}

坑 4:Codex 已登录但仍在走第三方 API(账号切换无效)

如果你在 Windows + VS Code 使用 Codex 时,发现已经成功登录账号,但请求仍然发往第三方 API(如 newapi),这通常是因为配置文件中的 model_provider 优先级更高。

正确解决步骤:

  1. 在 VS Code 内退出登录:进入设置找到 Codex 并点击 Log Out。这一步是为了清除当前的会话缓存。
  2. 修改 config.toml:确保 model_provider = "openai",并删除不必要的第三方 provider 配置。
  3. 重启并重新登录:重启 VS Code 后再次登录即可。

坑 5:Codex Windows 沙箱报错 (Couldn’t set up admin sandbox)

在 Windows 上使用时,可能会遇到沙箱设置失败的报错。这通常与权限或环境初始化有关。

推荐解决方案:

  1. 使用回退沙箱(最有效):在 config.toml 中设置 [windows] sandbox = "unelevated"。这是官方提供的 fallback 模式,非常稳定。
  2. 重建配置文件夹:将 C:\Users\用户名\.codex 重命名备份,让插件重新生成。
  3. 管理员模式运行:首次配置时尝试以管理员身份运行 VS Code 以完成沙箱初始化。

最后的 Tip

如果完成上述配置后仍有异常,可以按 F1 呼出命令面板并执行 “Developer: Reload Window” (重新加载窗口),或者直接重启 VS Code。祝大家 coding 和科研愉快!