Repository navigation
NexTerm v0.2.2(Rust 稳定版)
重发说明(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 证书):
- 双击应用,看到「无法验证开发者 / 无法检查是否包含恶意软件」→ 点完成
- 系统设置 → 隐私与安全性,下拉到「安全性」,点 「仍要打开」
- 之后正常双击即可
如果提示的是**「已损坏」**而不是「无法验证开发者」,那是早期版本的签名缺陷,
请改用最新版本;或用命令行修掉:xattr -dr com.apple.quarantine /Applications/NexTerm.app