先确认网络是否卡在marketplace.visualstudio.com:打开developer tools的network页,点击安装,观察是否有大量pending超20秒或err_connection_timed_out等错误;若存在,则为网络链路问题,需检查代理一致性并手动修改settings.json中的gallery.serviceurl和itemurl,改完须完全退出vscode进程方可生效。

VSCode 扩展安装报错,90% 不是 VSCode 坏了,而是网络请求卡在 marketplace.visualstudio.com 或被本地环境拦截——先确认是否真连得上,再动配置。
怎么看是不是 network 卡住?
打开命令面板(Ctrl+Shift+P),运行 Developer: Toggle Developer Tools,切到 Network 标签页,然后点一次“安装扩展”。重点观察:
- 是否有大量
https://marketplace.visualstudio.com/...请求状态为pending超过 20 秒 - 是否有
ERR_CONNECTION_TIMED_OUT或ERR_SSL_VERSION_OR_CIPHER_MISMATCH - 有没有请求发到了
open-vsx.org却返回 404(说明镜像源配置不全)
如果全是 pending 或失败,基本可以确定是网络链路问题,不是插件本身或权限问题。
改 settings.json 才生效,UI 设置没用
VSCode 的扩展市场地址(serviceUrl 和 itemUrl)不支持图形界面修改,必须手动编辑用户设置文件:
- Windows:
%APPDATA%\Code\User\settings.json - macOS:
~/Library/Application Support/Code/User/settings.json - Linux:
~/.config/Code/User/settings.json
添加这两行(注意逗号分隔、末尾斜杠不能少):
"extensions.gallery.serviceUrl": "https://vscode.cdn.azure.cn/_apis/public/gallery/", "extensions.gallery.itemUrl": "https://vscode.cdn.azure.cn/items"
改完必须完全退出 VSCode(任务管理器里杀掉所有 Code 和 Code Helper 进程),否则仍走旧地址。
http.proxy 和系统代理不一致会静默失败
VSCode 不自动继承系统代理,只认自己配置的 http.proxy。如果你开了 Clash/Surge 但没设全局,或者终端里设置了 HTTP_PROXY 环境变量,而 VSCode 的 settings.json 里没配 http.proxy,它就会直连失败,且不提示。
检查三处是否统一:
- VSCode
settings.json中的http.proxy字段 - 系统设置里的代理开关(Windows 设置 → 网络 → 代理;macOS 系统设置 → 网络 → 高级 → 代理)
- 终端执行
echo $HTTP_PROXY(Linux/macOS)或echo %HTTP_PROXY%(Windows)
临时排除干扰:把 settings.json 里 http.proxy 设为空字符串,并删掉环境变量,再试。
手动安装 .vsix 仍报 Corrupted ZIP 或 Signature verification failed
这不是网络问题,是 VSCode 1.77+ 后加强了签名校验。常见于:
- 下载过程中文件被中间设备(如企业网关、杀软)重写,导致 zip 结构损坏
-
.vsix解压后根目录没有extension/package.json -
package.json中engines.vscode字段不兼容当前版本(例如你用1.90.0,字段写的是"^1.92.0")
验证方式:用任意解压工具打开 .vsix,确认能正常浏览且有 package.json;再打开它,检查 engines.vscode 是否包含你当前版本(可在 VSCode 帮助 → 关于里查看)。
仅限可信来源可临时绕过:settings.json 加 "extensions.installVerification": false,装完立刻删掉。
真正难排查的从来不是“装不上”,而是装上了却没激活——比如某个扩展悄悄禁用了 Extension Host,或者多个插件共用同一个 Node.js 模块但版本冲突。这类问题不会报红字,只会让你反复点“重装”,最后发现是 ms-python.python 和 ms-toolsai.jupyter 在后台互相 kill 进程。











