根本原因是微软CDN在国内遭DNS污染、TLS握手失败及路由劫持;解决方案为命令行+百度镜像源直装或VSCode 1.85+配置extensions.gallery.serviceUrl指向该镜像。

VSCode 扩展市场加载慢,根本原因不是你网络差,而是它默认走微软的全球 CDN(marketplace.visualstudio.com),在国内常被 DNS 污染、TLS 握手卡顿或中间路由劫持,尤其在非代理环境下几乎必然卡在「Loading extensions...」。
为什么 extensions.vue 页面一直转圈或超时
这不是 VSCode 本身的问题,而是客户端发起的请求被阻断或响应极慢:
- VSCode 启动后自动调用
https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery,该域名解析常返回错误 IP 或超时 - 即使能连上,部分地区 TLS 1.3 握手失败(微软 CDN 节点对某些中间设备兼容性差)
- 扩展详情页(如点击某个插件)会额外请求
vscode.blob.core.windows.net,这个域名在国内解析不稳定 - 启用了企业防火墙、DNS over HTTPS(如使用 1.1.1.1)、或本地 hosts 误写,都可能让请求静默失败
不改设置、不装插件的最快缓解法
直接绕过 VSCode 内置市场 UI,用命令行 + 镜像源手动安装:
- 打开终端,运行
code --install-extension publisher.name,例如:code --install-extension esbenp.prettier-vscode - 若提示「Unable to install」,在命令前加环境变量强制走国内镜像:
VSCODE_EXTENSIONS_MSA_URL=https://vscode.bj.bcebos.com code --install-extension esbenp.prettier-vscode - 这个镜像源(百度 BOS 托管)同步微软官方数据,延迟约 1–2 小时,但访问稳定
- 已安装的扩展更新仍走原链路,所以建议定期手动执行一次
code --list-extensions | xargs -L 1 code --install-extension强制重装(跳过已存在检查)
修改 settings.json 切换市场后端(需重启)
VSCode 1.85+ 支持通过配置项指定市场 API 地址,比改 hosts 更干净:
- 打开命令面板(
Ctrl+Shift+P),输入「Preferences: Open Settings (JSON)」 - 添加这一行:
"extensions.autoCheckUpdates": false(先禁用自动检查,避免干扰) - 再添加:
"extensions.gallery.serviceUrl": "https://vscode.bj.bcebos.com/_apis/public/gallery" - 注意:URL 必须带
/_apis/public/gallery后缀,少一个字符就会回退到默认地址 - 保存后完全退出 VSCode(包括右下角托盘进程),再重新打开,扩展页应秒开
别碰的「伪加速」方案
有些教程让你改 hosts 或装「Marketplace Proxy」插件,实际隐患更大:
- 硬写
marketplace.visualstudio.com到国内 IP —— 微软 CDN 节点是按 Host 头路由的,IP 错了直接 403 - 启用「Proxy Support」设为
on却没配http.proxy—— VSCode 会卡死在代理探测阶段,比不设还慢 - 安装所谓「加速插件」—— 它们只是把请求转发到第三方中转服务器,隐私和稳定性全无保障,且多数已停止维护
- 用
npm install -g vsce手动打包安装 —— 仅适用于开发者发布扩展,普通用户没必要,还容易装错版本
真正稳定的方案只有两个:要么用命令行 + 镜像源直装(推荐),要么改 serviceUrl 配置(需 VSCode ≥1.85)。其他所有「一键加速包」「hosts 一键替换」都在掩盖问题本质——VSCode 市场协议本身不支持自定义 CDN,任何绕过都得承担兼容性风险。










