sish
SHA-256基于标准 SSH 的开源隧道工具,无需客户端,支持 HTTP(S)/TCP 转发和私有别名,可自托管替代 ngrok。
用标准 SSH 命令就能公开本地服务的隧道工具,自己搭服务器。
核心功能
- 无需安装客户端,直接用系统自带的 SSH 连接
- 支持 HTTP/HTTPS/WebSocket/TCP 隧道
- 私有 TCP 别名,只有通过 SSH 认证才能访问
- SNI 代理:根据域名把 TLS 流量转发到不同后端
- 可选的负载均衡模式
避坑指南
- •自托管需要公网 IP 和域名,以及 80/443 端口(或自行配置端口)。2. HTTP 隧道默认使用随机子域名,如果想用固定子域名需在 SSH 命令中指定(如 -R myapp:80:...)。3. 如果使用私有 TCP 别名,所有客户端需要通过 SSH 跳板访问,注意密钥管理。4. 默认不支持 UDP 转发,只做 TCP 层。
适用场景
- 快速将本地开发的 Web 应用通过 HTTPS 分享给同事
- 暴露内网 TCP 服务(如数据库)到固定公网端口
- 创建只有自己团队能访问的私有隧道别名
- 自建 ngrok 服务,无限制、无广告、无流量费
详细介绍
sish 是一个基于 SSH 的开源隧道工具,无需安装任何客户端,直接用标准 SSH 命令就能把本地服务暴露到公网。它支持 HTTP(S)、WebSocket(S)、TCP 转发,还能创建私有 TCP 别名,通过 SSH 认证限制访问。支持 SNI 路由、负载均衡,适合生产环境自托管。比 ngrok 更自由,比 serveo 更可控。
常见问题与排障 (1)
故障排除如何防止sish在60秒后关闭空闲的WebSocket连接?
Sish对WebSocket连接强制实施了空闲连接超时(默认60秒)。如果您的应用程序发送了实际数据,但sish未能将其识别为非空闲状态,连接将被关闭。解决方案:(1)使用--idle-connection=false完全禁用超时。(2)设置更大的超时时间(例如--idle-connection-timeout=1h)。(3)在WebSocket上实现客户端心跳或ping命令以保持连接活跃,这是推荐的长期方案。
标签
快速上手
安装软件
双击下载的安装程序,按提示完成安装
步骤1:用官方托管服务测试效果:ssh -R 80:localhost:8080 tuns.sh
步骤2:自托管,先创建目录并准备 SSL 证书和密钥
步骤3:用 Docker 运行容器,指定域名和端口配置
- 步骤1:用官方托管服务测试效果:ssh -R 80:localhost:8080 tuns.sh
- 步骤2:自托管,先创建目录并准备 SSL 证书和密钥
- 步骤3:用 Docker 运行容器,指定域名和端口配置
已提供 SHA-256 校验码,下载后可自行核对文件完整性
该校验码提取自 GitHub 官方 Release 页面
SHA256 校验码
76a75d58ba98beaa663762d72683290d428ebc2216419c98508ad7cedf5e2275该校验码提取自 GitHub Release 页面,下载后请自行核对文件完整性
本平台所有 SHA-256 校验码均提取自项目在 GitHub 官方 Release 页面发布的文件,未做任何修改。你可以通过 GitHub Releases 页面自行验证。
开源透明
查看 GitHub 源码卸载说明
如果是 Docker 部署,执行 `docker stop sish && docker rm sish` 并删除 ~/sish 目录。二进制部署则直接删除可执行文件和配置文件即可。
无额外依赖
下载后即可直接使用,无需安装其他运行环境
遇到问题?查看下方 FAQ
1 FAQ