企业内网无法访问插件市场,90%是http.proxy配置无效或配错位置:必须用"http://127.0.0.1:7890"格式(禁用localhost),Remote-SSH需在远程~/.vscode-server/data/Machine/settings.json中单独配置,且换extensions.gallery.serviceUrl为vscode.cdn.azure.cn镜像源并彻底重启进程才真正生效。

直接结论:企业内网无法访问插件市场,90% 不是网络不通,而是 VSCode 的 http.proxy 配置没生效,或根本配错了地方——尤其在 Remote-SSH、Remote-Containers 场景下,本地代理设置对远程 vscode-server 完全无效。
为什么填了 http.proxy 还是转圈?
VSCode 不继承系统代理,也不读取环境变量(除非从终端启动),但更隐蔽的问题是:http.proxy 值必须带完整协议前缀,且不能用 localhost。
-
http.proxy必须是完整 URL 格式,例如"http://127.0.0.1:7890"—— 填"127.0.0.1:7890"或"localhost:7890"会被静默忽略 - Windows/macOS 系统默认把
127.0.0.1和localhost加入 bypass 列表,导致请求根本不发给代理进程 - 验证是否真通:在 VSCode 内置终端执行
curl -x http://127.0.0.1:7890 https://httpbin.org/ip,能返回出口 IP 才算代理真正起作用 - 若代理服务运行在另一台机器(如
192.168.1.100),需确保它开启allow-lan: true并放行端口
Remote-SSH 场景下插件装不上?代理根本没配到远程
本地 http.proxy 设置不会透传给远程服务器上的 vscode-server。所有扩展安装、更新、语言包下载,都是远程机器自己发起的 HTTPS 请求。
- 必须手动编辑远程机器上的
~/.vscode-server/data/Machine/settings.json(注意是Machine目录,不是User或Remote) - 写入有效配置,例如:
{"http.proxy":"http://192.168.1.100:8080","http.proxyStrictSSL":false} - 改完后必须彻底断开并重连 Remote-SSH,仅“重新加载窗口”无效
- 别往
~/.bashrc里写export HTTP_PROXY—— SSH non-interactive shell 不加载它,vscode-server也完全不认
http.proxyStrictSSL 关不关?看你的代理类型
很多企业中间人代理(Zscaler、Netskope)或本地调试代理(Clash/Fiddler/mitmproxy)使用自签名证书,VSCode 默认拒绝连接,表现为市场空白页、安装卡住无提示。
- 必须加
"http.proxyStrictSSL": false,否则会静默失败,控制台甚至不报错 - 如果代理本身提供正规 CA 签发的证书(如新版 Clash with real CA),可省略此项
- 这个配置只影响走
http.proxy的请求(如语言包下载、自动更新检查),不影响extensions.gallery.serviceUrl指向的镜像源
比代理更稳的方案:换国内镜像源
代理配置容易出错、依赖外部服务稳定性;而换镜像源(如 vscode.cdn.azure.cn)是纯客户端行为,无需额外服务,且微软官方背书。
- 修改用户
settings.json,加入两行:"extensions.gallery.serviceUrl": "https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/"和"extensions.gallery.cacheUrl": "https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/publishers" - URL 必须带完整协议 + 路径,末尾必须有
/;extensionGallery大小写敏感,不能拼错 - 改完必须彻底退出所有 VSCode 进程(包括后台
Code Helper),再重启 —— “重新加载窗口”完全无效 - Windows:右键任务栏图标 → “退出”,再进任务管理器杀光
Code.exe和Code Helper.exe
macOS:活动监视器中强制退出全部Code和Code Helper
Linux:pkill -f "code"或killall -9 code
最常被忽略的一点:Remote 场景下,extensions.gallery.serviceUrl 也要配在远程 ~/.vscode-server/data/Machine/settings.json 里,否则远程 vscode-server 仍会尝试直连外网市场。


















