vscode插件下载慢的根源是未正确配置国内镜像源——必须同时设置且严格匹配extensions.gallery.serviceurl与extensions.gallery.cacheurl,二者需同域、无尾斜杠,并同步修改product.json中硬编码的地址,否则镜像失效。

VSCode插件下载慢,不是网络差,而是默认连的境外服务地址没换——不改 extensions.gallery.serviceUrl 和 extensions.gallery.cacheUrl,其他操作基本白忙。
为什么 settings.json 配了 serviceUrl 还是卡在“正在加载”?
VSCode 1.83+ 版本起,两个配置必须同时存在、同域、结尾不带 /,否则整个镜像逻辑被跳过。常见错误包括:
- 只加了
"extensions.gallery.serviceUrl",漏掉"extensions.gallery.cacheUrl" -
serviceUrl写成"https://vscode.cdn.azure.cn/_apis/public/gallery/"(末尾多了一个/),导致拼出/gallery//publishers而 404 - 两个 URL 域名不一致,比如
serviceUrl用vscode.cdn.azure.cn,cacheUrl却写成marketplace.visualstudio.com.cn - 配置写在工作区
settings.json里,但 VSCode 默认只读用户级设置
怎么验证镜像是否真生效?
别靠“感觉快了”判断,直接看网络请求:
- 按
Ctrl+Shift+P→ 输入并运行Developer: Toggle Developer Tools - 切换到
Network标签页 - 在扩展面板搜索任意插件(如
Python),观察控制台发出的GET请求 - 成功时应看到类似:
GET https://vscode.cdn.azure.cn/_apis/public/gallery/publishers/ms-python/vsextensions/python/ - 如果仍看到
marketplace.visualstudio.com或vsextensions.blob.core.windows.net,说明配置未加载,或被代理工具劫持
code --install-extension 命令还是超时?
命令行安装不读 settings.json,它走的是环境变量路径:
- 临时生效:在终端中先执行
VSCODE_EXTENSIONS_MSA_URL=https://vscode.cdn.azure.cn code --install-extension esbenp.prettier-vscode - CI/CD 或远程开发中,需在构建脚本里显式导出该变量
- 若仍报
connect ETIMEDOUT或卡在pending,检查是否后台开着Clash/Surge等代理工具——它们常默认启用系统代理但未全局,会干扰code命令的 DNS 解析 - 注意:某些插件(如
ms-python.python)会额外拉取语言服务器二进制包,这部分完全绕过 gallery 协议,镜像源对其无效,只能离线下载或配 HTTP 代理
自动更新插件失败?product.json 得动
插件自动更新(比如弹窗提示“有新版本”)不读 settings.json,它硬编码在 VSCode 安装目录下的 product.json 文件里:
- Windows 路径示例:
C:\Users\<username>\AppData\Local\Programs\Microsoft VS Code\resources\app\product.json</username> - macOS 路径示例:
/Applications/Visual Studio Code.app/Contents/Resources/app/product.json - 查找
extensionsGallery字段,把其中的serviceUrl和cacheUrl改为和settings.json一致的国内镜像地址 - 改完必须彻底退出 VSCode 所有进程再重启,否则旧进程仍在读缓存
最易被忽略的是:改完 product.json 后没杀干净后台进程,或者镜像域名末尾多了一个 /;这两个点一错,所有加速动作都归零。











