优先修改extensions.gallery.serviceUrl为国内镜像源(如https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/),并彻底退出VSCode所有进程后重启;http.proxy配置对插件市场基本无效,VSCODE_PROXY_SUPPORT变量不存在。

VSCode 插件市场卡在 “Loading extensions…” 或安装时提示 connect ETIMEDOUT,90% 不是网络断了,而是请求压根没发出去——marketplace.visualstudio.com 域名被 DNS 污染、TLS 握手失败、或 VS Code 自身网络栈绕过了系统代理。直接改 extensions.gallery.serviceUrl 是最快生效的解法,其他操作(清缓存、换代理、重装)不配这步基本无效。
为什么改 extensions.gallery.serviceUrl 最有效
VS Code 不 fallback,默认死守 https://marketplace.visualstudio.com。不改这个配置,哪怕你代理设对了、DNS 也正常,它照样连不上。镜像源直连 Azure CDN 或阿里云 OSS,绕过污染节点和 TLS 中间人拦截,且无需依赖本地代理服务是否运行。
- 必须加末尾
/,否则 JSON 解析失败,配置静默无效 - 推荐优先用微软官方镜像:
"extensions.gallery.serviceUrl": "https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/" - 若公司封了 Azure 域名,可切阿里云源:
"extensions.gallery.serviceUrl": "https://vscode-extensions.oss-cn-hangzhou.aliyuncs.com/extensionGallery/extensionGallery/" - 改完必须彻底退出所有 VS Code 进程(Windows 右键任务栏 → 退出;macOS 用 Activity Monitor 杀掉所有
Code和Code Helper),再重启
http.proxy 配置错一个字符就全挂
http.proxy 对 Marketplace 主链路基本无效,但它会影响部分更新检查类请求。网上流传的 VSCODE_PROXY_SUPPORT 环境变量根本不存在,纯属误传。真正有效的代理方式只有两种:
- 启动 VS Code 时加参数:
code --proxy-server=127.0.0.1:7890(端口按你实际代理调整) - 在系统环境变量中设
HTTPS_PROXY=http://127.0.0.1:7890,然后用终端执行code启动(双击图标不继承环境变量) -
http.proxy值必须带http://前缀,写成127.0.0.1:7890会被静默忽略 - 代理服务必须支持 HTTPS CONNECT,Clash 默认 HTTP 端口(如 7890)只处理 HTTP 流量,Marketplace 请求是 HTTPS,需确认开启对应功能
插件已安装却“看不见”的真实原因
不是插件没装上,而是 VS Code 扩展管理器两级缓存不一致:内存里的 Extension Host 进程缓存 + 磁盘上的 ~/.vscode/extensions 目录。常见表现是扩展面板里搜不到、点了 Install 没反应、或显示“已启用”但侧边栏无图标。
- 先运行命令面板(
Ctrl+Shift+P)→Developer: Reload Window强制刷新 Extension Host - 手动检查插件目录是否存在对应文件夹:
ls ~/.vscode/extensions | grep 插件名(macOS/Linux)或dir %USERPROFILE%\.vscode\extensions(Windows) - 若目录存在但未加载,大概率是权限问题:尤其在 WSL 或挂载 NTFS 分区时,确认该目录归属当前用户且非只读
- 删除
~/.vscode/extensionsCache目录再重启 VS Code——这是磁盘缓存索引,损坏后会导致插件元数据无法解析
远程开发场景下插件安装失败的盲区
Remote-SSH 场景下,本地 VS Code 的 http.proxy 设置不会透传到远程服务器。插件安装失败,几乎全是远程端没配代理,而不是本地网络问题。
- 代理配置必须写入远程服务器的
Machinesettings.json(不是 User 或 Remote),路径为~/.vscode-server/data/Machine/settings.json - 填
"http.proxy": "http://your-proxy:8080",同样要带协议前缀 - 修改后必须断开 SSH 连接并重新连接,热重载无效
- 别在
~/.bashrc里export HTTP_PROXY——vscode-server 启动时不加载 shell 配置 - 更稳方案仍是改远程端的
extensions.gallery.serviceUrl,和本地一样加镜像源
最常被忽略的点是:改完任何网络相关配置后,VS Code 必须彻底退出所有进程再重启——残留的 Code Helper 进程会继续用旧配置发起请求,导致你以为“改了没用”。


















