根本原因是远程服务器无法访问 marketplace.visualstudio.com,需手动配置代理或改用离线安装;同时必须在用户级 settings.json 中设 extensions.autoUpdate、extensions.autoCheckUpdates 和 workbench.enableExperiments 为 false,并检查 Node.js、编译工具及 glibc 版本兼容性。

Remote SSH 连接后插件更新失败,根本不是“点错了”
Remote 环境下插件更新卡在 Installing... 或直接报 connect ECONNREFUSED,不是你网络慢,而是 VS Code 默认把更新请求发到了远程机器上——而那台服务器大概率没配代理、没开外网、DNS 也解析不了 marketplace.visualstudio.com。
实操建议:
- 先在远程终端执行
curl -I https://marketplace.visualstudio.com,看是否超时或拒绝连接; - 别信“自动转发代理”,必须手动在远程 shell 配置(如
~/.bashrc)里加:export HTTP_PROXY=http://your-proxy:port和export HTTPS_PROXY=http://your-proxy:port; - 重连 Remote 窗口,或运行
source ~/.bashrc再重启 VS Code Server; - 如果公司环境完全不能走外网,就放弃在线更新,改用离线方式:本地下载
.vsix→scp传到远程 → 命令面板运行Extensions: Install from VSIX。
extensions.autoUpdate=false 只关了一半
只在用户级 settings.json 里设 "extensions.autoUpdate": false,对 Remote 环境几乎无效。真正起作用的是三层开关,缺一不可:
-
extensions.autoUpdate:控制是否下载并安装新包 → 必须为false; -
extensions.autoCheckUpdates:控制是否定期向 Marketplace 发起探测 → 也得设false,否则日志里会持续刷Checking for extension updates; -
workbench.enableExperiments:新版通知框架开关,GitLens、Prettier 等依赖它弹窗 → 设为false才能屏蔽右下角更新提示。
这三个字段必须同时写进用户级 settings.json(路径:Ctrl+Shift+P → Preferences: Open User Settings (JSON))。更关键的是:项目根目录若存在 .vscode/settings.json,且里面写了 "extensions.autoUpdate": true,它会直接覆盖用户设置。
WSL 和 Remote-SSH 的更新行为差异极大
WSL 默认走本地内核 + localhost 直通,插件更新常“看起来正常”,但实际可能绕过远程校验;Remote-SSH 则严格走远端网络和环境,任何构建依赖缺失(python3、make、gcc)、Node.js 版本太低(低于 16)、或 /tmp 权限受限,都会导致静默失败。
实操建议:
- 更新前先在远程终端确认:
node -v、npm -v、which python3 make gcc; - Ubuntu/Debian 用户缺编译工具就装:
sudo apt install build-essential python3; - WSL 用户注意存储路径是
~/dify/.config,Remote-SSH 是/home/user/dify/config,配置文件别混用; - 更新频率上,WSL 可设为自动检测,Remote-SSH 强烈建议手动控制——尤其当插件含原生模块时。
插件更新失败后报 Extension host terminated unexpectedly,别急着重启
这不是配置问题,而是新版插件与当前 VS Code 版本、Remote 环境的 Node.js 或系统库(比如 glibc)不兼容。2025 年后很多插件已要求 glibc ≥ 2.28,而旧服务器(如 CentOS 7)默认是 2.17,强行更新必崩。
回滚方案很直接:
- 卸载当前插件:
code --uninstall-extension 插件ID(如difyai.dify); - 去 GitHub Release 页面手动下载上一个稳定版
.vsix(例如 v0.107.2023091115); - 用
Extensions: Install from VSIX安装; - 如果 VS Code 客户端本身是 1.99+,而服务器 glibc 太老,还得降级客户端到 1.85,并锁定 Remote-SSH 插件为 v0.107.2023091115。
最容易被忽略的一点:VS Code Server 在远程机器上的缓存不会随插件卸载自动清理,出问题后最好顺手删掉 ~/.vscode-server/data/Machine 下对应插件的缓存目录,再重装。


















