跳转至内容

xterminal 更新日志

软件更新动态

49 主题 1.0k 帖子
  • v5.6.3 | 2026-04-10

    已固定
    10
    0 赞同
    10 帖子
    1k 浏览
    Y

    Ubuntu 20.04.6 LTS 有 XTerminal GLIBC。
    新建ssh的时候 会有报错。

    image.png

    image.png

    XTerminal GLIBC 兼容性修复文档
    问题描述
    在 Ubuntu 20.04(GLIBC 2.31)上运行 XTerminal 5.6.0 时,出现以下错误:

    /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found
    (required by /opt/XTerminal/resources/app.asar.unpacked/node_modules/better-sqlite3/build/Release/better_sqlite3.node)
    根因:XTerminal 自带的 better_sqlite3.node 预编译二进制文件是在 GLIBC 2.33+ 的系统上编译的,与 Ubuntu 20.04 的 GLIBC 2.31 不兼容。

    环境信息
    项目 版本
    操作系统 Ubuntu 20.04 (Linux 5.15.0-139-generic)
    GLIBC 2.31
    XTerminal 5.6.0
    Electron 40.6.0 (Chrome 144, Node ABI 143)
    better-sqlite3 12.6.2
    系统 Node.js v18.20.8 (nvm)
    修复方案:本地重新编译 better-sqlite3
    由于预编译的二进制文件不兼容,在本地使用 g++-11 重新编译 better_sqlite3.node,使其链接到本地 GLIBC 2.31。

    操作步骤

    安装 g++-11 编译器
    better-sqlite3 12.6.2 + Electron 40 的 V8 头文件需要完整的 C++20 支持(包括 <compare> 和 <source_location> 头文件),至少需要 GCC 11。

    为什么不能用 GCC 9 或 GCC 10?

    GCC 9:不支持 -std=c++20 标志(只有 -std=c++2a),且缺少 <compare> 头文件
    GCC 10:支持 -std=c++20,有 <compare>,但缺少 <source_location> 头文件
    GCC 11+:完整支持 C++20 所有特性 ✅
    Ubuntu 20.04 默认仓库不含 g++-11,需要从 Ubuntu Toolchain PPA 安装:

    步骤 1:添加 PPA(需要网络访问 Launchpad)

    sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test

    步骤 2:更新包列表

    sudo apt-get update

    步骤 3:安装 g++-11

    sudo apt-get install -y g++-11
    注意:如果 add-apt-repository 命令卡住(常见于公司内网环境,因为无法访问 ppa.launchpad.net), 可以 Ctrl+C 取消后直接尝试 sudo apt-get install -y g++-11。 原因:add-apt-repository 在超时前可能已经将 PPA 源写入了 /etc/apt/sources.list.d/ 并部分更新了包列表。

    如果仍然找不到包,可以手动添加源:

    echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal main" | sudo tee /etc/apt/sources.list.d/ubuntu-toolchain-r-test.list
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1E9377A2BA9EF27F
    sudo apt-get update
    sudo apt-get install -y g++-11
    验证安装:

    g++-11 --version

    输出: g++-11 (Ubuntu 11.5.0-...) 11.5.0

    创建临时编译目录
    mkdir -p /tmp/rebuild-better-sqlite3
    cd /tmp/rebuild-better-sqlite3
    npm init -y

    安装 better-sqlite3 源码
    cd /tmp/rebuild-better-sqlite3
    npm install better-sqlite3@12.6.2 --registry=https://registry.npmmirror.com
    注意:这一步使用系统 Node.js 编译,会有 engine 版本警告,可以忽略。

    为 Electron 40.6.0 重新编译
    关键步骤:使用 node-gyp 指定 Electron 的头文件来编译,确保 ABI 匹配。

    cd /tmp/rebuild-better-sqlite3/node_modules/better-sqlite3

    CXX=g++-11 CC=gcc-11 npx node-gyp rebuild
    --release
    --target=40.6.0
    --arch=x64
    --dist-url=https://electronjs.org/headers
    编译参数说明:

    CXX=g++-11 CC=gcc-11:指定使用 GCC 11 编译器
    --target=40.6.0:指定 Electron 版本,用于下载对应的 Node.js 头文件
    --arch=x64:目标架构
    --dist-url=https://electronjs.org/headers:Electron 头文件下载地址
    编译成功标志:输出末尾显示 gyp info ok。

    验证编译产物
    检查新编译的文件不依赖高版本 GLIBC:

    objdump -T /tmp/rebuild-better-sqlite3/node_modules/better-sqlite3/build/Release/better_sqlite3.node
    | grep GLIBC | awk '{print $5}' | sort -u
    预期结果:最高 GLIBC 版本应 <= 2.31(实测最高为 GLIBC_2.29)。

    备份并替换原文件 备份原文件

    sudo cp /opt/XTerminal/resources/app.asar.unpacked/node_modules/better-sqlite3/build/Release/better_sqlite3.node
    /opt/XTerminal/resources/app.asar.unpacked/node_modules/better-sqlite3/build/Release/better_sqlite3.node.bak

    替换为新编译的文件

    sudo cp /tmp/rebuild-better-sqlite3/node_modules/better-sqlite3/build/Release/better_sqlite3.node
    /opt/XTerminal/resources/app.asar.unpacked/node_modules/better-sqlite3/build/Release/better_sqlite3.node
    7. 重启 XTerminal
    killall xterminal
    sleep 1
    /opt/XTerminal/xterminal &
    GLIBC 依赖对比
    原始文件 重新编译后
    GLIBC 最高版本 2.34 ❌ 2.29 ✅
    GLIBCXX 最高版本 3.4.29 3.4.29
    文件大小 2,140,552 bytes 2,143,536 bytes
    回退方法
    如果替换后出现问题,可以恢复原始文件:

    sudo cp /opt/XTerminal/resources/app.asar.unpacked/node_modules/better-sqlite3/build/Release/better_sqlite3.node.bak
    /opt/XTerminal/resources/app.asar.unpacked/node_modules/better-sqlite3/build/Release/better_sqlite3.node
    注意事项
    XTerminal 更新后需重复操作:XTerminal 更新时会覆盖 better_sqlite3.node,需要重新执行步骤 3-7。更新后 Electron 版本和 better-sqlite3 版本可能会变,需要重新获取:

    获取新的 Electron 版本

    ELECTRON_RUN_AS_NODE=1 /opt/XTerminal/xterminal -e "console.log('Electron:', process.versions.electron)"

    获取新的 better-sqlite3 版本 前提:已全局安装 asar 工具(npm install -g @electron/asar)

    ASAR_PATH=$(npm root -g)/@electron/asar
    node -e "const asar = require('$ASAR_PATH'); const buf = asar.extractFile('/opt/XTerminal/resources/app.asar', 'node_modules/better-sqlite3/package.json'); console.log('better-sqlite3:', JSON.parse(buf).version);"
    获取到的版本号对应使用位置:
    Electron 版本(如 40.6.0)→ 用于步骤 4 的 --target=40.6.0 参数,指定编译目标的 Node ABI
    better-sqlite3 版本(如 12.6.2)→ 用于步骤 3 的 npm install better-sqlite3@12.6.2,安装匹配的源码
    GCC 版本要求:
    GCC 9:不支持 -std=c++20 标志
    GCC 10:缺少 <source_location> 头文件
    GCC 11+:满足所有 C++20 要求 ✅
    编译缓存:Electron 头文件缓存在 ~/.cache/node-gyp/40.6.0/,首次编译需下载
    备份文件位置:/opt/XTerminal/resources/app.asar.unpacked/node_modules/better-sqlite3/build/Release/better_sqlite3.node.bak
    其他可选方案(未采用)
    方案 优缺点
    升级到 Ubuntu 22.04+ 彻底解决,但需要全面升级系统
    降级 better-sqlite3 可能与 XTerminal 不兼容
    Docker 容器运行 过于重量级
    升级 GLIBC 风险极高,可能导致系统不稳定
    文档生成日期:2026-04-07 操作环境:Ubuntu 20.04 LTS, XTerminal 5.6.0, Electron 40.6.0

  • v5.2.25 | 2026-02-26 (实验通道) + QQ群直接反馈问题

    18
    3 赞同
    18 帖子
    3k 浏览
    Z

    image.png文件目录树connection lost 怎样重新连接呢

  • v4.3.7 | 2025-12-4

    22
    0 赞同
    22 帖子
    6k 浏览
    C

    最近咋不更新了

  • v4.3.6 | 2025-12-3

    4
    0 赞同
    4 帖子
    885 浏览
    稳弟

    @faqwang 在 v4.3.6 | 2025-12-3 (实验通道) 中说:

    @稳弟 在 v4.3.6 | 2025-12-3 (实验通道) 中说:

    Ctrl+W 关闭连接快捷键确认对话框

    这个确认对话框可以关掉吗?

    设置 系统设置

  • v4.3.5 | 2025-12-2+ 稳弟QQ群

    9
    0 赞同
    9 帖子
    1k 浏览
    L

    @faqwang 在 v4.3.5 | 2025-12-2+ 稳弟QQ群 中说:

    @网很卡还会断 在 v4.3.5 | 2025-12-2+ 稳弟QQ群 中说:

    @稳弟 好的,原来是这样。我感觉原来那样鲁棒性更强,虽然可能有的时候卡死但一般没啥问题。现在这个断网,连接不稳定,我隔一段时间不看,资源面板就没了,我就要回来手动刷新,体验感不太好。可以把3次搞多几次,或者每次尝试间隔时间长一些试试。

    鲁棒性太出戏了 😂

    被粗鲁地对待依然很棒棒的特性😚

  • v4.2.16 | 2025-11-30

    7
    0 赞同
    7 帖子
    995 浏览
    Y

    密钥登陆堡垒机出现弹窗交互认证信息,点击确定就可以继续登陆,但是以前是没有的

    8cd25851-5aeb-4aa7-9fdb-889a03a90012-image.png

    4219a8b4-c258-4a22-9b01-6f03db0028bb-image.png

  • 2 赞同
    14 帖子
    2k 浏览
    S

    @Sky @稳弟 是的,命令提示,不能实时到输入的字符就开始检索吗? 要打完一个单词才提示,感觉这个不专业也不好用,为了防止频繁调用搜索方法,做个输入防抖不行吗?还有就是,在命令行输入已经维护的命令的时候,如果设置有变量,不能自动弹出一个框,让补全命令后,点击确定,自动替换命令行已经输入的命令执行码?

  • v4.2.15 | 2025-11-27

    9
    0 赞同
    9 帖子
    1k 浏览
    yahahhhY

    @稳弟 能不能像图片里这样,在命令窗口界面加个连接中心的快捷方式,使连接中心能常驻在屏幕左侧呢?
    这样的话在有需要批量打开多个连接的情况下就不需要每开启一个点回连接中心界面再开启一个,依此循环每开一个都要进行好几次点击。
    2025_11_29_18_29_47.jpg

  • v4.2.14 | 2025-11-26

    6
    0 赞同
    6 帖子
    690 浏览
    V

    厉害了

  • v4.2.11 | 2025-11-25

    9
    0 赞同
    9 帖子
    868 浏览
    Y

    @稳弟 我发现了 谢谢👍

  • v4.2.10 | 2025-11-24

    11
    0 赞同
    11 帖子
    1k 浏览
    L

    2FA验证仍然无效。交互认证无限循环,对于使用Google验证器的服务器来说,Xterminal处于瘫痪状态。Xshell、Termius等国内外先进软件都完美支持2FA。与行业内标杆软件相比Xterminal仍有较大差距,已经逐渐落后于国家网络安全部署的主流

  • v4.2.9 | 2025-11-22

    12
    0 赞同
    12 帖子
    1k 浏览
    T

    @稳弟 我发现只要当前界面只要用过一次鼠标滚轮就会出现这个问题,如果一直不用就不会出现

  • v4.2.8 | 2025-11-20

    14
    1 赞同
    14 帖子
    1k 浏览
    稳弟

    @yebai 在 v4.2.8 | 2025-11-20 中说:

    快捷输入框,怎么更新完就没了
    ![image.png](/assets/uploads/files/1763787882687-a0996e4b-f38a-470d-87fb-fcc70a57dace-image.png

    设置 ssh设置 布局 ,开启一下

  • v4.2.7 | 2025-11-19

    已移动
    15
    0 赞同
    15 帖子
    2k 浏览
    稳弟

    可以

  • v4.2.6 | 2025-11-18

    8
    0 赞同
    8 帖子
    961 浏览
    A

    ubuntu下连接windows10 可以,server的都不行
    这个很重要阿,服务器才是日常用到的,麻烦早点修复一下

  • v4.2.5 | 2025-11-17

    34
    0 赞同
    34 帖子
    4k 浏览
    V

    @luke 牛逼了,xterminal 最近更新频繁到像做梦一样

  • 迟到的 【4.0】 全新发布,百余项更新修复🔥🔥🔥

    45
    1 赞同
    45 帖子
    7k 浏览
    1

    @稳弟 在 迟到的 【4.0】 全新发布,百余项更新修复🔥🔥🔥 中说:

    @tututu 在 迟到的 【4.0】 全新发布,百余项更新修复🔥🔥🔥 中说:

    @blzcat 在 迟到的 【4.0】 全新发布,百余项更新修复🔥🔥🔥 中说:

    为啥要限制ssh同时连接数量了

    +1 现在只能连接2个ssh了

    老的注册用户会自动开通这个权限
    原来如此

  • v3.22.3 | 2025-07-15

    49
    1 赞同
    49 帖子
    15k 浏览
    B

    狗日的连基本的多开 都要收费 去国外的网站找找 有这个版本的

  • v3.22.2 | 2025-07-14

    11
    0 赞同
    11 帖子
    2k 浏览
    L

    @wk1029 好像可以关掉
    4d521c32-496e-4070-9b05-19e9c6506f14-image.png

  • v3.22.1 | 2025-07-05

    1
    0 赞同
    1 帖子
    417 浏览
    尚无回复