插件更新卡在downloading状态,95%是网络链路问题;根本原因在于vs code不走系统代理、不读http_proxy、也不继承shell环境变量,且remote-ssh场景下请求由远程vscode-server发起,本地devtools无法捕获,需在服务器终端用curl验证marketplace或update域名连通性。

插件更新卡在 Downloading 状态,95% 是网络链路问题,不是插件或 VS Code 本身坏了;它不走系统代理、不读 http_proxy、也不继承你 shell 的环境变量。
为什么 Network 面板里看不到 marketplace 请求失败?
VS Code 插件安装/更新的 HTTP 请求由远程服务器上的 vscode-server 进程发起(Remote-SSH 场景下),或由本地 Electron 主进程发起(普通桌面场景),但都**绕过浏览器 DevTools 的 Network 面板捕获逻辑**。你看到的“卡住”,其实是底层 Node.js fetch 调用 pending 超时后静默失败。
- 真正有效的验证方式是:在远程服务器终端执行
curl -I https://marketplace.visualstudio.com或curl -I https://update.code.visualstudio.com,看是否返回200或卡住 >10 秒 - 如果返回
Failed to connect或Connection timed out,说明根本没连上——此时改 VS Code 设置里的http.proxy没用,因为vscode-server不认这个配置 - 即使能通外网,若服务器 DNS 解析慢(如用默认 8.8.8.8)、TLS 握手失败(企业防火墙拦截 SNI)、或 CDN 域名被污染,也会表现为 UI 层无报错、只转圈
vscode.cdn.azure.cn 镜像源现在还能用吗?
不能。官方已于 2026 年初停用该镜像,当前有效地址是 https://vscode.download.prss.microsoft.com。但直接替换 extensions.gallery.serviceUrl 并不保险——新版 VS Code(≥1.83)已将部分扩展下载路径硬编码进服务端逻辑,客户端设置仅影响前端列表加载。
- 必须同时设置两项:
"extensions.gallery.serviceUrl": "https://vscode.download.prss.microsoft.com/extensionGallery/extensionGallery/"和"extensions.gallery.cacheUrl": "https://vscode.download.prss.microsoft.com/extensionGallery/extensionGallery/publishers" - Linux/macOS 下配置文件路径为
~/.config/Code/User/settings.json,Windows 为%APPDATA%\Code\User\settings.json - 改完后务必彻底退出所有 VS Code 进程(包括后台
Code Helper),否则旧进程仍会走原链路
Remote-SSH 场景下 Python 插件卡 Downloading 的真实原因
你以为是在装插件,其实是在等远程服务器下载 pyright、debugpy 这类 native 二进制——它们不走 Marketplace,而是从 update.code.visualstudio.com 拉取,且每个版本 commit ID 绑定,无法复用旧缓存。
- 状态栏显示 “Downloading Python language server” 卡住?说明插件本体已装好,但语言服务器没拉下来
- 手动下载
.vsix安装成功 ≠ 功能可用;离线环境必须提前在有网机器上首次启用 Python 插件,并等pyright下载完成,再把整个~/.vscode-server/data/Machine/publishedExtensions/ms-python.python-*目录打包同步过去 - Remote-SSH 下,
code --install-extension命令也无效——它只作用于本地,远程插件安装必须由vscode-server自行触发
手动安装 .vsix 后提示 “Extension is not compatible” 怎么快速修?
这不是兼容性问题,是版本字段校验失败。VS Code 安装时严格比对 .vsix 包内 extension/package.json 的 "engines": {"vscode": "^1.90.0"} 和你本地 code --version 输出。
- 运行
code --version,取第一段(如1.91.2→1.91) - 用
unzip -p xxx.vsix extension/package.json | grep engines查插件要求的最低版本 - 若本地是
1.89.4,而插件要求^1.90.0,就得降级插件(去 Marketplace 页面点 “Download Specific Version” 找旧版)或升级 VS Code - ARM Mac 上装 x64 构建的插件(尤其含
pyright-darwin-x64的)也会触发同类报错,需确认.vsix文件名含darwin-arm64
最易被忽略的一点:Remote-SSH 场景下,所有“下载”行为都发生在远程服务器上,和你本地能不能打开 marketplace.visualstudio.com 完全无关。排查必须登录服务器终端,用 curl 或 wget 直接测目标域名,而不是在本地浏览器里试。











