加密初创公司与风险投资

零成本搭建自托管HTTPS隧道:用Go、Caddy与Cloudflare实现300行代码的本地服务外网访问

加密初创公司与风险投资
Show HN: Self-Hosted HTTPS Tunnel in 300 LoC with Go, Caddy, and Cloudflare

探索如何利用Go语言编写的轻量级隧道服务,结合Caddy的自动TLS证书管理和Cloudflare的DNS解析,实现无需付费、无需复杂配置的本地服务安全暴露,助力开发者高效远程调试与分享体验。

在当今快速发展的互联网时代,开发者越来越需要一种简便、安全的方式将本地服务暴露到公网上,方便远程调试、分享演示以及接受第三方的Webhook请求。传统的解决方案如Ngrok虽普及,但免费计划的时间限制和付费门槛让许多开发者望而却步,Cloudflare Tunnel虽然免费且稳定,却是闭源产品,配置繁琐且具备一定的学习曲线。面对这些痛点,近期有开发者用不到300行的Go代码,结合Caddy服务器和Cloudflare DNS,实现了一款完全自托管的HTTPS隧道服务,让本地应用可以通过公共HTTPS地址访问,实现零成本、无厂商锁定的远程访问解决方案。 该项目诞生于一个非常朴实的需求——作者的开发环境主要运行在Oracle云免费虚拟机上,日常通过SSH、Neovim和tmux进行开发运维。想要快速、安全地暴露本地服务给朋友和第三方,尝试过市面主流的隧道工具后,发现各有不足。Ngrok免费版每两小时断开会话,付费版价格不菲且依赖厂商;Cloudflare Tunnel设置复杂且非开源;其他自托管方案或资源消耗大,或缺少自动HTTPS支持。

鉴于以上挑战,作者决定打造一款轻量、易部署且支持野卡HTTPS证书的解决方案。 该隧道的核心架构基于一台云端虚拟机部署的Go服务器,用户通过WebSocket连接服务器的/tunnel端点,服务器为每个连接分配一个随机生成的8位子域名,比如ab12cd34.tunnel.example.com。每个浏览器发起的HTTP请求都会对应为一个yamux复用的流,通过WebSocket通道传递回本地所在的客户端。利用Caddy Web服务器结合Cloudflare的DNS-01挑战,自动为每个子域发放野卡TLS证书,实现所有子域的HTTPS认证,无需人工干预。 WebSocket桥接yamux技术是该方案中的一大亮点。yamux是一个支持多路复用的连接库,能够在单个TCP连接上拆分多个独立流。

作者为yamux设计了专属的WebSocket适配器,将WebSocket连接包装成符合net.Conn接口的形式,使yamux能够无缝在WebSocket之上运行。这种设计避开了传统HTTP代理中重组请求行、处理分块编码的复杂性,直接劫持HTTP底层连接字节流,极大提高了响应效率和稳定性。值得一提的是,WebSocket本身更容易穿透防火墙和NAT层,对于一些被严格限制网络访问的环境尤为适用。 在搭建方面,用户需要准备一个域名并注册Cloudflare账户管理DNS。通过创建通配符A记录,指向云端虚拟机的公网IP地址,配合具备DNS权限的Cloudflare API令牌,实现自动证书颁发。Caddy服务器的配置文件Caddyfile中通过环境变量传入API令牌和域名,确保安全和灵活。

由于Caddy默认不包含Cloudflare DNS插件,需使用xcaddy工具定制构建支持该插件的Caddy二进制文件。整个过程编译简单,执行make build即可同时生成客户端和服务器端二进制文件。 启动服务端后,开发者可以在本地启动任意应用(如Django、Node.js等),通过客户端向服务器发起WebSocket连接,应用即可通过服务器分配的公共域名被互联网用户访问。无论是分享代码演示、接收Webhook调用,还是协作调试,均省去了复杂网络配置和第三方托管依赖。安全方面,该方案支持在Caddy中配置基本认证限制公开访问权限,Cloudflare API令牌也可细化权限减少安全风险。未来拓展方向包括集成更加完善的身份验证机制,引入gRPC传输协议提升数据交互效率,以及使用Prometheus监控实现流量洞察。

这款开源项目体现了小巧、高效和安全的自托管理念,吸引众多技术爱好者和开发者关注。与传统商业隧道服务相比,拥有成本低廉、使用灵活及完全控制权的优势。无论是创业团队、小规模开发者,还是对隐私和安全有较高要求的技术人员,都能从中受益。作为一种创新的网络访问模式,它为本地服务的远程访问提供了极具竞争力的替代方案。 发挥Go语言高性能和跨平台的强大能力,配合Caddy自动证书管理与Cloudflare成熟的DNS API,实现了完整闭环的自动化部署体验。从零开始搭建一个稳定且支持HTTPS的隧道系统,在300行代码内完成,既体现了开发者的工程创新精神,也为社区提供了宝贵的技术借鉴。

开发者无需担心使用期限,亦不被第三方服务折磨,能够真正拥有属于自己的公开访问域名。 综上所述,利用这一技术组合,开发者能够可靠地实现本地HTTP服务的安全公网上线,为远程协作、测试以及生产环境的调试带来极大便利。随着工具的不断完善和社区的反馈优化,这套方案有望成为业界标杆,引导更多人实现自托管和零成本运营的梦想。无论是技术爱好者还是企业用户,该项目都提供了极具吸引力的实用价值和发展潜力,值得深入探索和运用。

加密货币交易所的自动交易 以最优惠的价格买卖您的加密货币 Privatejetfinder.com

下一步
Show HN: Automatically pause Spotify after N tracks
2025年05月24号 11点57分45秒 通过Pauseify自动暂停Spotify播放,实现专注力管理的新方式

了解Pauseify这款Chrome扩展如何帮助用户在Spotify网页播放器中自动暂停播放,提高工作与学习时的专注度,实现音乐与效率的完美平衡。探索如何使用Pauseify调控听歌次数,防止音乐分散注意力,助力高效产出。

Qwen2.5-Omni is an end-to-end multimodal model
2025年05月24号 11点58分38秒 全面解析Qwen2.5-Omni:引领多模态人工智能新时代的旗舰模型

Qwen2.5-Omni是一款由阿里巴巴云端Qwen团队开发的端到端多模态模型,具备卓越的文本、图像、音频和视频处理能力,支持实时语音合成与多模态理解,广泛应用于智能语音交互、视听内容分析等领域。本文深入探讨其架构设计、关键优势及使用场景,助力读者全面掌握这一前沿技术的核心价值。

Eric Barone Talks Stardew Valley and Haunted Chocolatier [video]
2025年05月24号 11点59分43秒 埃里克·巴隆谈《星露谷物语》与《闹鬼巧克力师》的创作故事和未来展望

本文深入探讨了独立游戏开发者埃里克·巴隆关于其经典作品《星露谷物语》以及新作《闹鬼巧克力师》的最新访谈内容,剖析游戏开发背后的创意灵感与未来规划。

Anatomy of a 'zombie' volcano: Investigating the cause of unrest inside Uturuncu
2025年05月24号 12点00分42秒 揭秘玻利维亚“僵尸”火山乌图伦库的复苏之谜与地质奥秘

深入探讨玻利维亚“僵尸”火山乌图伦库的内部结构及其持续活动的原因,借助地震学、物理模型和岩石成分分析发现这座已沉寂数十万年的火山为何依然表现出活跃迹象,揭示其地质活动背后的秘密并评估火山潜在风险。

Coinbase Rolls Out Morpho-Powered Bitcoin-Backed Loans Up to $1 Million for US Users Excluding New York
2025年05月24号 12点01分39秒 Coinbase推出Morpho支持的比特币抵押贷款,助力美国用户轻松借款高达100万美元

Coinbase携手Morpho推出创新的比特币抵押贷款服务,覆盖美国大部分地区(纽约除外),用户可即时借贷高达100万美元美元美元稳定币USDC,实现持币增值与流动性兼得。

Coinbase Global, Inc. (COIN): Among Billionaire Michael Platt’s Stock Picks with Huge Upside Potential
2025年05月24号 12点03分14秒 迈克尔·普拉特看好的Coinbase全球公司:揭示其巨大上涨潜力

本文深入探讨了亿万富翁迈克尔·普拉特对Coinbase全球公司(NASDAQ: COIN)的投资视角及其背后的巨大增长潜力,分析了公司发展现状、行业背景及未来趋势,为投资者提供了全面且实用的参考。

Lineage says tariffs hit Q1 revenue, announces $1B deal with Tyson Foods
2025年05月24号 12点04分47秒 关税影响Lineage第一季度收入,宣布与泰森食品达成十亿美元战略合作

Lineage公司在公布第一季度财报时指出关税政策带来的不确定性对其收入产生了短期影响,同时宣布与全球知名食品巨头泰森食品达成价值十亿美元的战略收购协议,标志着其在冷链仓储领域迈出重要一步。本文详细解析此次财报表现背后的市场环境及未来发展战略。