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)等功能恢复正常。

相关推荐
Discipline~Hai17 小时前
Linux网络编程03-HTTP协议
linux·运维·服务器·网络·网络协议·http·linux网络编程
青瓦梦滋17 小时前
Linux高级IO
linux·运维·服务器·网络·网络协议·tcp/ip
꯭自꯭闭꯭17 小时前
达梦(DM8)安装测试
linux·运维·服务器·数据库
牢姐与蒯18 小时前
Linux进程(七).进程控制
linux·运维·服务器·ubuntu
Mr. zhihao18 小时前
Linux 内存惰性分配:从虚拟地址到物理页的深度解析
linux·服务器·内存分配
清风玉骨18 小时前
zero3W的镜像制作和镜像烧录
linux
光电笑映18 小时前
Linux 线程编程:从进程、分页到线程控制与封装
linux·运维·服务器·c++
wzg201618 小时前
本地部署Deepseek-coder + Vscode + Continue 插件(3)启动与关闭deepseek-coder大模型
linux·运维·服务器
H_oRIZoN_18 小时前
Linux入门DAY37(IO 多路复用、TCP 并发服务器与数据库 SQLite3 详解)
linux·服务器·数据库
新时代牛马18 小时前
Linux 块设备驱动完整篇:从gendisk、submit_bio 到blk-mq queue_rq 与排障
linux·运维·服务器