vscode扩展列表转圈主因是默认访问marketplace.visualstudio.com在国内dns解析失败、tls握手卡住或被重置;应检查network面板请求状态,清除错配http.proxy,禁用安全软件拦截,并配置带末尾斜杠的extensions.gallery.serviceurl(如https://open-vsx.org/vscode/gallery/),同时彻底退出vscode进程后重启。

VSCode扩展列表转圈是网络连不上marketplace.visualstudio.com
不是插件太多,也不是电脑慢,而是 VSCode 默认请求 marketplace.visualstudio.com,这个域名在国内经常 DNS 解析失败、TLS 握手卡住或被中间设备重置。你看到的空白页、无限转圈、“无法连接到扩展市场”,基本都指向这一层链路不通。
别试“重启 VSCode”或“清缓存”——这些对网络层问题完全无效。重点看三件事:
- 打开命令面板(
Ctrl+Shift+P),运行Developer: Toggle Developer Tools,切到Network标签页,刷新扩展面板,观察所有请求是否都卡在pending状态,且目标域名是marketplace.visualstudio.com - 检查
settings.json里有没有错配的http.proxy(比如值为"http://127.0.0.1:7890"但 Clash 没开 HTTP 端口)——这种配置会让请求无声挂起 - 确认没被杀毒软件或企业管控工具拦截:某些国产安全软件会静默丢弃对
vscode.cdn.azure.cn这类非标准域名的 HTTPS 请求,不报错、不弹窗
改 extensions.gallery.serviceUrl 必须带斜杠且彻底退出进程
这是最稳的解法,比开代理、改 hosts 更可靠。但两个细节极易出错:
-
extensions.gallery.serviceUrl的值末尾必须有/,例如:"https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/"✅;少这个斜杠会返回404,界面就静默卡住 ❌ - 改完
settings.json后,必须完全退出 VSCode 进程:Windows 右键任务栏图标 → “退出”,macOS 在 Activity Monitor 里杀掉所有Code和Code Helper进程,Linux 执行killall -9 code。只关窗口不管用,后台进程还在读旧配置 - 推荐优先用开源社区源
https://open-vsx.org/vscode/gallery,不用登录、无墙、镜像稳定。配置要写全:
{
"extensions.gallery": {
"serviceUrl": "https://open-vsx.org/vscode/gallery",
"itemUrl": "https://open-vsx.org/vscode/item"
}
}
内网断网时卡在“正在检查扩展更新”怎么停
即使不装新插件,VSCode 默认也会在启动时同步请求市场检测更新——这个行为和插件是否启用无关,只要已安装就会触发。卡住 10–30 秒是典型表现。
必须同时关掉两个开关才生效:
"extensions.autoCheckUpdates": false"extensions.autoUpdate": false
只关其中一个,另一个仍会拉起网络请求。这两项要一起加进 settings.json,保存后同样需彻底退出 VSCode 再重开。
插件本身卡住主线程导致“Activating Extensions”不动
如果换源后扩展列表能打开,但启动时仍卡在“Activating Extensions”,问题就从网络层转移到插件层了。常见诱因是某个插件抢在启动时干重活:
-
ms-vscode.js-debug:即使你从不调试 JS,也会初始化完整调试服务 -
gitlens:默认开启全仓库历史扫描,gitlens.advanced.caching.enabled不关,内存涨几百 MB -
ms-python.python:旧版本打开任意文件都会尝试初始化 Python 环境 -
Remote - SSH:连接远端失败时 UI 线程直接挂起,表现为“卡住几秒没报错”
验证方式:终端执行 code --disable-extensions,秒开即确认是插件问题;再运行 Developer: Show Running Extensions,重点关注 Activation Time (ms) 超过 1000 或状态长期为 Activating 的插件。
真正卡住的时候,往往不是某个插件崩溃,而是它在激活阶段做了同步阻塞操作——比如没设超时的 fs.readFileSync 或未降级的全量 Git 历史扫描。这类问题不会报错,只会让整个编辑器失去响应。











