EternalTerminal:断线重连远程终端
基于 SSH 认证、断线后自动重连的远程终端工具,网络切换或休眠都不会中断会话。
- 浏览
- 4
- 访问
- 0
- 下载
- 0
- 版本
- vet-v7.1.1
- 平台
- Windows、macOS、Linux
详细介绍
项目简介
Eternal Terminal(简称 ET)是一个远程 shell 工具:会话断线后会自动重连,不需要重新建立上下文。它用 SSH 完成握手和加密,所以使用前提是能免密 ssh user@hostname;加密后的连接走 TCP,etserver 默认监听 2022 端口。适合在笔记本休眠、Wi-Fi 切换、移动网络抖动时维持长时间的远程会话。
项目主页:https://mistertea.github.io/EternalTerminal/
主要功能
- 自动重连:客户端掉线、崩溃或机器重启后,远端会话仍在运行,可以重新接回。
- SSH 认证与加密:复用 OpenSSH 的认证方式和配置。
- 端口转发:
--tunnel "18000:8000, 18001-18003:8001-8003",也支持 OpenSSH 风格的-L。 - 跳板机:
--jumphost指定跳板机,--jport指定跳板机上的 et 端口。 - SSH agent 转发:
et --forward-ssh-agent或 SSH config 里的ForwardAgent yes;支持 OpenSSH 8.9+ 的 agent 会话绑定。 - 会话保存(macOS / Linux):凭据保存在
~/.et/sessions,支持--name、--list、--attach、--kill、--no-persist。 - SSH config 解析:支持用户级与系统级 SSH 配置;
--ssh-config指定只读取某个绝对路径的文件,--ssh-config none可完全禁用。 - Remote-SSH 传输层:可作为 VS Code、Cursor 的 Remote-SSH 扩展的传输通道,两端都需要较新的 ET。
- 附带终端复用器 HTM:
htm是前台客户端(支持 tmux control mode),htmd是对应用户的守护进程,由htm按需启动。
安装后提供的可执行文件:et(命令行客户端)、etserver(系统服务,默认 TCP 2022)、etterminal(服务端内部辅助程序,普通用户不直接调用)。
安装与使用
macOS 可用 Homebrew:
brew install et
Ubuntu 使用 PPA:
sudo add-apt-repository ppa:jgmath2000/et
sudo apt-get update
sudo apt-get install et
其他平台:Debian 有 deb 仓库,Fedora / CentOS 8 用 sudo dnf install et,FreeBSD 用 pkg install eternalterminal,openSUSE 用 zypper,NixOS 提供 flake 模块,也可从源码用 cmake 编译安装。
基本用法与 ssh 类似,用户名默认取当前用户,可用 -u 或 user@ 指定:
et hostname
et user@hostname:8000
命名会话与重新接回:
et --name work hostname
et --list
et --attach work
et --kill work
安装后可用 which et 检查客户端,用 systemctl status et 检查服务端(部分系统需 sudo systemctl enable --now et)。服务端配置在 /etc/et.cfg,例如修改监听端口。
注意事项
- 需要能 SSH 登录:ET 依赖 SSH 握手,请先确认
ssh user@hostname可用。 - 端口:服务端需要放行 TCP 2022(或你配置的端口);注意
-p是 sshd 端口,--port才是 etserver 端口。 - Windows:需在 WSL 中使用,按 Ubuntu 的步骤安装。
- 遥测:
et客户端默认开启遥测;etserver在配置为telemetry = true时开启。开启后会把 Error / Fatal 日志文本(含源文件和行号)发送到 Datadog,把 Fatal 日志和崩溃报告发送到 Sentry,并附带 ET 版本与一个按用户生成的随机 ID(保存在用户配置目录下的et/telemetry.ini)。关闭方式:et --telemetry=false、在/etc/et.cfg设telemetry = false、设置环境变量ET_NO_TELEMETRY=1,或编译时加cmake -DDISABLE_TELEMETRY=ON。 - 会话恢复限制:重新 attach 时不会恢复端口转发、agent 转发和跳板机设置;
~/.et/sessions中的凭据是明文保存、仅所有者可读的。
本作品整理自 GitHub 开源项目 MisterTea/EternalTerminal,原作者 @MisterTea,许可证 Apache-2.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- vet-v7.1.1当前版本
修复 SetEnv 值去引号的处理(含 -o SetEnv),避免引号残留导致 tmux 异常;修复 Linux 上客户端连上后立即断开时 etserver 崩溃的问题;Arch 包升级时重启 et.service。线路协议仍为版本 6,7.1.0 与 7.1.1 可互通。
- vet-v7.1.0
客户端短选项改为与 OpenSSH 一致(-c/-t/-p/-l/-x/-f/-N/-v/-e 含义变更,旧行为改用长选项),修复四个预认证与提权安全问题,加固 HTM 会话并支持 Windows,修复终端尺寸查询与卡死重连阻塞新连接等问题。
评论