这个项目能做什么

stab 是一个现代、简单、小巧的高性能 TCP 隧道工具,旨在轻松将本地端口暴露到远程服务器。它由 Rust 编写,提供命令行和配置文件两种使用方式,并支持嵌入其他程序。 主要特点包括: - 高性能 - 心跳检测 - 流量统计 - Web 管理页支持手动断开连接 - 同时暴露多个本地端口 - 断线自动重连(可配置) - 本机 IPC API:可被其他程序零配置拉起并动态下发配置 安装方式: - 通过 cargo 安装:`cargo install stab` - 从 GitHub Releases 下载预编译二进制 使用方式: 1. 在远程主机启动服务端:`stab server`,默认控制端口 5656,Web 管理端口 3400。可修改端口、限制数据端口范围、设置连接池大小。 2. 在本地建立隧道:`stab local -l 8000=server.com`,将本地端口映射到远程服务器,远程端口可自动分配或指定。 3. 支持通过配置文件(TOML)设置所有参数,命令行参数优先。 4. 支持共享密钥认证,防止滥用。 5. Web 管理页可设置密码保护。 嵌入其他程序: - 通过 `stab local --api` 启动,使用命名管道(Windows)或 Unix Domain Socket 提供 IPC API。 - 协议为长度前缀的 JSON 帧,支持 ping、get_status、set_config、add_link、remove_link、list_links、clear_links、shutdown 等方法。 - 宿主进程可动态添加/删除隧道、更新配置、获取状态。 配置文件示例: - 服务端 `server.toml`:设置模式、端口、密钥、日志、Web 端口、端口范围、连接池大小等。 - 本地 `local.toml`:设置模式、端口、密钥、日志、默认远程主机、重连策略、隧道列表等。 命令行参数一览: - `server` / `local`:运行模式 - `-f, --file`:配置文件路径 - `-c, --control-port`:控制端口 - `-s, --secret`:隧道密钥 - `--log`:日志等级 - `--log-path`:日志目录 - `-l, --link`:隧道映射 - `--api`:启用 IPC API - `--api-path`:IPC 路径 - `--api-token`:IPC 令牌 - `-w, --web-port`:Web 管理端口 - `-p, --port-range`:数据端口范围 - `--pool-size`:连接池大小 项目提供中文和英文文档,适合需要快速暴露本地服务的开发者和运维人员。