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

相关推荐
摇滚侠15 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush416 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行52016 小时前
Linux 11 动态监控指令top
linux
不会C语言的男孩17 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
古城小栈17 小时前
Unix 与 Linux 异同小叙
linux·服务器·unix
凡人叶枫19 小时前
Effective C++ 条款42:了解 typename 的双重意义
java·linux·服务器·c++
2601_9618752419 小时前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant
java_cj19 小时前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
lsyeei19 小时前
linux 系统目录详解
linux·运维·服务器
森G19 小时前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt