- 配色与 GUI 同源(石墨底/青绿点缀),支持 NO_COLOR 与非 tty 自动降级纯文本 - 向导:对齐横幅、❯ 方向键选择菜单(↑↓/数字/回车,q 取消),彩色表单提示 - 隧道运行时实时面板:状态·运行时长·累计连接·滚动日志,原地刷新 - Ctrl+C 退出时面板干净收起;非交互终端自动退化为编号选择
76 lines
2.9 KiB
Markdown
76 lines
2.9 KiB
Markdown
# SSH 隧道管理器
|
||
|
||
跨平台 SSH 本地端口转发工具:Windows 图形界面,Linux/macOS 命令行。
|
||
|
||
## 一键安装
|
||
|
||
**Windows**(图形界面,自动装好依赖、建快捷方式并启动):
|
||
|
||
```powershell
|
||
powershell -c "irm https://gitea.xbay.cc/leefer/ssh-e2e/raw/branch/main/install.ps1 | iex"
|
||
```
|
||
|
||
**Linux / macOS**(命令行版,安装到 `~/ssh-e2e`,提供 `ssh-tunnel` 命令):
|
||
|
||
```bash
|
||
curl -fsSL https://gitea.xbay.cc/leefer/ssh-e2e/raw/branch/main/install.sh | bash
|
||
```
|
||
|
||
安装完成会**自动进入中文配置向导**:按提示输入 SSH 地址、密码、远程端口等
|
||
(直接回车采用方括号里的默认值),填完隧道立即建立,Ctrl+C 断开。
|
||
|
||
命令行界面支持真彩色(自动适配终端,`NO_COLOR` 关闭):方向键 `❯` 选择菜单、
|
||
隧道运行时的实时状态面板(连接状态 · 运行时长 · 累计连接 · 滚动日志)。
|
||
|
||
## 典型场景
|
||
|
||
远程主机上有个服务只监听它自己的 `127.0.0.1:3000`,公网访问不到。
|
||
建一条隧道后,在本机打开 `http://127.0.0.1:3000` 即可直接访问该服务。
|
||
|
||
## 命令行用法(Linux/macOS,Windows 亦可 `python cli.py`)
|
||
|
||
```bash
|
||
ssh-tunnel # 交互向导:选已有主机/隧道或新建,建好直接运行
|
||
ssh-tunnel start web # 直接启动某条已配置的隧道(前台,Ctrl+C 断开)
|
||
ssh-tunnel list # 查看全部
|
||
ssh-tunnel test 我的服务器 # 测试主机认证
|
||
ssh-tunnel remove tunnel web
|
||
ssh-tunnel --help # 完整参数(host add / tunnel add 等)
|
||
```
|
||
|
||
## 图形界面(Windows)
|
||
|
||
双击仓库里的 **`启动.bat`**,或用上面的一键安装命令。
|
||
|
||
1. **主机**:添加 SSH 主机(密码/私钥认证,可「测试连接」)。
|
||
2. **隧道**:选主机,填远程地址(一般 `127.0.0.1`)、远程端口、本地端口,点「启动」。
|
||
3. 本机访问 `127.0.0.1:本地端口` 即等于远程服务;点「最小化/关闭」驻留系统托盘,隧道后台保持。
|
||
|
||
## 数据与安全
|
||
|
||
配置文件位置:Windows `%APPDATA%\SshTunnelManager\`、Linux `~/ssh-e2e/.config/`、
|
||
macOS `~/ssh-e2e/Library/`。密码与私钥口令:Windows 经 DPAPI 加密(绑定系统用户);
|
||
Linux/macOS 以明文保存,但文件权限已收紧为仅本用户可读(600),与 `~/.ssh/` 私钥同级。
|
||
主机公钥记录在配置目录 `known_hosts`,主机密钥变更时拒绝连接。
|
||
|
||
## 开发
|
||
|
||
```
|
||
main.py GUI 入口(pywebview + WebView2,仅 Windows)
|
||
cli.py 命令行入口(跨平台)
|
||
engine.py 隧道引擎:paramiko 转发、保活、自动重连
|
||
storage.py 配置存储:JSON + 平台加密
|
||
ui/ 图形界面(HTML/CSS/JS)
|
||
install.sh / install.ps1 一键安装脚本
|
||
test_sshd.py / test_e2e.py 本地自测(见下)
|
||
```
|
||
|
||
自测:
|
||
|
||
```bash
|
||
.venv/Scripts/python test_sshd.py # 窗口1:本地测试 SSH 服务端
|
||
.venv/Scripts/python test_e2e.py # 窗口2:端到端隧道验证
|
||
.venv/Scripts/python cli.py list # CLI 冒烟
|
||
```
|
||
|