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。扩展市场需要 HTTPS443端口可能被防火墙、运营商或 DNS 污染阻断。VS Code Server 默认使用https://marketplace.visualstudio.com该域名在国内部分地区访问不稳定。解决方案更换扩展市场镜像源最简洁有效通过修改 VS Code 的远程设置将扩展市场 URL 切换到国内可访问的镜像如 Azure 中国 CDN。步骤确认当前连接的是远程主机在 VS Code 左下角状态栏应显示SSH: 192.168.0.123等远程主机标识。打开远程设置文件按CtrlShiftP输入Preferences: Open Remote Settings (JSON)并回车。如果找不到该命令可以使用Preferences: Open Settings (JSON)但务必确保当前修改的是远程主机的配置可以通过看窗口标题栏或状态栏判断。添加镜像源配置在打开的空大括号{}中插入以下内容json{ extensions.gallery.serviceUrl: https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/, extensions.gallery.cacheUrl: https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/publishers }注意两个 URL 末尾的斜杠/必须保留否则配置无效。保存文件CtrlS。彻底重启 VS Code关闭所有 VS Code 窗口。在任务管理器Windows或活动监视器macOS/Linux中结束所有code和code helper进程。重新打开 VS Code重新连接到远程主机。安装 C/C 扩展打开扩展面板CtrlShiftX搜索C/C现在应该能看到微软官方的C/C扩展。点击Install等待安装完成。安装成功后远程主机的扩展列表中会显示已安装的扩展代码跳转F12等功能恢复正常。