跳到主要内容
赞助推荐 搬瓦工怎么选:三网直连 CN2 GIA-E
前沿哨所

只用 SSH 和 Nginx 搭建自托管 HTTP 隧道,一条命令替代 ngrok

4 分钟阅读阅读()
赞助推荐 团队协作里的 AI 办公工作台

开发者在向他人展示阶段性成果时,常遇到预览服务只运行在本地 localhost 的情况,需要将内网服务临时暴露给外部。现有方案中,ngrok、Cloudflare Quick Tunnels 依赖商业服务,frp、localtunnel 需要专用客户端,sish 则依赖特定 SSH 服务器。工程师 Vincent Bernat 发文介绍一种仅用 OpenSSH 和 nginx 搭建自托管 HTTP 隧道的方法:通过 ssh -R 命令建立反向隧道,将远程端口设为 0 由服务器自动分配空闲端口;在 nginx 中用正则表达式匹配 p端口号.ssh.luffy.cx 形式的泛域名,将请求代理到对应本地端口;再配合 DNS 泛解析记录和 Let’s Encrypt 通配符证书实现 HTTPS 访问。由于内核分配的端口号熵仅约 14.785 比特,安全性不足,作者引入 ngx_http_secure_link_module 模块,将基于密钥、端口和过期时间生成的 MD5 哈希放入 URL 用户名字段,实现带时效的访问控制,并针对哈希错误、链接过期分别返回 401、410 状态码,同时支持 WebSocket 代理。针对隧道端口号难以自动获取的问题,作者编写辅助脚本,通过查找 sshd-session 进程的监听端口自动生成带令牌的可分享 URL。整个方案仅依赖服务器上已在运行的 OpenSSH 和 nginx,一条短命令即可获得自托管隧道链接,完整脚本与 NixOS 配置均已开源。

事件分析

这篇文章的技术亮点在于对既有组件的深度挖掘:SSH 反向隧道的动态端口分配、nginx 泛域名正则捕获与 secure_link 模块的轻量鉴权组合,全程未引入任何新依赖,体现了 Unix 传统的’小工具组合’工程哲学。从产业角度看,ngrok、Cloudflare Tunnel 等商业隧道服务便利性强,但存在流量经第三方中转、隐私顾虑和免费额度限制等问题;对于企业内网演示、隐私敏感数据共享等场景,自托管方案具备合规与成本优势。文中对端口熵不足、MD5 强度偏弱、端口复用风险的坦诚讨论,也展示了安全工程中’够用即可’的权衡思维。此类内容在 Hacker News 获得关注,预计将催生更多开箱即用的衍生脚本与 NixOS 模块封装,进一步降低自托管门槛。

核心观点:SSH 与 Nginx 两个成熟组件的巧妙组合即可替代商业隧道服务,工程极简主义与自托管文化正在开发者社区回潮。

赞助推荐 一人公司 · 创业装备库
赞助推荐 一人公司 · 创业装备库

原文链接:Hacker News

赞助推荐 一键部署 AI 大模型
赞助推荐 一键部署 AI 大模型
赞(0)
未经允许不得转载:80aj » 只用 SSH 和 Nginx 搭建自托管 HTTP 隧道,一条命令替代 ngrok
赞助推荐 低成本上手 Claude Code 的中转选择
赞助推荐 低成本上手 Claude Code 的中转选择
赞助推荐 一键部署 AI 大模型
赞助推荐 一键部署 AI 大模型