这个项目能做什么
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`:连接池大小
项目提供中文和英文文档,适合需要快速暴露本地服务的开发者和运维人员。
评论
0 评分人数达到10人后显示
登录后参与讨论。