TinyFish Tunneling(tinyfi.sh)是一种通过 SSH 隧道为本地运行的应用创建即时公网 HTTPS 地址的工具。其定位是让开发者在无需注册账号、也无需额外安装软件(仅需 SSH)的前提下,把本机端口临时暴露到互联网。
用途上,它适用于需要对外暴露本地应用、测试 Webhook 回调,或把本地服务临时分享给他人的场景。
使用前必须先做环境检查:运行 which ssh 判断 SSH 是否可用。如果输出提示未找到 SSH,应停止操作并先安装 OpenSSH。
快速开始使用 SSH 反向转发命令:ssh -o StrictHostKeyChecking=accept-new -R 80:localhost:<PORT> tinyfi.sh,其中 <PORT> 替换为应用实际监听的端口。命令执行后会打印一个形如 https://<random>.tinyfi.sh 的公网地址。命令中的 StrictHostKeyChecking=accept-new 表示首次连接时自动信任 tinyfi.sh 的主机密钥,后续连接若密钥变化则拒绝;如需更严格的验证,应在首次使用前手动确认服务器指纹。
若需要固定地址而非随机地址,可请求指定子域名:ssh -o StrictHostKeyChecking=accept-new -R myname:80:localhost:<PORT> tinyfi.sh,从而获得 https://myname.tinyfi.sh。
对于长时间运行的隧道,可加入保活间隔避免断连:ssh -o StrictHostKeyChecking=accept-new -o ServerAliveInterval=60 -R 80:localhost:<PORT> tinyfi.sh。
在代理或助手代为启动隧道时,资料给出的操作建议是:若用户未指定端口,应先询问要暴露哪个端口;在后台运行 SSH 命令以便继续其他工作;隧道建立后把公网 URL 回报给用户。只要 SSH 连接保持存活,隧道就会一直开启。
资料还列出了常见框架与工具的默认端口:Next.js / React / Express 为 3000,Vite 为 5173,Django 为 8000,Flask 为 5000,Go(net/http)为 8080,Ruby on Rails 为 3000,PHP 内置服务器为 8000。
限制方面,服务端设有速率与超时约束:每个 IP 每分钟 5 个 SSH 连接、每分钟 100 个 HTTP 请求、最多 50 个并发连接,以及 48 小时空闲超时。此外,资料特别警示该工具会把本地服务暴露到公网,不要对管理面板、调试端点或任何会泄露密钥与凭据的服务建立隧道。