根本原因是vs code插件市场默认连接marketplace.visualstudio.com失败,真正起效的解决方式是配置extensions.gallery.serviceurl为国内镜像源(如vscode.cdn.azure.cn),并彻底重启进程;http.proxy对插件安装无效,仅影响部分后台请求。

插件更新卡在“正在下载”或“Loading extensions…”,基本不是插件本身的问题,而是 VS Code 根本没发出去请求,或者发出去了但目标服务器不可达。
为什么改了 http.proxy 还是超时?
VS Code 的 http.proxy 设置只影响部分后台请求(比如某些更新检查),**不控制插件安装/更新的主链路**。它默认绕过系统代理,也不读取 HTTP_PROXY 环境变量——除非你用终端启动 code 命令。
-
http.proxy值必须带协议头,"http://127.0.0.1:7890"有效,"127.0.0.1:7890"会被静默忽略 - localhost 和
127.0.0.1默认被 bypass,即使配了代理,请求也根本不会走过去 - Clash/Surge 默认只开 SOCKS5 端口(如
127.0.0.1:1080),而 VS Code 不原生支持 SOCKS5,必须额外转成 HTTP 代理 -
http.proxyStrictSSL在使用 Charles/Fiddler 或企业网关时必须设为false,否则证书校验失败,Network 面板里连请求都看不到
真正起效的配置是 extensions.gallery.serviceUrl
这个配置决定了 VS Code 插件市场“发给谁”,比“怎么发”更底层、更可靠。默认值死守 https://marketplace.visualstudio.com,不 fallback,不重试,超时就卡住。
- 推荐国内镜像源:
"extensions.gallery.serviceUrl": "https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/"(注意末尾斜杠不能少) - 阿里云备用源:
"extensions.gallery.serviceUrl": "https://vscode-extensions.oss-cn-hangzhou.aliyuncs.com/extensionGallery/extensionGallery/" - 改完必须彻底退出所有 VS Code 进程(Windows 任务栏右键 → 退出;macOS 用 Activity Monitor 杀掉
Code和Code Helper)再重启 - 不要同时配
http.proxy和镜像源——二者逻辑独立,混用反而容易互相干扰
内网断网环境怎么彻底禁用联网检查?
公司内网完全不通外网时,“检查更新”这个同步请求会卡住主进程 10–30 秒,表现为启动转圈、编辑器无响应。关掉它比修网络更快。
- 必须同时关闭两项:
"extensions.autoCheckUpdates": false和"extensions.autoUpdate": false - 仅靠 GUI 设置容易漏项,务必直接编辑
settings.json(路径:%APPDATA%\Code\User\settings.json或~/.config/Code/User/settings.json) - 禁用后仍可手动安装 .vsix 文件:命令面板运行
Extensions: Install from VSIX - Remote-SSH 场景下,该设置需写在远程机器的
~/.vscode-server/data/Machine/settings.json,且要重连 SSH 才生效
最容易被忽略的是:VS Code 的网络行为分三层——代理配置(怎么发)、目标地址(发给谁)、自动检查开关(要不要发)。只调其中一层,问题大概率还在。尤其是 extensions.gallery.serviceUrl 不改,其他操作基本白忙。











