环境
- ssh服务器
c
$ cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
- vscode 版本(windows)
c
VSCodeUserSetup-x64-1.138.0.exe
- remote-ssh 版本
c
0.102.0
// 升级版本后会遇到新的问题 ,可通过 https://blog.csdn.net/u011011827/article/details/166131846 解决
// 该方案下可以适配到 0.128.0 // 2026-9-20 14:45:37
遇到的问题: remote ssh 返回失败
- vscode log
c
> Server did not start successfully. Full server log at /home/builder/.vscode-server/.7debcd0e2acdea1c52de81bf9ee1620444407dda.log >>>
> /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node: /lib64/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node)
> /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node)
> /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node)
> /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node)
> /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node)
> /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node)
> /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node: /lib64/libc.so.6: version `GLIBC_2.27' not found (required by /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node)
> /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node)
> /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node)
> <<< End of server log
修复问题思路
- vscode官方给出的错误原因
- 解决问题的思路
c
在错误原因描述, 整体来说就是
给 node 程序 打补丁 , 即 "用 patchelf 工具 打补丁,补丁是GLIBC 高版本ABI"
修复问题过程
-
- 设置工作目录
c
/opt/vscode_patch/
-
- 获取GLIBC 高版本ABI
c
可以自己编译,但没必要
1.1
直接下载rpm,并解压 , 从 https://rpmfind.net/ 找到 glibc-2.28 和 libstdc++-8.5.0
2026-9-20 10:39:53 下载的是
https://rpmfind.net/linux/almalinux/8.10/BaseOS/x86_64/os/Packages/libstdc++-8.5.0-22.el8_10.x86_64.rpm
https://rpmfind.net/linux/almalinux/8.10/BaseOS/x86_64/os/Packages/glibc-2.28-251.el8_10.40.x86_64.rpm
1.2
rpm2cpio glibc*.rpm | cpio -idmv
rpm2cpio libstdc++*.rpm | cpio -idmv
-
- 核验 ABI版本
c
strings ./usr/lib64/libc.so.6 |grep ^GLIBC
strings ./usr/lib64/libstdc++.so.6 |grep ^GLIBCXX_
strings ./usr/lib64/libstdc++.so.6 |grep ^CXXABI_
-
- 打patch
c
3.1. 获取 patch 程序
从 https://github.com/NixOS/patchelf/releases 获取 patchelf-0.19.1-x86_64.tar.gz 并解压
3.2. 打patch
3.2.1
/opt/vscode_patch/bin/patchelf --set-rpath /opt/vscode_patch/usr/lib64 /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node
3.2.2
/opt/vscode_patch/bin/patchelf --set-interpreter /opt/vscode_patch/usr/lib64/ld-linux-x86-64.so.2 /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node
-
- 核验patch结果
c
$ ldd /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node
linux-vdso.so.1 => (0x00007ffd0cfba000)
libdl.so.2 => /opt/vscode_patch/usr/lib64/libdl.so.2 (0x00007fc159cb0000)
libstdc++.so.6 => /opt/vscode_patch/usr/lib64/libstdc++.so.6 (0x00007fc15991b000)
libm.so.6 => /opt/vscode_patch/usr/lib64/libm.so.6 (0x00007fc159599000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fc159383000)
libpthread.so.0 => /opt/vscode_patch/usr/lib64/libpthread.so.0 (0x00007fc159163000)
libc.so.6 => /opt/vscode_patch/usr/lib64/libc.so.6 (0x00007fc158d8d000)
/opt/vscode_patch/usr/lib64/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x00007fc159eb4000)
[builder@localhost ~]$ /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node
Welcome to Node.js v24.18.1.
Type ".help" for more information.
>
-
5 再次开启vscode,ssh 到服务器,会提示如下,don't show 即可

-
注意的过程
c
1. 获取的 glibc 和 libstdc++包 // 根据你的系统来选择
2. patchelf 的版本
3. patchelf 执行过程(目前看来,只能先执行 3.2.1 ,再执行3.2.2 . 顺序搞反或者合成一条命令都会导致node执行 segmentfault)
4. 做完之后 目录 /opt/vscode_patch 要保留
5. patch 只需要做一次就可以 .
6. patch 过程也可以交由 vscode , 这种场景下patch 过程每次都要执行,按照 "将patch过程交由 vscode 处理 ",配置过后 每次ssh都要执行
7. 建议,交由 vscode 处理, 因为 vscode-server 会更新
- 将patch过程交由 vscode 处理
c
打patch的过程可以交由 vscode 执行,只需要在 builder用户的登录shell的 rc 文件中增加 如下三行环境变量的设置,然后再次操作vscode 进行ssh 例如 : /home/builder/.bashrc
export VSCODE_SERVER_CUSTOM_GLIBC_LINKER=/opt/vscode_patch/usr/lib64/ld-linux-x86-64.so.2
export VSCODE_SERVER_CUSTOM_GLIBC_PATH=/opt/vscode_patch/usr/lib64
export VSCODE_SERVER_PATCHELF_PATH=/opt/vscode_patch/bin/patchelf