Skip to content

NexTerm v0.2.2(Rust 稳定版)

Choose a tag to compare

@github-actions github-actions released this 08 Oct 12:34
· 0 commits to f36b951b1e299c4c4464161ecf6723cf9a804062 since this release

重发说明(2026-10-08)

本版安装包已重新构建,修掉桌面端「把资产卡片拖进分组、松手没反应」这个缺陷。

它的表象非常具有误导性:拖拽过程完全正常(光标有反馈、悬停时分组会亮起),
松手之后也没有任何报错,只是那一下没有生效 —— 后端一条记录都没写。
根因是桌面外壳默认开启的「原生拖放接管」把网页自己的拖放事件整个吃掉了,
两处窗口配置都要关掉它才生效(此前只关了一处,macOS 上等于没关)。

只影响桌面客户端:两个 Linux 服务端包与懒猫微服专版都不经过这一层,无需更换。
已经下载过本版的,桌面客户端建议重新下载。
(macOS 上已实测复现并验收;Windows 侧同一项配置一并关掉,属预防性对齐。)

本次更新

v0.2.2 —— 「一次管一批,一栏干一摊活」。

v0.2.1 把工作台搬到了服务端,让浏览器退回成显示器。这一版解决的是规模:
以前每加一台机器、每跑一条命令都要重复一遍点击;现在可以先框选一批资产再动手,
也可以把主区左右切成两栏、同时盯着两台机器。

自 v0.2.1 以来共 17 个提交、66 个文件(+4911 / −198 行)。

本版是 NexTerm Rust 实现线的稳定版。

新增

一、资产:一次选中一批,一次动作对一批

资产右键菜单的「复制」有六个层次,按需取用 —— 并且都不会偷偷降级成「少给你一段」:

菜单项 内容
IP:端口 10.0.0.8:22
用户名@IP:端口 root@10.0.0.8:22
ssh 命令 可直接粘贴执行的 ssh 一行
SSH 配置块 可直接追加进 ~/.ssh/config 的一段
连接信息(含密码) 导出格式行 + 明文密码,需先解锁凭据库
导出格式行(不含密码) 同格式,不含密码,无需解锁

含密码那一项走的是既有的 vault_reveal_credential:点下去那一刻才取明文、
同一凭据只取一次、明文不进前端状态;凭据库处于锁定时会先走解锁流程才开始复制。

  • 批量导入:攻防场景一次贴一堆机器,不用再一台一台点「新建」。
    输入格式与「导出格式行」闭环 —— 在另一台机器上导出的行可以直接粘回来。
  • 批量执行命令:新增后端命令 batch_exec,多资产并发执行同一条命令,
    各台的输出分别带回来。

导出/导入的行格式(值里有空白才加双引号,password 一律不加引号):

host=10.0.0.8 port=22 user=root authType=password password=... title=web-01 note=

二、分屏:主区可以左右切了

以前只有上下分屏,轴写死在 SplitStack 里。现在两种都能切,
而且已分屏时再点分屏 = 原地转轴(不会先合并再重开)。

标签右键菜单扩展成:

动作 说明
在右侧分屏 / 在下方分屏 把当前标签挪进新开的一栏
关闭标签 单个
关闭其他标签 / 关闭右侧标签 / 关闭本栏全部 批量

三、凭据视图:入口挪出来,默认给 JSON

  • 左栏顶部新增一张「凭据视图」卡片。原先的入口埋在底部,凭据一多就被列表顶出视野。
  • 点开默认 JSON。这张视图的真实用途是被别处消费(贴工单、喂脚本、拷到另一台机器),
    JSON 能直接解析而 ssh config 文本不行;要看文本在工具栏里一键切。
  • 新增资产多选导出到剪贴板。

修复

  • 重连成功后终端被遮罩挡死:后端其实已经连上、敲字也有反应,界面却一直挂着
    「终端进程已结束」。根因是 exited 标记只有置 true 的地方、没有置回 false 的路径 ——
    重连重建了 PTY 却没清标记。WinRM 分支上同样的滞留也一并修了。
  • 重连后文件树报「找不到会话」:真因在前端 —— 重连建了新会话,却只更新了终端标签的
    sessionId,工作区的 sessionId 与已经打开的文件还在按旧 id 查。现在统一重定向整个工作区
    及其下所有标签。
  • 浏览器版凭据库的「锁定」是个死锁:服务端的库同样是 master 模式,但密码是部署方注入的
    随机值
    (懒猫上是平台 secret、自建是 --master-key),用户根本不知道 ⇒ 点「立即锁定」之后
    没有任何能解开的入口,只能重启服务端。已在浏览器形态下撤掉锁定/解锁入口,改为直接说明恢复方式。
  • 小屏 / 平板下工具条塌成竖排单字:中文串的「最小内容宽度」只有一个汉字 ——
    被压缩时不会像英文那样出省略号,而是逐字换行;与此同时按钮不参与压缩,
    于是压缩量全落在文字上:文字塌成一列,按钮反而右溢被裁。
    已把全部 12 个面板扫过一遍并修掉 3 处(凭据视图工具条、终端工具条、设置·快捷键卡片)。

变化

  • 懒猫微服:全平台放开。此前声明了 unsupported_platforms: [ios, android],
    在安卓 / iOS 上点应用图标会被平台直接挡下(提示「您的应用不支持当前平台」)。
    现在这个字段整个不再声明。
    ⚠️ 放开 ≠ 移动端交互已经优化 —— 触屏下软键盘遮挡终端、没有 Ctrl 与右键菜单、分屏挤成一团,这些还在。
    ⚠️ 这一项要重新出包才生效,改本地文件不影响已经装上的应用。
  • 服务端二进制小了一圈:release profile 改用 lto = "fat" + codegen-units = 1。
    同源对照实测体积 −33.8%(17.1 MB → 11.3 MB,darwin/arm64),而终端吞吐基本不变
    (77.1 → 76.8 MB/s)。更激进的 opt-level = "z" 还能再省 2.2 MB,但吞吐会掉到
    50.4 MB/s(−34%)—— 没有采用,终端吞吐是本产品的核心指标。
    本版 Linux x86-64 服务端二进制为 12.6 MB。
  • 命令数 139 → 140(新增 batch_exec)。桌面端与服务端仍共用同一份命令清单。
  • CI 补上服务端质量门:此前 clippy --all-features 会打开 desktop 特性,
    挂在 cfg(not(feature = "desktop")) 上的服务端代码在 CI 里从未被编译过。
    现在有独立 job 编译并测试它。

已知限制

  • 微服重启 / 应用升级 ⇒ 会话与后台任务全丢。会话池是内存结构,刻意不落库 ——
    要抗重启得用 tmux / screen 承托,是另一个量级的工作量。界面文案也写了这一条。
  • 浏览器版完整形态不适合直接暴露公网:它自身没有登录鉴权(懒猫上那道登录门是平台给的,
    裸 Linux 上没有)。公网场景请用 onlyServer,或自己套一层反向代理鉴权。
  • 同步仍然是手动的:没有自动同步,也没有后台定时同步。
  • 两个 Linux 包要求 glibc >= 2.39(它们在 Ubuntu 24.04 的 CI runner 上构建;实测
    libc.so.6 的版本需求最高到 GLIBC_2.39):Ubuntu 22.04 / Debian 12 上直接跑会报
    version 'GLIBC_2.39' not found,而那个报错看不出是发行版太旧。
    请用 Ubuntu 24.04+ / Debian 13+。
    (懒猫微服专版的二进制在 debian bookworm 容器里交叉编译,实测只要求 glibc >= 2.34,
    与上面两个包不是同一份产物。)
  • 懒猫微服专版:本 Release 附 cloud.lazycat.app.nexterm-v0.2.2.lpk,可手动安装;
    商店上架状态以商店为准。
  • 升级到本版不涉及数据库结构变更,装上新版即可,原有数据直接沿用。

下载

桌面客户端

平台 文件
Windows 10/11 x64 *_x64-setup.exe(NSIS 安装器,双击即装)
macOS(Apple Silicon) *_aarch64.dmg(拖入「应用程序」)

服务端(浏览器访问)

用途 文件
LinuxServer —— 自建机器 / 内网 VPS,带完整浏览器界面 NexTerm-*-linux-amd64.tar.gz
onlyServer —— 公网只做资产同步中转,无界面、命令行管理 NexTerm-onlyServer-*-linux-amd64.tar.gz

两者是同一个二进制,只差一个 --sync-only —— 分成两个包是为了让你拿到手就是对的形态。
解压后有二进制、前端产物、systemd 单元与一份 README.md / .env.example。
部署步骤见 README 的「部署服务端」。

⛔ 完整版服务端自身没有登录鉴权,不建议直接暴露公网;公网请用 onlyServer。

懒猫微服

在微服的应用中心里安装。本 Release 同时也附了一份可手动安装的 .lpk ——
它出不了这条流水线(构建要连私有镜像仓库,凭证只在微服侧),是维护者本机出的。

macOS 首次打开会被拦一次(预期行为,不是文件损坏)

安装包是 ad-hoc 签名、未公证的(没有 Apple Developer 证书):

  1. 双击应用,看到「无法验证开发者 / 无法检查是否包含恶意软件」→ 点完成
  2. 系统设置 → 隐私与安全性,下拉到「安全性」,点 「仍要打开」
  3. 之后正常双击即可

如果提示的是**「已损坏」**而不是「无法验证开发者」,那是早期版本的签名缺陷,
请改用最新版本;或用命令行修掉:xattr -dr com.apple.quarantine /Applications/NexTerm.app