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.8ping 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)中结束所有 codecode helper 进程。

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

  6. 安装 C/C++ 扩展

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

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

相关推荐
颖火虫盟主3 小时前
Linux 系统分层架构:从硬件通电到 systemd 进程管理
linux·运维·架构
hehelm3 小时前
Linux 信号(Signal)
linux
cui_ruicheng3 小时前
Linux网络编程(九):应用层协议与序列化
linux·运维·服务器·网络
kobe_OKOK_4 小时前
ubuntu server 存儲空間占滿的原因
linux·运维·ubuntu
诸神缄默不语4 小时前
在Linux中使用Vim编辑文本
linux·vim
菜鸟是大神4 小时前
07-Claude Code 的常用命令和快捷键
linux·运维·服务器
hj2862515 小时前
Linux存储空间管理完整笔记
linux·运维·笔记
Championship.23.245 小时前
Linux 3.0 中断机制深度解析:从传统PIC到现代中断架构的转折点
linux·运维·架构·中断
小猫咪015 小时前
Linux OOM Killer 是什么?程序为什么突然被杀?
linux·运维·服务器