VSCode如何离线搭建Remote-SSH环境 - 无外网服务器的手动安装服务端包指南

浅辰姑娘_8779

浅辰姑娘_8779

2026-03-19

415人浏览

原创

需手动将与本地vscode版本完全匹配的vscode-server压缩包(含对应commit id)拷贝至目标机~/.vscode-server/bin/下指定哈希目录并解压,确保glibc、node及ssh终端支持均满足要求。

vscode如何离线搭建remote-ssh环境 - 无外网服务器的手动安装服务端包指南

Remote-SSH服务端没联网,vscode-server怎么装到目标机器上?

离线服务器没法自动下载 vscode-server,VSCode Remote-SSH 连接时会卡在“Installing VS Code Server”并报错 Failed to fetch。核心不是“连不上”,而是客户端根本没把服务端二进制文件送过去。

  • 别指望 ssh 连上去再手动 curl —— 离线环境连 curl 都可能没装,更别说证书和域名解析
  • 必须提前把对应平台的 vscode-server 压缩包(tar.gz)拷到目标机器,并解压到 ~/.vscode-server/bin/ 下指定哈希目录里
  • 哈希值不能瞎写:它来自你本地 VSCode 桌面版的当前 commit ID,可在 VSCode 关于窗口或 code --version 第二行看到,例如 6c3e3dfa918054a21972e0b53830d1f11051134e
  • 路径结构必须是:~/.vscode-server/bin/<code>6c3e3dfa918054a21972e0b53830d1f11051134e/,里面要有 bin/code-server 和 server.js 等文件

怎么拿到和本地 VSCode 完全匹配的 vscode-server 包?

从官网下载的通用包不保证兼容——VSCode 桌面版每次更新,vscode-server 的 ABI、协议版本、甚至启动参数都可能变。离线部署必须“版本钉死”。

  • 最稳方式:在一台能联网、且安装了**完全相同 VSCode 版本**的机器上,打开命令面板(Ctrl+Shift+P),运行 Developer: Download Built-in Extensions —— 这会触发 VSCode 主动拉取一次服务端包,缓存在本地临时目录
  • Windows 缓存路径:%USERPROFILE%\AppData\Roaming\Code\Remote\dist\;macOS:~/Library/Application Support/Code/Remote/dist/;Linux:~/.config/Code/Remote/dist/
  • 找到以 commit ID 命名的 tar.gz 文件(如 6c3e3dfa918054a21972e0b53830d1f11051134e.tar.gz),用 scp 或 U 盘拷到目标服务器
  • 解压命令必须带 -C 指定父目录:tar -xzf 6c3e3dfa918054a21972e0b53830d1f11051134e.tar.gz -C ~/.vscode-server/bin/

目标机器缺 node 或 glibc 版本太低怎么办?

vscode-server 不是纯静态二进制,它依赖系统级 Node.js 运行时(虽然自带一份,但会 fallback 到系统 node)。离线环境常因基础依赖缺失直接报 cannot execute binary file 或 GLIBC_2.28 not found。

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
  • 先确认目标机器架构和系统版本:uname -m(x86_64 / aarch64)、cat /etc/os-release、ldd --version
  • VSCode 官方 vscode-server 包默认编译目标是 glibc ≥ 2.28(对应 Ubuntu 20.04+/CentOS 8+),老系统(如 CentOS 7)必须降级使用旧版 VSCode + 对应旧包
  • 如果系统没 node,不要单独装 Node.js —— vscode-server 自带 node 在 bin/ 子目录下,但需确保 ~/.vscode-server/bin/xxx/bin/ 在 $PATH 里,或修改 ~/.vscode-server/bin/xxx/server.sh 中的 NODE 路径指向它

连接时仍提示 Waiting for server log... 卡住?检查这三处

包放对了、Node 有了、权限也设了,还是连不上?问题往往出在 VSCode 客户端的“静默行为”上——它不会告诉你具体哪步失败,只等日志输出。

  • 手动启动服务端看报错:cd ~/.vscode-server/bin/6c3e3dfa918054a21972e0b53830d1f11051134e && ./bin/code-server --start-server --host=127.0.0.1 --port=0 --use-host-proxy --enable-remote-auto-shutdown --print-server-id --telemetry-level off
  • 检查 ~/.vscode-server 所有者是否为当前用户(不是 root!):chown -R $USER:$USER ~/.vscode-server
  • 确认 SSH 配置中没禁用 TTY:VSCode Remote-SSH 默认需要伪终端,~/.ssh/config 里该 Host 不能有 RequestTTY no 或 PermitTTY no(服务端 sshd_config 也不能关)

离线部署最难的从来不是拷文件,而是版本链路断在哪一环——本地 VSCode 版本、服务端包 commit、目标系统 glibc、SSH 终端能力,四者必须咬合。少对一环,就卡在“等待日志”里,还找不到错在哪。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end='\n', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.27

2760

5

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

2026.02.03

249

24

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

2023.06.14

3563

6

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

2023.10.30

795

4

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

2023.06.20

4216

8

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.28

1315

5

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.03

1698

5

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

2023.08.17

9763

11

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

2023.09.01

940

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程