最近开发完 Mole-go,想给它做个网站用来展示和下载。但我这个后端糙汉子,样式真搞不定,求助 AI 调了半天还是差点意思。最头疼的是,手机端调试得一遍遍输 IP,给朋友演示也得发一串 IP 端口,太不专业了!于是我一顿折腾,搞出了这套方案……
为了解决这些痛点,我摸索出了一套“黄金组合”:Dufs + Mole-go + FRP + Caddy。这套方案打通了从本地到公网域名的全链路,实现了自动 HTTPS、域名访问以及极致的访问体验。
第一步:构建本地内容基石(Dufs)
一切的起点是本地文件服务。我选择使用 Dufs 作为静态服务器。它极其轻量,支持上传、搜索、打包下载甚至 WebDAV,是我演示 Web 应用或分发安装包的首选。
通过简单的命令,我在本地 5000 端口启动了服务。虽然此时它还被“困”在局域网内,但它为后续的展示提供了稳固的基础。
第二步:突破局域网束缚(FRP 与 Mole-go)
为了让公网流量能精准触达内网,我采用了经典的 FRP 方案,但在客户端层面,我使用了自己开发的 Mole-go。
服务端 (FRP Server):部署在具备公网 IP 的云服务器上,充当流量中转站。这个服务器配置可以很低,网站服务都在本地电脑,如果本地有数据库,也非常方便调试。
客户端 (Mole-go):这是我为 FRP 打造的桌面管理客户端。它封装了 frpc 核心,不仅提供了直观的 UI,还通过系统托盘设计彻底解决了“关闭窗口即断连”的痛点。
使用 Mole-go,我可以将本地 5000 端口通过加密隧道安全地映射到云端。它出色的资源管理和连接稳定性,确保了演示过程中即便网络波动,链接依然稳固如初。
第三步:优雅的网关入口(Caddy)
即便流量已到达公网,我也不希望朋友们通过 http://IP:端口 这种生硬的方式访问。我追求的是“域名+HTTPS”的专业感,这不仅是为了美观,更是为了开发环境需求,下次开发公众号等必须 HTTPS 环境时可以拿来就直接使用。
我选择了 Caddy 担任“守门人”。Caddy 的魅力在于其近乎零配置的 自动 HTTPS 功能。看中了它的简单方便,非常符合我的场景。在 Caddyfile 中,我只需写下:
example.com {
reverse_proxy localhost:7000 # 指向 FRP 映射出的本地端口
}
仅需这一行配置,Caddy 就会自动搞定 SSL 证书的申请与续签。当访问者输入域名时,映入眼帘的是受信任的绿色小锁头,所有的复杂端口逻辑都被完美隐藏。
第四步:最终的演示时刻
配置生效后,我在 5G 网络下打开手机,输入域名——秒开!画面清晰地展示了 Dufs 托管的网站内容。通过 Caddy 的高效转发与 Mole-go 稳定的隧道,整个过程丝滑顺畅。我再也不用频繁地将代码打包上传到生产服务器,只需在本地修改,远端朋友就能实时刷新看到效果。
这种方案不仅节省了部署的时间成本,更赋予了演示过程一种“极致的专业感”。当网站最终打磨完成,朋友点头称赞时,我才会将其正式部署到生产环境并切换为 Nginx 代理。
总结
Dufs + Mole-go + FRP + Caddy 的组合,将本地开发的灵活性与公网访问的便捷性结合到了极致。对于需要频繁进行跨端调试或远程演示的开发者来说,这不仅是一套技术方案,更是一次效率的革命。
现在,我的 Mole-go 工具网站已经通过这套链路完美运行,随时准备迎接第一批用户的访问!
网站地址:https://lab.91demo.top
使用Tailwind开发,看起来不错!
它虽然很简单,但它才刚刚开始!