VSCode安装本身不联网,真正卡住的是插件和更新检查;需禁用extensions.autoCheckUpdates、extensions.autoUpdate、update.mode等配置并彻底重启生效。

VSCode安装本身不联网,真正卡住的是插件和更新检查
VSCode桌面版安装程序(vscode-setup.exe 或 VSCode-darwin-universal.zip)本身是纯本地行为,不依赖网络。你看到的“正在下载”“正在检查更新”弹窗,几乎全部来自后续的插件市场访问、自动更新检测或语言服务器(LSP)初始化——不是安装器在联网,而是 VSCode 启动后自己去连。
所以所谓“绕过网络连接请求”,本质是切断 VSCode 启动后的默认联网动作,而不是修改安装包。
- 安装时直接运行
vscode-setup.exe(Windows)或解压后双击应用(macOS),全程无网络交互 - 首次启动后默认会检查更新、加载扩展推荐、尝试下载语言服务器(如 Python 的 Pylance、TypeScript 的 TS Server)
- 这些行为发生在 安装完成之后,且集中在第一次打开工作区时
禁用首次启动时的自动联网行为
VSCode 启动即联网,主要由三个机制驱动:自动更新、扩展市场推荐、语言服务器离线资源拉取。关掉它们,就能让 VSCode 真正“开箱即用”。
- 启动时加参数:
code --disable-extension-telemetry --disable-updates --disable-workspace-trust(适用于临时调试) - 更彻底的做法:在首次启动前,预先写入配置。新建一个空文件夹,放入
settings.json:
{
"extensions.autoCheckUpdates": false,
"extensions.autoUpdate": false,
"telemetry.telemetryLevel": "off",
"update.mode": "none",
"workbench.extensions.experimental.ignoredRecommendations": ["*"],
"python.defaultInterpreterPath": "/dev/null"
}
然后用 code --user-data-dir=/path/to/this/folder 启动。这样连“推荐扩展”面板都不会出现,也不会触发 LSP 下载。
插件安装阶段必须断网,否则拖.vsix会失败
很多人以为拖拽 .vsix 是纯离线操作,结果拖进去没反应——其实是因为 VSCode 在拖放瞬间仍会尝试校验签名或查询 Marketplace 元数据。只要网络通,它就可能卡在验证环节。
- 最稳做法:拔网线 / 关 Wi-Fi / 用防火墙规则屏蔽
marketplace.visualstudio.com和vscode-update.azurewebsites.net - 确认已断网后再启动 VSCode,并确保窗口有焦点、未全屏、未处于远程 SSH 会话中
- 拖
.vsix文件到编辑器主区域(不是侧边栏、不是设置页),松手即弹确认框 - 安装完成后,插件默认禁用,必须手动点「启用」;语言类插件(如
ms-python.python)首次启用仍会卡在 “Downloading Pylance…” —— 这说明它还在试图联网拉 LSP,得提前配好离线 LSP 路径或换用pyright这类自带二进制的替代品
离线环境里最容易被忽略的其实是 LSP 和 Node.js 依赖
装完插件只是第一步。很多插件(尤其是 Python、TypeScript、ESLint)启动时要 spawn 子进程或下载二进制语言服务器。这些动作不会报错,只会静默卡住或报 spawn ENOENT。
- Python 插件默认用 Pylance,它需要联网下载
pylance-win32-ia32.vsix类似包;换成ms-python.vscode-pyright就能避免——它把pyright二进制打包进.vsix里了 - TypeScript 插件依赖内置 TS Server,但旧版 VSCode(tsserver,而内网机器往往没装 Node.js;建议统一用 VSCode 自带版本,或提前部署
node.exe到%USERPROFILE%\AppData\Roaming\Code\Node\ - 验证是否真可用:别只看扩展面板显示“已启用”,打开命令面板(
Ctrl+Shift+P),输入插件命令(如Python: Select Interpreter),看能否响应;再切到输出面板(View → Output),选对应通道,找有没有Failed to fetch或connect ECONNREFUSED


















