vscode插件下载慢99%源于网络请求未发出、被拦截或发往不可达地址;需配对设置extensions.gallery.serviceurl与cacheurl(同域名、同路径、无尾斜杠),且仅用户级settings.json生效,命令行安装需额外设vscode_extensions_msa_url环境变量。

VSCode插件下载慢,99%不是插件本身问题,而是网络请求根本没发出去、发出去了但被拦在半路、或者发给了一个国内无法稳定访问的地址。
extensions.gallery.serviceUrl 配了但没生效?检查配对和格式
VSCode 1.83+ 版本起,extensions.gallery.serviceUrl 单独配置等于白配。它必须和 extensions.gallery.cacheUrl 同时存在、同域名、同路径结构,且末尾不带斜杠。
- 常见错误:只写
serviceUrl,漏掉cacheUrl - URL 末尾多了一个
/(比如"https://vscode.cdn.azure.cn/_apis/public/gallery/"),导致拼出/publishers变成//publishers,返回 404 - 两个 URL 域名不一致,例如
serviceUrl用vscode.cdn.azure.cn,cacheUrl却写了marketplace.visualstudio.com.cn - 配置写在工作区
settings.json里——VSCode 插件市场只读用户级设置
code --install-extension 命令仍超时?它不认 settings.json
命令行安装走的是独立环境变量链路,完全不读 settings.json 里的镜像配置。
- 临时生效:在终端运行
VSCODE_EXTENSIONS_MSA_URL=https://vscode.cdn.azure.cn code --install-extension esbenp.prettier-vscode - CI/CD 或脚本中需显式
export VSCODE_EXTENSIONS_MSA_URL=... - 若仍卡在
pending或报ETIMEDOUT,检查是否后台开着 Clash/Surge ——它们常默认启用系统代理但未全局,会干扰code命令的 DNS 解析
Network 面板里压根没请求?防火墙或安全软件在静默丢包
卡在 0% 不是“慢”,是根本没发出去。典型表现是 Network 面板空空如也,或第一个请求长期 Pending,控制台只报 Failed to fetch。
- 右键任务栏安全软件图标 → 选「彻底退出」(不是关实时监控)
- 用任务管理器杀掉所有
Code.exe和Code Helper.exe进程 - Windows Defender 出站规则必须放行
Code.exe和node.exe(很多插件语言服务器由独立node.exe子进程发起请求) - 手动安装
.vsix提示 “Download failed”?其实是校验阶段被拦截,不是下载失败——先彻底退出安全软件再试
Remote-SSH 场景下 XHR failed 和本地设置完全无关
你在本地点“更新 Python 插件”,实际执行的是远程服务器上的 vscode-server 进程。它不继承你的 shell 环境,也不读你本地 VSCode 的任何代理或镜像设置。
- 远程插件安装失败,必须在远程机器上单独配置:
~/.config/Code/User/settings.json中加镜像,或设VSCODE_EXTENSIONS_MSA_URL环境变量 - 重连 SSH 才能生效,改完本地设置重启 VSCode 没用
- 状态栏左下角显示
SSH: xxx时,Extensions 面板里的“已安装”只反映远程上下文缓存,不代表本地已装
最易被忽略的一点:自动更新弹窗提示“有新版本”,这个行为不读 settings.json,它硬编码在 VSCode 安装目录下的 product.json 文件里。要让自动更新也走镜像,得改那个文件——而且每次 VSCode 升级都会被覆盖。











