跳到正文
发现
命令行工具开发者工具

EternalTerminal:断线重连远程终端

基于 SSH 认证、断线后自动重连的远程终端工具,网络切换或休眠都不会中断会话。

admin
发布于 2026-10-28 · 更新于 2026-10-30
浏览
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 整理,以原仓库为准。

更新记录

  1. vet-v7.1.1当前版本

    修复 SetEnv 值去引号的处理(含 -o SetEnv),避免引号残留导致 tmux 异常;修复 Linux 上客户端连上后立即断开时 etserver 崩溃的问题;Arch 包升级时重启 et.service。线路协议仍为版本 6,7.1.0 与 7.1.1 可互通。

  2. vet-v7.1.0

    客户端短选项改为与 OpenSSH 一致(-c/-t/-p/-l/-x/-f/-N/-v/-e 含义变更,旧行为改用长选项),修复四个预认证与提权安全问题,加固 HTM 会话并支持 Windows,修复终端尺寸查询与卡死重连阻塞新连接等问题。

评论