TunnelFlow 是面向云 GPU、远程开发服务器和内网服务的 Windows SSH 隧道管理器。它把 SSH 连接档案、双向端口映射、运行状态和常用入口集中在一个桌面界面中,同时保留主机指纹核验、凭据隔离和脱敏日志等安全边界。
- 连接档案:保存服务器、端口、用户名、图标、超时、心跳和重连策略,也可直接解析
ssh -p 22 user@host。 - 三种认证:支持密码、私钥和 Windows OpenSSH Agent;密码可选择保存到 Windows 凭据管理器。
- 双向映射:管理本地转发与远程转发,可在 SSH 会话运行时新增、编辑、启停规则。
- 实时可观测性:显示 SSH 状态、映射监听数、活动转发、实时吞吐和可筛选的脱敏事件。“活动转发”统计当前正在传输的 TCP 连接,不代表用户数。
- 主机身份保护:首次连接展示 SHA-256 指纹;未确认或指纹变化时不会静默连接。
- 个性化主题:浅色/深色模式、自定义背景、可见度、模糊、遮罩、面板透明度和文字对比度增强。
- 在线壁纸库:自动读取并缓存独立内容仓库的目录,缩略图渐进加载,展示内容分级和下载状态;断网时仍可使用缓存内容。
- 桌面集成:支持系统托盘、单实例、窗口状态恢复、关闭行为选择和可选 Windows 开机启动。
- 启动计划:可指定开机后自动连接的档案,设置延迟和等待网络;只有已保存凭据并确认主机指纹的档案才可加入。
- 克制的通知:可分别启用启动结果、意外断开、重连成功和指纹变化通知,不对普通 TCP 请求反复弹窗。
前往 GitHub Releases 下载 Windows x64 构建:
TunnelFlow_*_x64-setup.exe:NSIS 安装程序,适合大多数用户。TunnelFlow_*_x64_en-US.msi:MSI 安装包,适合统一部署。TunnelFlow_*_windows-x64-portable.zip:免安装便携版,解压后运行tunnelflow.exe。SHA256SUMS.txt:发布文件的 SHA-256 校验值。
当前发布物未进行商业代码签名,Windows SmartScreen 可能显示来源提示。请只从本仓库 Release 下载并校验哈希,不要关闭系统安全功能。
- 点击右上角“新建连接”。
- 粘贴 SSH 命令并解析,或手动填写主机、端口和用户名。
- 选择密码、私钥或 SSH Agent。若勾选“记住密码”,凭据会进入 Windows 凭据管理器,而不是项目配置文件。
- 点击“保存并连接”,核对服务器提供的密钥算法和 SHA-256 指纹。
- 在“端口映射”中添加本地或远程规则。建议默认监听
127.0.0.1,仅在明确需要局域网访问时使用0.0.0.0。
本地转发示例:把本机 127.0.0.1:6006 转到服务器的 127.0.0.1:6006,用于访问远端 TensorBoard。远程转发示例:把服务器端口转回本机服务,适合临时回调或内网开发。
点击标题栏调色盘图标或按 Alt+T 打开“外观与换肤”。“主题设置”负责整体显示参数;“在线壁纸”是主题系统的素材入口,进入后会先显示本地缓存,再在后台检查目录更新,不需要每次手动刷新。
在线壁纸来自独立的 TunnelFlow-Wallpapers 内容仓库。客户端只接受通过目录约束、SHA-256、尺寸和文件大小校验的资源。
点击标题栏调色盘旁的齿轮按钮打开“设置”。这里与换肤完全分离,集中管理窗口、后台、启动计划、通知和更新提示:
- 默认关闭 Windows 开机启动;启用后可选择隐藏到托盘、等待网络和 0–60 秒启动延迟。
- “启动计划”只会建立已选择档案及其启用的映射。密码认证必须勾选“记住密码”,所有档案都必须先由用户确认 SSH 主机指纹。
- 关闭主窗口可设为“每次询问”“最小化到托盘”或“退出并停止全部隧道”。托盘左键恢复窗口,菜单可执行启动计划、停止全部连接或安全退出。
- 更新页目前只检查/打开 GitHub Release。由于尚未配置独立的 Tauri 更新签名密钥,客户端不会自动下载或静默安装程序。
| 数据 | Windows 位置 / 处理方式 |
|---|---|
| 非敏感连接配置和主题参数 | %APPDATA%\com.tunnelflow.desktop\state.json |
| 当前自定义背景 | %APPDATA%\com.tunnelflow.desktop\backgrounds\ |
| 壁纸目录、缩略图和已下载图片 | %APPDATA%\com.tunnelflow.desktop\wallpapers\ |
| 勾选保存的密码 | Windows 凭据管理器 |
| 未保存密码 | 仅在当前进程内存中使用,退出后丢失 |
TunnelFlow 不会把密码写入配置文件、活动日志或命令行。复制活动日志前仍建议检查主机名、用户名、IP 和业务端口是否需要进一步脱敏。删除应用目录会清除本地配置和壁纸缓存,但不会自动删除 Windows 凭据管理器中的条目。
Vue 3 + TypeScript UI
│ Tauri IPC
▼
Rust / Tauri 2 后端
├─ russh:SSH 会话、本地/远程转发、流量事件
├─ keyring:Windows 凭据管理器
├─ reqwest + rustls:在线壁纸目录与资源下载
├─ Tauri 插件:单实例、系统托盘、自启、通知与窗口状态
└─ serde + 原子替换:本地状态持久化
源码布局:
src/ Vue 界面、状态、服务与前端测试
src-tauri/src/ Rust 命令、SSH 隧道和壁纸校验
src-tauri/examples/ 真实 SSH 烟测工具
docs/screenshots/ README 使用的生产界面截图
.github/workflows/ Windows CI 与手动发布工作流
要求:Windows 10/11 x64、Node.js 22、pnpm 11.19、Rust stable、Microsoft C++ Build Tools 和 WebView2 Runtime。
pnpm install --frozen-lockfile
pnpm tauri dev依赖由 pnpm-lock.yaml 和 src-tauri/Cargo.lock 锁定。提交前执行:
pnpm run check
pnpm run build
cargo fmt --manifest-path src-tauri/Cargo.toml -- --check
cargo test --manifest-path src-tauri/Cargo.toml --lib
cargo check --manifest-path src-tauri/Cargo.toml --examples构建便携 EXE:
pnpm run build:portable构建 NSIS 与 MSI:
pnpm run build:installer构建输出位于 src-tauri/target/release/,该目录不会纳入 Git。完整验证矩阵见 TEST_REPORT.md,版本变化见 CHANGELOG.md。
窗口显示 localhost 拒绝连接
不要直接执行 cargo build --release 后的旧产物。Tauri 必须先嵌入前端资源,请使用 pnpm run build:portable 或 pnpm run build:installer。
端口显示已监听,但页面无法打开
“已监听”只表示入口端口已建立,不代表 SSH 目标服务健康。展开“连接活动”查看目标连接错误,并确认远端地址、端口和服务状态。
重启后要求重新输入密码
这是未保存密码的预期行为。若需要自动重连,请在可信个人设备上勾选“记住密码”;共享设备建议保持关闭。
在线壁纸没有更新
客户端会先使用本地缓存并后台更新。确认网络可访问 GitHub Pages 后,可在在线壁纸页点击刷新;已下载壁纸不受短时断网影响。
当前最新版本为 v0.2.0,优先支持 Windows x64。macOS、Linux、自动更新和代码签名尚未纳入本次发布。
TunnelFlow 源代码采用 MIT License,版权归 woniu101 所有。你可以在保留版权与许可声明的前提下使用、复制、修改和分发本软件。安全问题请阅读 SECURITY.md。



