VSCode启动卡在“正在检查扩展更新”是因内网断网时默认同步请求marketplace.visualstudio.com超时所致,需同时设"extensions.autoCheckUpdates": false和"extensions.autoUpdate": false并完全重启生效。

VSCode 启动时卡在“正在检查扩展更新”转圈
这是内网断网环境下最典型的症状,vscode 默认会在启动时向 marketplace.visualstudio.com 发起 HTTP 请求检测所有已安装扩展的更新状态。一旦网络不通、DNS 不可达或代理配置错误,这个请求会卡住 10–30 秒(取决于系统超时策略),表现为窗口长时间无响应、活动指示器持续旋转、甚至编辑器无法输入。
根本原因不是插件本身慢,而是 VSCode 主进程在同步等待这个网络探测完成。即使你没开自动更新,只要 "extensions.autoCheckUpdates" 为 true(默认值),它就一定会触发。
- 临时验证:打开命令面板(
Ctrl+Shift+P),运行Developer: Toggle Developer Tools,切到 Network 标签页,再重启 VSCode,你会看到大量https://marketplace.visualstudio.com/...请求处于pending状态 - 关键配置项是
extensions.autoCheckUpdates和extensions.autoUpdate,二者需同时关掉才有效 - 别信“禁用所有插件就能解决”——只要插件已安装且自动检查开启,VSCode 就会尝试连市场,跟是否启用无关
彻底禁用扩展市场联网行为的配置方式
仅靠 UI 设置容易漏掉隐藏项,推荐直接修改 settings.json,确保策略生效且不被 GUI 覆盖。
- 打开设置(
Ctrl+,),右上角点“打开设置 (JSON)”图标,或手动编辑%APPDATA%\Code\User\settings.json(Windows)/$HOME/Library/Application Support/Code/User/settings.json(macOS)/$HOME/.config/Code/User/settings.json(Linux) - 加入以下两项(注意逗号分隔):
"extensions.autoCheckUpdates": false,<br>"extensions.autoUpdate": false
- 如果公司统一部署了策略组(如 Windows GPO 或 macOS MDM),还需确认
extensions.gallery.serviceUrl是否被设为内网镜像地址;若未配置,建议显式设为"https://marketplace.visualstudio.com"或留空(部分旧版会因解析失败更卡) - 改完保存后必须完全退出 VSCode(包括托盘进程),再重新启动,否则设置不热加载
内网环境仍想用插件但无法访问 Marketplace 的替代方案
禁用联网只是治标。如果你需要新增插件(比如同事共享的 .vsix 文件),又不能连外网,就得绕过市场机制。
- 安装本地插件:用命令面板运行
Extensions: Install from VSIX...,选择下载好的.vsix文件(注意版本兼容性,VSCode 1.80+ 安装时会校验engines.vscode字段) - 禁用远程更新后,插件自身可能仍有后台请求(如 Prettier、ESLint 插件会查远程 schema 或规则集),可在插件设置里关掉对应选项,例如:
"prettier.enable": true但"prettier.useEditorConfig"设为false避免读取远程配置 - 某些插件(如 GitLens)默认启用遥测和在线功能,需单独关闭:
"gitlens.advanced.telemetry.enabled": false - 不要用“离线模式”开关(
File > Preferences > Settings > Application > Proxy > Proxy设为ignore)——这只会让代理失败更快,不解决市场检测逻辑
为什么改了设置还是偶尔卡住?排查真实瓶颈
即使关掉自动检查,卡顿仍存在,大概率是其他扩展在做同步网络操作,或者 VSCode 正在尝试连接被拦截的 telemetry / crash reporter 服务。
- 启动时加
--disable-extensions参数测试:code --disable-extensions。如果不卡,说明问题出在某个扩展上;再逐个启用排查 - 重点关注带“Live Share”、“GitHub Copilot”、“Tabnine”、“Cursor” 类 AI 或协作插件——它们常在激活时发起不可取消的认证请求
- 检查
Developer Tools > Console里是否有Failed to fetch或net::ERR_CONNECTION_REFUSED报错,对应 URL 往往就是罪魁祸首 - Windows 内网常见陷阱:企业防火墙或安全软件劫持了 localhost DNS,导致 VSCode 尝试解析
localhost失败;可尝试在 hosts 文件中硬写127.0.0.1 localhost
真正卡住的地方往往不在表面配置,而在于某个插件的初始化逻辑里藏了一次同步 fetch。关掉自动更新只是第一层,后续得靠开发者工具抓包定位具体哪个请求拖住了主线程。


















