EternalTerminal多平台部署实战:从Linux到macOS的完整方案

【免费下载链接】EternalTerminal Re-Connectable secure remote shell 【免费下载链接】EternalTerminal 项目地址: https://gitcode.com/gh_mirrors/et/EternalTerminal

EternalTerminal(简称ET)是一款支持自动重连且不中断会话的远程shell工具,完美解决了传统SSH连接易断开的痛点。本文将详细介绍如何在Linux和macOS系统上部署EternalTerminal,让你轻松实现稳定持久的远程终端连接。

🚀 什么是EternalTerminal?

EternalTerminal是一个创新的远程shell解决方案,它通过SSH进行握手和加密,提供类似SSH的使用体验,但增加了会话持久化和自动重连功能。其核心优势在于:

  • 会话持久化:即使网络中断,终端会话也不会终止
  • 自动重连:网络恢复后自动连接到之前的会话
  • 端口转发:支持灵活的端口转发配置
  • 多平台支持:兼容Linux、macOS及WSL环境

EternalTerminal连接架构

EternalTerminal连接架构

上图展示了EternalTerminal的基本连接架构,客户端通过SSH启动服务器端的etterminal进程,然后通过默认2022端口与etserver建立持久连接。

💻 系统要求

  • Linux系统:Ubuntu 18.04+、Debian 10+、CentOS 7+、Fedora 29+等
  • macOS系统:macOS 10.14+(Mojave及以上版本)
  • 网络要求:客户端与服务器之间能够通过SSH通信,且服务器开放2022端口(可自定义)

📥 安装方法

macOS平台安装

Homebrew安装(推荐)

macOS用户可以通过Homebrew快速安装:

brew install MisterTea/et/et

安装完成后,需要配置开机启动服务:

Apple Silicon (M1/M2) Macs:

sudo sed 's:/usr/local/bin/etserver:/opt/homebrew/bin/etserver:g' ../init/launchd/homebrew.mxcl.et.plist | sudo tee /Library/LaunchDaemons/homebrew.mxcl.et.plist
sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.et.plist

Intel x86 Macs:

sudo cp ../init/launchd/homebrew.mxcl.et.plist /Library/LaunchDaemons/homebrew.mxcl.et.plist
sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.et.plist
MacPorts安装

也可以通过MacPorts安装:

sudo port install et

Linux平台安装

Ubuntu/Debian系统

Ubuntu用户可以使用PPA仓库:

sudo add-apt-repository ppa:jgmath2000/et
sudo apt-get update
sudo apt-get install et

Debian用户需添加官方deb仓库:

echo "deb [signed-by=/etc/apt/keyrings/et.gpg] https://mistertea.github.io/debian-et/debian-source/ $(grep VERSION_CODENAME /etc/os-release | cut -d= -f2) main" | sudo tee -a /etc/apt/sources.list.d/et.list
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -sSL https://github.com/MisterTea/debian-et/raw/master/et.gpg | sudo tee /etc/apt/keyrings/et.gpg >/dev/null
sudo apt update
sudo apt install et
CentOS/Fedora系统

CentOS 8+ / Fedora:

sudo dnf install epel-release
sudo dnf install et

CentOS 7需要从源码构建,详见下文"从源码构建"部分。

openSUSE系统
zypper ar -f obs://network
zypper ref
zypper in EternalTerminal
FreeBSD系统
pkg install eternalterminal

🔧 从源码构建

如果你的系统没有预编译包,或者需要最新开发版本,可以从源码构建:

1. 克隆仓库

git clone --recurse-submodules --depth 1 https://gitcode.com/gh_mirrors/et/EternalTerminal
cd EternalTerminal

2. 安装依赖

Debian/Ubuntu:

sudo apt install libsodium-dev autoconf libtool libprotobuf-dev protobuf-compiler libutempter-dev libcurl4-openssl-dev build-essential ninja-build cmake git zip pkg-config

Fedora/RHEL:

sudo dnf install boost-devel libsodium-devel protobuf-devel protobuf-compiler cmake gflags-devel libcurl-devel

macOS:

brew install autoconf automake libtool

3. 编译安装

mkdir build
cd build
cmake ../
make -j$(nproc)
sudo make install

⚙️ 配置与启动

配置文件

EternalTerminal的主配置文件位于/etc/et.cfg,你可以修改以下常用配置:

  • port: 服务器监听端口(默认2022)
  • log_level: 日志级别(INFO, WARNING, ERROR等)
  • max_sessions: 最大会话数

启动服务

systemd系统(大多数Linux发行版):

sudo systemctl enable --now et

验证服务状态:

systemctl status et

🚀 使用EternalTerminal

基本连接

EternalTerminal的使用方式与SSH类似:

# 基本连接(默认端口2022,当前用户名)
et hostname

# 指定用户和端口
et user@hostname:8000

使用跳转主机

EternalTerminal支持通过跳转主机(Jumphost)连接目标服务器,特别适合需要多层跳转的网络环境:

EternalTerminal跳转主机架构

# 使用跳转主机
et hostname --jumphost jump_hostname

# 指定跳转主机端口
et hostname:8888 --jumphost jump_hostname --jport 9999

端口转发

EternalTerminal支持端口转发功能,可以将远程端口映射到本地:

EternalTerminal端口转发

# 端口转发(单个端口)
et hostname -t "18000:8000"

# 端口范围转发
et hostname -t "18001-18003:8001-8003"

结合SSH配置文件

EternalTerminal支持解析SSH配置文件(~/.ssh/config/etc/ssh/ssh_config),可以直接使用配置好的主机别名:

# 假设~/.ssh/config中配置了名为"dev"的主机
et dev

📝 常见问题解决

问题1:服务无法启动

检查日志文件:/var/log/et/etserver.log,或使用以下命令查看状态:

sudo journalctl -u et

问题2:连接被拒绝

  • 确保etserver服务已启动
  • 检查服务器防火墙是否开放2022端口(或自定义端口)
  • 验证SSH是否能正常连接到服务器

问题3:macOS安装时出现csignal错误

参考解决方案:

# 针对Homebrew安装时的csignal错误
brew install openssl
export CFLAGS="-I$(brew --prefix openssl)/include"
export LDFLAGS="-L$(brew --prefix openssl)/lib"
brew install MisterTea/et/et

📚 相关资源

通过本文的指南,你已经掌握了在Linux和macOS系统上部署EternalTerminal的完整流程。无论是日常远程管理还是开发工作,EternalTerminal都能为你提供稳定、持久的远程终端体验,告别网络中断导致的工作中断问题!

【免费下载链接】EternalTerminal Re-Connectable secure remote shell 【免费下载链接】EternalTerminal 项目地址: https://gitcode.com/gh_mirrors/et/EternalTerminal

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐