OpenSource-Hub
S

sish

SHA-256
4.6k stars·开发工具·已提供 SHA-256 校验码,下载后可自行核对文件完整性

基于标准 SSH 的开源隧道工具,无需客户端,支持 HTTP(S)/TCP 转发和私有别名,可自托管替代 ngrok。

智能下载

下载 Download 版本

v2.22.1 · 12.8 MB

用标准 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命令以保持连接活跃,这是推荐的长期方案。

来源 Issue #353

标签

sshtunnelreverse-proxyngrok-alternativeself-hostednetworking

快速上手

1

下载安装包

点击上方按钮下载对应系统的安装包

2

安装软件

双击下载的安装程序,按提示完成安装

3

步骤1:用官方托管服务测试效果:ssh -R 80:localhost:8080 tuns.sh

4

步骤2:自托管,先创建目录并准备 SSL 证书和密钥

5

步骤3:用 Docker 运行容器,指定域名和端口配置

安装指引
  1. 步骤1:用官方托管服务测试效果:ssh -R 80:localhost:8080 tuns.sh
  2. 步骤2:自托管,先创建目录并准备 SSL 证书和密钥
  3. 步骤3:用 Docker 运行容器,指定域名和端口配置
文件完整性

已提供 SHA-256 校验码,下载后可自行核对文件完整性

该校验码提取自 GitHub 官方 Release 页面

SHA256 校验码

76a75d58ba98beaa663762d72683290d428ebc2216419c98508ad7cedf5e2275

该校验码提取自 GitHub Release 页面,下载后请自行核对文件完整性

本平台所有 SHA-256 校验码均提取自项目在 GitHub 官方 Release 页面发布的文件,未做任何修改。你可以通过 GitHub Releases 页面自行验证。

运维指引

卸载说明

如果是 Docker 部署,执行 `docker stop sish && docker rm sish` 并删除 ~/sish 目录。二进制部署则直接删除可执行文件和配置文件即可。

无额外依赖

下载后即可直接使用,无需安装其他运行环境

项目信息
开源协议BSD-3-Clause
最后更新2026-06-26 16:05:22
GitHub 仓库官方网站

遇到问题?查看下方 FAQ

1 FAQ

相似推荐