VSCode插件市场转圈主因是它不读http.proxy配置,真正生效的是extensions.gallery.serviceUrl;必须同步配置serviceUrl与cacheUrl(如https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/),且URL末尾带/、大小写正确,并彻底退出所有Code及Code Helper进程后重启。

为什么改了 http.proxy 插件市场还是转圈
VSCode 的插件市场(marketplace.visualstudio.com)根本**不走 http.proxy 配置**——它只认 extensions.gallery.serviceUrl 这个独立配置项。填了代理却没效果,不是代理写错了,而是请求压根没发到代理进程里。
更隐蔽的问题是:http.proxy 对 Remote-SSH 场景完全无效。远程机器上运行的 vscode-server 进程,只读自己家的 ~/.vscode-server/data/Machine/settings.json,本地 VSCode 里写的代理对它毫无意义。
- localhost 或
127.0.0.1在 Windows/macOS 上常被系统 bypass 规则拦截,代理服务收不到请求 - 缺
http://前缀(比如只写"127.0.0.1:7890")→ VSCode 直接忽略该配置 -
http.proxyStrictSSL默认为true,遇到自签名证书(如 Fiddler/Charles/企业网关)会静默失败,Network 面板里看不到任何请求
换镜像源比配代理更直接有效
国内用户首选 https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/,这是微软官方 Azure CDN 镜像,延迟低、稳定性高,且无需额外代理服务。
必须同时设置两个字段,且 URL 完全一致、末尾带斜杠:
"extensions.gallery.serviceUrl": "https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/", "extensions.gallery.cacheUrl": "https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/"
常见错误:
-
extensionGallery大小写敏感,写成extensiongallery→ 404 - 少一个末尾
/→ 返回空响应,界面卡在 loading,无报错提示 - 改完没杀干净进程:Windows 要右键任务栏图标选「退出」,macOS 要在活动监视器里干掉所有
Code和Code Helper,Linux 执行killall -9 code
Remote-SSH 场景下插件装不上怎么办
远程开发时,中文包、插件更新失败,90% 是因为 vscode-server 没连上市场源。它不继承本地配置,也不读环境变量,只认自己那个 settings.json。
操作路径:
- 用 SSH 登进远程机器,编辑
~/.vscode-server/data/Machine/settings.json - 写入最小可用配置(注意 IP 必须是远程机器能直连的局域网地址,不能用
127.0.0.1):
{"http.proxy":"http://192.168.1.100:7890","http.proxyStrictSSL":false}
关键点:
- 改完必须彻底断开 SSH 连接(不只是关闭窗口),再重连——
vscode-server只在启动时加载该文件 - 如果远程机器本身没外网,就别折腾代理,直接在本地下载好
.vsix,用命令行安装:code --install-extension /path/to/xxx.vsix
插件市场搜不到中文包?不是网络问题,是搜索机制变了
VSCode 1.85+ 版本已将官方中文语言包从市场搜索索引中移除。搜“中文”“Chinese”“汉化”全部无效,只会命中失效第三方包。
唯一可靠方式是用 ID 精准安装:
- ID 必须是
ms-ceintl.vscode-language-pack-zh-hans - 安装后必须执行
Configure Display Language命令,把locale设为"zh-cn"(双引号、小写、短横线) - 保存后弹窗里点
Restart,或手动关所有窗口再重开——仅改 setting 不重启,界面仍是英文
真正容易被忽略的是:extensions.gallery.serviceUrl 配置错一个字符、少一个斜杠、进程没杀干净,都会让整个市场功能静默失效;而 http.proxy 在多数场景下只是个安慰剂。


















