vscode插件安装卡住应先检查network面板中marketplace.visualstudio.com请求是否pending超20秒或出现err_connection_timed_out等错误,确认网络链路问题后,需统一代理配置并修改settings.json中的gallery.serviceurl和itemurl为国内镜像源,改完必须彻底退出vscode进程方可生效。

看 Network 面板里有没有 pending 请求
VSCode 插件调试时网络请求挂起,第一眼就该打开 Developer Tools 的 Network 标签页(Ctrl+Shift+I → Network),然后复现操作。重点不是看有没有失败,而是看有没有大量状态为 pending 且持续超 20 秒的请求——尤其是发往 marketplace.visualstudio.com 或 vscode.cdn.azure.cn 的 GET 请求。
如果全是 pending,说明请求根本没发出去或卡在 DNS/TLS 层;如果出现 ERR_CONNECTION_TIMED_OUT 或 net::ERR_CONNECTION_RESET,则要分场景处理:
-
ERR_CONNECTION_TIMED_OUT:大概率是 DNS 污染或企业防火墙拦截了域名,可终端执行nslookup marketplace.visualstudio.com看是否返回异常 IP -
net::ERR_CONNECTION_RESET:典型是出口网关/安全设备主动 RST 了 TLS 握手,常见于旧版网关不支持 TLS 1.3(VSCode 1.89+ 默认启用)
检查 extensions.gallery.serviceUrl 是否被硬编码为不可达地址
VSCode 不 fallback,它只认 extensions.gallery.serviceUrl 这个配置项指定的地址。如果你手动改过它,比如设成 https://open-vsx.org/vscode/gallery 却没配全 extensions.gallery.itemUrl,或者镜像源本身已下线(如某些临时搭建的社区源),插件市场就会静默卡住,连错误提示都不给。
必须确保 settings.json 里这两行同时存在、格式合法、末尾带 /:
"extensions.gallery.serviceUrl": "https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/", "extensions.gallery.itemUrl": "https://vscode.cdn.azure.cn/items"
改完后必须彻底退出 VSCode 进程(Windows 右键任务栏 → “退出”,macOS 用 Activity Monitor 杀掉所有 Code 和 Code Helper),否则旧配置仍在内存中运行。
确认 http.proxy 设置是否实际生效且与当前网络一致
http.proxy 在插件市场主链路中基本无效——它只影响部分后台更新检查,不控制 marketplace 请求。但一旦填错,反而会拖慢整个扩展管理器,表现为点击“Install”后 UI 假死。
常见陷阱:
- 值写成
https://127.0.0.1:7890(协议应为http://,代理服务通常不监听 HTTPS) - 代理端口开着,但 HTTP 代理功能没开(Clash/Surge 默认只开 SOCKS5,需手动开启 HTTP 端口)
- 系统开了代理,VSCode 的
http.proxy却为空,结果它直连失败,且不报错
最干净的做法:删掉 settings.json 中整行 "http.proxy",清空环境变量 HTTP_PROXY 和 HTTPS_PROXY,再重启 VSCode 测试基础通路。
WSL 或远程开发环境下插件进程不继承代理环境变量
在 WSL 或 Remote-SSH 场景下,你终端里 env | grep -i proxy 能看到 HTTPS_PROXY=http://172.19.0.1:7890,不代表 Codex/Copilot 这类插件启动的子进程也继承了它。
验证方式很直接:
- 先找到插件对应进程 PID:
pgrep -f 'codex app-server' - 再查它的实际环境:
tr '\0' '\n'
如果输出为空,说明插件没拿到代理配置。此时仅改 .bashrc 或终端环境变量毫无意义。真正有效的办法只有两个:
- 用终端启动 VSCode:
HTTPS_PROXY=http://172.19.0.1:7890 code(确保环境变量透传进 GUI 进程) - 在插件自身配置里显式指定代理(如 Copilot 支持
copilot.proxy字段)
离线安装 .vsix 时也得注意:VSCode 启动插件进程时同样不继承 shell 环境,所以依赖网络的插件(比如要连后端 API 的 Copilot)即使装上了,运行时仍可能因无代理而挂起。











