vscode 下载慢的根源是 az764295.vo.msecnd.net 域名,替换为 vscode.cdn.azure.cn 可提速至 5–10 mb/s;插件市场需同步配置 serviceurl 和 cacheurl;自动更新须修改 product.json 中 extensionsgallery 字段。

az764295.vo.msecnd.net 这个域名就是 VSCode 官方下载慢的元凶,直接替换成 vscode.cdn.azure.cn 就能从几十 KB/s 跳到 5–10 MB/s,不用装代理、不改系统设置,改完即下。
怎么手动换下载链接(Windows/macOS/Linux 都适用)
官网点下载后,浏览器还没真正开始传数据时,右键下载管理器里的条目 →「复制链接地址」,然后只替换域名部分:
- 原始链接类似:
https://az764295.vo.msecnd.net/stable/VSCodeSetup-x64-1.88.0.exe - 改成:
https://vscode.cdn.azure.cn/stable/VSCodeSetup-x64-1.88.0.exe - 只换域名,路径(
/stable/...)必须原样保留 - 粘贴进新标签页回车,基本秒开——这个镜像是微软 Azure 官方运营,SHA256 和源站完全一致
插件市场还是卡在“正在加载”?必须配 extensions.gallery.serviceUrl
改了本体下载地址,插件市场依然慢,是因为它走另一套请求链路,默认连 marketplace.visualstudio.com。settings.json 里加这两行才真正生效:
{
"extensions.gallery.serviceUrl": "https://vscode.cdn.azure.cn/api/gallery",
"extensions.gallery.cacheUrl": "https://vscode.cdn.azure.cn/api/gallery/cache"
}
-
serviceUrl结尾不能带/,否则拼出错误路径导致 404 -
cacheUrl必须和serviceUrl同域,否则整个配置被忽略 - 改完后必须彻底退出 VSCode 进程:Windows 右键任务栏图标选「退出」,macOS 用 Activity Monitor 杀掉所有
Code进程 - 别信「清缓存」「重装插件」——根源就在这两行没生效
code --install-extension 命令还是超时?环境变量没继承
命令行安装失败,常见于 CI/CD、远程开发或本地终端未加载最新设置。此时 settings.json 的镜像配置不生效,得靠环境变量兜底:
- 临时生效(当前终端):
VSCODE_EXTENSIONS_MSA_URL=https://vscode.cdn.azure.cn code --install-extension esbenp.prettier-vscode - 若仍报
ETIMEDOUT或卡在pending,大概率是 Clash / Surge 等代理工具在后台运行且未全局,需临时关闭,或显式禁用:code --proxy-settings=off --install-extension ... - 注意:某些插件(如
ms-python.python)会额外拉取语言服务器二进制包,这部分不走 gallery 协议,镜像对其无效——只能离线下载或配代理
自动更新还是连海外 CDN?得改内置 product.json
VSCode 自动更新不读 settings.json,它硬编码在安装目录下的 product.json 文件里。想让每次检查更新、下载新版都走国内镜像,必须手动编辑:
- Windows 路径:
%USERPROFILE%\AppData\Local\Programs\Microsoft VS Code\resources\app\product.json - macOS 路径:
/Applications/Visual Studio Code.app/Contents/Resources/app/product.json - Linux 路径:
/usr/share/code/resources/app/product.json - 找到
"extensionsGallery"字段,把其中的"serviceUrl"和"cacheUrl"值全换成https://vscode.cdn.azure.cn/api/gallery和https://vscode.cdn.azure.cn/api/gallery/cache - 保存后重启 VSCode,下次「帮助 → 检查更新」就会从国内节点拉包
serviceUrl + cacheUrl、自动更新得动 product.json。很多人卡在第二步,因为少配了 cacheUrl,或者结尾多加了个 /,结果白改。











