直接改extensions.gallery.serviceurl指向国内镜像源并彻底退出所有vs code进程是90%场景下唯一真正生效的解法,因其扩展市场不读取http.proxy配置,仅认serviceurl或系统环境变量,且必须同步配置cacheurl、末尾带/、严格区分大小写,并完全退出进程才生效。

直接改 extensions.gallery.serviceUrl 指向国内镜像源,并彻底退出所有 VS Code 进程——这是 90% 场景下唯一真正生效的解法。不是网络断了,而是 VS Code 死守 marketplace.visualstudio.com,这个地址在国内基本不可用。
为什么改 http.proxy 完全没用
VS Code 扩展市场页面(搜索、安装、更新)不读取 http.proxy 配置项,它走 Electron 底层网络栈,只认系统环境变量或硬编码的市场 URL。你填了 "http.proxy": "http://127.0.0.1:7890" 却还在转圈,大概率是白配。
-
http.proxy只影响语言包下载、自动更新检查等次要请求,和插件市场加载无关 - 漏掉
http://前缀、写成localhost而非127.0.0.1,会导致静默失效,无报错也无日志 -
http.proxyStrictSSL设为false只解决证书校验失败,不解决“连不上”本身 - 双击图标或从开始菜单启动的 VS Code,完全不继承 shell 的
HTTP_PROXY环境变量
怎么配 extensions.gallery.serviceUrl 才真正生效
这是扩展系统的“总开关”,但极易因格式错误完全失效。必须同时满足三个硬性条件:
-
serviceUrl必须带完整协议 + 路径,末尾必须有/,例如"https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/";少一个斜杠会静默返回 404,界面卡住不报错 - 必须同步配置
cacheUrl,否则 publisher 列表空白、扩展页加载失败;推荐值与serviceUrl完全一致 - 大小写敏感:
extensionGallery不能写成extensiongallery或ExtensionGallery - 别混用不同镜像:比如
serviceUrl指向azure.cn,cacheUrl指向open-vsx.org,会导致部分请求 404 或签名校验失败
改完 settings.json 为什么还是没反应
因为 VS Code 后台服务进程(Code Helper)仍在运行,它缓存着旧的市场地址,新配置根本没加载。只关窗口、点“重新加载窗口”完全无效。
- Windows:右键任务栏图标 → “退出”;再打开任务管理器,结束所有
Code.exe和Code Helper.exe - macOS:打开“活动监视器”,搜索并强制退出全部
Code和Code Helper进程 - Linux:执行
pkill -f "code"或killall -9 code - 命令行启动的用户还要注意:
code --new-window不等于彻底重启,必须杀进程再重开
离线安装 .vsix 时常见失败原因
提示 “Corrupted ZIP” 或 “Not compatible” 不是文件损坏,而是 VS Code 1.77+ 启用了强校验机制,校验链断了就拒绝加载。
- 用
unzip -t xxx.vsix检查 ZIP 是否损坏;根目录必须有有效的package.json - 打开
package.json,确认"engines": {"vscode": "^1.85.0"}中的版本 ≤ 当前 VS Code 版本(如你用的是 1.90.0,插件写"^1.92.0"就会被拒) - 文件大小异常小(curl -L -o xxx.vsix [url] 重下
- 双击无反应?可能是安全软件(如 360、腾讯电脑管家)静默拦截了对
cdn.azure.cn等非标准域名的 HTTPS 请求
最容易被忽略的点是:URL 末尾缺斜杠、进程没杀干净、cacheUrl 没配——这三个问题占实际失效案例的 80% 以上。别信“重启编辑器”按钮,它只是重开窗口,后台服务仍在复用旧地址。











