必须同时配置serviceUrl和itemUrl且末尾带斜杠,否则VSCode静默返回404并无限重试;改配置后须彻底退出所有Code进程才生效,否则设置不生效。

直接换镜像源比调代理更稳,但必须同时改 serviceUrl 和 itemUrl,且两个 URL 末尾都要带斜杠,否则 VSCode 静默 404、只重试不报错。
为什么改了 serviceUrl 还卡在“重试中”
VSCode 扩展系统不是只发一个请求,它会并发打 serviceUrl(查列表)、itemUrl(取详情)、cacheUrl(拉清单)三个地址。漏配任意一个,就会在某个环节失败后无限重试。
-
serviceUrl和itemUrl必须成对出现,例如用 vscode-cn 源就得写成:"extensions.gallery.serviceUrl": "https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/""extensions.gallery.itemUrl": "https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/item/" - URL 末尾缺斜杠是高频错误——VSCode 不会自动补,服务器返回 404,但 UI 只显示“重试中”,控制台 Network 标签里能看到大量 Status: 404 的请求
- Windows 用户复制配置时容易混入全角空格或换行,建议手动敲一遍,别 Ctrl+V
改完配置没生效?进程没彻底退出
VSCode 的设置变更不是热加载,尤其是涉及扩展市场底层 URL 的改动,必须杀掉所有后台进程再重启。
- Windows:任务管理器里结束全部
Code.exe进程(包括后台的Code Helper (Renderer)) - macOS:Activity Monitor 搜索
Electron或Code,强制退出全部相关进程 - Linux:运行
pkill -f "code",再检查ps aux | grep code确认无残留 - 验证是否生效:打开 Developer Tools → Network 标签,点一次“安装”,看请求域名是不是已变成你配的镜像域名
Network 控制台里看到 ERR_CONNECTION_TIMED_OUT 怎么办
这不是配置问题,而是链路层断了。先排除本地干扰,再决定要不要换源。
- Status 显示
(failed) net::ERR_CONNECTION_TIMED_OUT→ DNS 解析失败或 TLS 握手超时,优先关掉 Clash/Surge 的 TUN 模式,切回系统代理或直连 - Status 是 0 且 Timing 里 stalled 超过 30 秒 → 很可能是 360、腾讯电脑管家等安全软件静默丢包,临时退出它们再试
- 如果用了代理但
http.proxy填的是localhost:7890,VSCode 默认把它加入 bypass 列表,请求根本没走代理;换成http://192.168.x.x:7890并确保代理软件开了 allow-lan
手动装 .vsix 还提示 “Download failed”
这已经不是网络问题,而是 VSCode 在校验阶段拒绝加载。常见于三类情况:
- 下载的
.vsix文件损坏(比如下载中途断开没重试,文件大小明显偏小) - 插件签名不匹配(尤其用 open-vsx.org 下载的插件,部分作者未签名,VSCode 1.85+ 默认拦截)
- 引擎版本越界:插件
package.json里写的engines.vscode版本高于你本地 VSCode,例如插件要求"^1.90.0",而你装的是 1.88.2
真正难搞的其实是最后一种——它不报具体版本冲突,只弹“Download failed”,得去插件页面点“Details”,展开 package.json 才能看见引擎要求。


















