VS Code Remote-SSH 远程开发:解决无法安装扩展、市场加载失败的问题

问题现象

在 VS Code 中使用 Remote-SSH 连接到远程 Linux 主机(例如 OK3568 开发板)进行开发时,扩展面板无法正常加载扩展列表,搜索 C/C++ 等插件时只显示一个"C/C++ Themes"且报错:

复制代码
Error while fetching extensions. Failed to fetch
Showing local extensions.

远程主机上已安装的扩展数量显示为 0,无法安装任何语言服务扩展(如 C/C++ 扩展),导致代码无法跳转定义、无法补全等。

但远程主机本身网络是通的,ping 8.8.8.8 和 ping www.baidu.com 均成功,说明不是物理网络不通。

原因分析

VS Code 的扩展市场默认源是 marketplace.visualstudio.com。在国内网络环境下,该域名有时会被干扰或 DNS 解析异常,导致 VS Code Server 无法连接。

Remote-SSH 模式下,VS Code 会在远程主机上运行一个 vscode-server 进程,该进程负责下载和安装扩展。如果远程主机无法访问默认的扩展市场 URL,就会出现上述现象。

为什么 ping 通却无法访问扩展市场?

  • ping 测试的是 ICMP 协议,不涉及 HTTPS。

  • 扩展市场需要 HTTPS(443端口),可能被防火墙、运营商或 DNS 污染阻断。

  • VS Code Server 默认使用 https://marketplace.visualstudio.com,该域名在国内部分地区访问不稳定。

解决方案

更换扩展市场镜像源(最简洁有效)

通过修改 VS Code 的远程设置,将扩展市场 URL 切换到国内可访问的镜像(如 Azure 中国 CDN)。

步骤:
  1. 确认当前连接的是远程主机

    在 VS Code 左下角状态栏应显示 SSH: 192.168.0.123 等远程主机标识。

  2. 打开远程设置文件

    按 Ctrl+Shift+P,输入 Preferences: Open Remote Settings (JSON) 并回车。

    如果找不到该命令,可以使用 Preferences: Open Settings (JSON),但务必确保当前修改的是远程主机的配置(可以通过看窗口标题栏或状态栏判断)。

  3. 添加镜像源配置

    在打开的空大括号 {} 中插入以下内容:

    json

    复制代码
    {
        "extensions.gallery.serviceUrl": "https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/",
        "extensions.gallery.cacheUrl": "https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/publishers"
    }

    注意 :两个 URL 末尾的斜杠 / 必须保留,否则配置无效。

  4. 保存文件 (Ctrl+S)。

  5. 彻底重启 VS Code

    • 关闭所有 VS Code 窗口。

    • 在任务管理器(Windows)或活动监视器(macOS/Linux)中结束所有 code 和 code helper 进程。

    • 重新打开 VS Code,重新连接到远程主机。

  6. 安装 C/C++ 扩展

    打开扩展面板(Ctrl+Shift+X),搜索 C/C++,现在应该能看到微软官方的 C/C++ 扩展。点击 Install,等待安装完成。

安装成功后,远程主机的扩展列表中会显示已安装的扩展,代码跳转(F12)等功能恢复正常。

相关推荐
Oiiouui1 天前
linux服务器部署Logto后端与对应前端的实现
linux·服务器·前端·后端
ITKEY_1 天前
用 Emacs Dired 实现 em:退出文件管理器后,让终端自动切换目录
linux·服务器·emacs
wt95271 天前
VMware 虚拟机磁盘扩容实战文档(Ubuntu 22.04 + LVM)
linux·后端
就像楞次定律1 天前
【Linux 学习记之二】C++ 构建体系与底层链接机制的深度透视(2)
linux·后端
无足鸟ICT1 天前
【RHCA+】slabtop命令(查看slab缓存)
linux
且从容.1 天前
Ubuntu 安装 Docker
linux·ubuntu·docker
青梅味猪大肠1 天前
【操作系统-60】临近适应算法
java·linux·开发语言·嵌入式硬件·算法·操作系统
沫璃染墨1 天前
从零入门计算机网络系列(十四):TCP报文与字节流本质——从数据封装到报文边界
linux·服务器·网络·网络协议·tcp/ip·tcp
CodeYp20191 天前
第19讲:自旋锁
linux·自旋锁
此生决int1 天前
Linux系列(08)——进程控制
linux·运维·驱动开发