27a3b4c6a8e67c36e2fa36bfdf5f2d93b12478be
- 本地端口转发隧道管理(密码/私钥认证,自动重连,随应用启动) - 主机与隧道可视化配置,DPAPI 加密存储机密,known_hosts 校验 - 自定义无边框窗口,深色界面,托盘驻留(最小化/关闭到托盘) - 内置本地测试 SSH 服务端与端到端自测脚本
SSH 隧道管理器
Windows 桌面小工具,用于可视化管理 SSH 本地端口转发。
典型场景:远程主机上有个服务只监听它自己的 127.0.0.1:3000,公网访问不到。
用本工具建一条隧道后,在本机打开 http://127.0.0.1:3000 即可直接访问该服务。
运行
双击 启动.bat。首次运行会自动创建虚拟环境并安装依赖(pywebview、paramiko),
之后秒开。也可以手动:
python -m venv .venv
.venv\Scripts\python -m pip install pywebview paramiko
.venv\Scripts\python main.py
要求:Windows 10/11(自带 WebView2 运行时,如缺失请安装 Edge WebView2 Runtime)、Python 3.10+。
使用
- 主机:添加一台 SSH 主机(地址、端口、用户名;认证支持密码或私钥,可点「测试连接」验证)。
- 隧道:新建一条隧道,选择主机,填远程地址(一般
127.0.0.1)、远程端口和本地端口,点「启动」。 - 本机访问
127.0.0.1:本地端口即等于访问远程服务;卡片上的「打开」按钮可直接在浏览器打开。
其他:断线自动重连(间隔递增)、随应用启动、运行时长与累计连接数、每条隧道及全局日志。
点「最小化」或「关闭」会驻留到系统托盘(隧道在后台保持运行):左键托盘图标恢复窗口,
右键菜单可显示或退出;首次最小化会有气泡提示。
配置保存在 %APPDATA%\SshTunnelManager\config.json,密码与私钥口令经 Windows DPAPI
加密后落盘(绑定当前 Windows 用户,明文不落盘);主机公钥记录在同目录 known_hosts,
主机密钥变更时会拒绝连接。
文件结构
main.py 入口:pywebview 窗口与 JS API
engine.py 隧道引擎:paramiko 转发、保活、自动重连
storage.py 配置存储:JSON + DPAPI 加密
ui/ 前端界面(原生 WebView2 渲染)
test_sshd.py 本地测试用 SSH 服务端(自测)
test_e2e.py 端到端自测脚本(需先启动 test_sshd)
自测
:: 窗口 1
.venv\Scripts\python test_sshd.py
:: 窗口 2(会在本机 3210 起一个模拟"远程服务",经隧道 13000 访问)
.venv\Scripts\python test_e2e.py
Languages
Python
53.7%
JavaScript
23.7%
CSS
11.6%
HTML
4%
Shell
3.5%
Other
3.5%