在远程服务器开发代码时很多开发者会使用VS Code Remote-SSH来进行远程开发。同时一些 AI Coding 插件如 Codex、Copilot 等需要访问在线服务因此在远程开发环境中经常会遇到以下问题插件登录后一直卡住插件请求失败Remote-SSH 多窗口冲突关闭某个窗口后插件失效本文记录了一套稳定的远程开发网络配置方案并总结常见问题的解决方法。一、VS Code Remote-SSH 工作原理当我们使用 VS Code Remote-SSH 时实际架构如下VS Code (本地电脑)││ SSH▼Remote Server│▼VS Code Server Extensions需要注意的一点VS Code 插件实际上运行在远程服务器而不是本地电脑。因此如果某些插件需要访问在线 API请求实际上是从服务器发出。如果服务器网络环境有限制就可能导致插件无法正常工作。二、解决思路一个常见解决方案是通过 SSH 网络转发让服务器访问本地网络环境。结构如下本地电脑││ 本地网络环境│└──── SSH 隧道 ────► 远程服务器││ VS Code Server▼插件服务这样远程服务器可以通过 SSH 通道访问本地网络。三、配置 Remote-SSH首先配置 SSH编辑~/.ssh/config示例Host dev-serverHostName xxx.xxx.xxx.xxxUser usernameServerAliveInterval 20ServerAliveCountMax 6TCPKeepAlive yesConnectTimeout 20参数说明参数作用ServerAliveIntervalSSH 心跳ServerAliveCountMax丢包容忍TCPKeepAlive防止 NAT 断线ConnectTimeout防止连接卡住四、VS Code 远程连接VS Code 打开命令面板Remote-SSH: Connect to Host选择dev-server首次连接会自动安装VS Code Server五、建立 SSH 网络转发在本地终端运行ssh -NR 127.0.0.1:7898:127.0.0.1:7897 dev-server该命令的作用是远程服务器端口││ SSH 网络转发▼本地端口这样服务器访问该端口时会通过 SSH 通道转发到本地。六、配置 VS Code Remote 网络设置在远程 VS Code 中打开Preferences: Open Remote Settings (JSON)添加{http.proxy: http://127.0.0.1:7898,http.proxySupport: override}说明http.proxy指定网络转发地址proxySupport允许插件使用该配置七、环境变量配置为了让命令行工具也使用同样的网络配置可以在服务器添加~/.bashrc添加export HTTP_PROXYhttp://127.0.0.1:7898export HTTPS_PROXYhttp://127.0.0.1:7898export NO_PROXYlocalhost,127.0.0.1重新加载source ~/.bashrc八、验证网络配置可以在服务器运行curl https://example.com如果返回正常响应说明网络转发配置成功。九、稳定使用方式经过测试发现最稳定方式是单独终端建立 SSH 网络转发VS Code 仅负责远程开发结构如下Terminal│└─ SSH tunnelVS Code│└─ 使用网络配置这样可以避免多窗口端口冲突隧道被关闭Remote-SSH 异常十、日常使用流程推荐流程1 启动本地网络环境2 打开终端建立 SSH 转发3 打开 VS Code4 Remote-SSH 连接服务器之后可以打开多个 VS Code 窗口插件正常工作十一、常见问题1 插件登录后卡住通常是网络配置未生效。检查http.proxyHTTP_PROXY2 Remote-SSH 经常断开建议增加 SSH 保活参数ServerAliveInterval 20ServerAliveCountMax 63 多窗口冲突如果每个窗口都建立网络转发可能导致端口冲突。建议只建立一次 SSH 转发十二、总结远程开发环境中插件网络问题的关键在于远程服务器的网络环境与本地环境不同。通过SSH 网络转发 VS Code Remote 设置可以构建一个稳定的远程开发环境。这种方式具有以下优点多窗口稳定配置简单调试方便也是远程开发中非常常见的一种网络配置方式。