00:00:00在理想的世界中,分享 localhost 应该很容易,但不知为何它却变成了一件
00:00:05麻烦事。
00:00:06你打开 ngrok,触发限制,得到一个随机 URL,原本只需 10 秒就能搞定的事情
00:00:11却把一切都搞砸了。
00:00:12或者更糟的是,你需要与某个人分享一些内容,但你不想将其
00:00:16公开。
00:00:17这就是 zrock。
00:00:18它是 ngrok 的开源替代品,基于 OpenZiti 构建并内置零信任架构,现在越来越多的
00:00:24开发者正在转向它,因为它解决了隧道技术中最糟糕的部分。
00:00:33那么,什么是 zrock?
00:00:34简单来说,它让你能公开或私密地分享本地应用、文件,甚至 TCP 和 UDP 服务,
00:00:40而无需开启端口、动你的路由器,也不需要公网 IP。
00:00:45一切都是端到端加密的,所以它的理念是你可以在不暴露多余内容的前提下,
00:00:50只暴露你真正需要的部分。
00:00:52它是免费的,支持自托管,由于它构建在零信任网格之上,除非你愿意,
00:00:58否则你的流量不会接触公网。
00:01:01而且它也更加丝滑,这也是我喜欢它的原因。
00:01:03比如自定义域名、更好的性能,以及全新的 UI。
00:01:07但如果速度不快,这些都不重要,所以让我演示给你看。
00:01:10如果你喜欢能加速工作流的开源工具和编程技巧,请务必订阅
00:01:15Better Stack 频道。
00:01:16我们经常会发布新视频。
00:01:18好了,环境已经清理,我有一个简单的 Next.js 应用运行在 localhost。
00:01:23没什么复杂的,就是基础的默认页面。
00:01:26你可能觉得这需要几个步骤,对吧?
00:01:30端口、配置,可能还有一些设置,但请看这个。
00:01:34首先,我确保我的 zrock 环境已经启用。
00:01:37通过 zrock enable 进行一次性设置。
00:01:40然后,我可以在这里运行一条命令。
00:01:44真的就是这样。
00:01:45没有配置文件,没有额外的设置,瞬间你就能得到一个公网 HTTPS URL。
00:01:51我可以在这里打开它,没错,它就能用了。
00:01:55应用已经在互联网上实时运行了。
00:01:57没有端口转发。
00:01:58没有防火墙变更。
00:02:00到这一步它是公开的,但这也是容易出问题的地方。
00:02:05所以我们停止它。
00:02:06Ctrl+C。现在让我们来操作大多数开发者真正想要的版本。
00:02:10zrock share private localhost,同样的应用,同样的机器,但现在行为完全不同。
00:02:17我们得到的不是公网 URL,而是一个令牌(token),这是核心区别,
00:02:23因为现在的访问权限并没有直接开放。
00:02:25而是通过使用这个令牌来授予。
00:02:28所以任何我信任的人都可以使用我给他们的令牌运行 zrock access private,
00:02:34只有在那之后他们才能访问。
00:02:36没有机器人扫描你的端点,没有随机流量撞击你的应用,完全没有这些。
00:02:42只有受控的访问。
00:02:44所以你不是在暴露你的应用,而是根据你的意愿有选择地允许访问,
00:02:49这就是这两者之间的巨大区别,而且它不仅适用于应用。
00:02:53同样的理念也适用于文件和文件夹。
00:02:56我可以使用 backend mode drive 将整个目录作为可浏览的驱动器分享。
00:03:02这不仅仅是隧道技术,这是受控的分享。
00:03:04这就是 zrock 真正带给我们的东西。
00:03:06那么,为什么这一切都很重要?
00:03:08因为大多数隧道工具都会强迫你做出权衡。
00:03:12ngrok 很精致,但免费层级限制很多。
00:03:15Cloudflare 隧道很棒,但伴随着复杂的设置和额外步骤。
00:03:19Tailscale 很好,但如果你只想快速分享,可能会觉得大材小用。
00:03:24所以你最终要在速度、隐私和控制之间做选择,而这正是 zrock 解决的问题。
00:03:29无需防火墙设置,太棒了。
00:03:32没有 NAT 问题,很好。
00:03:35私密分享是真的私密,这正是我们想要的。
00:03:38支持 UDP,适用于游戏服务器、VOIP、物联网,还有内置的文件分享。
00:03:44这是日常开发工作。
00:03:46Webhook 测试,对吧?
00:03:48所有这些事情我们都可以很好地利用 zrock 来完成。
00:03:52现在快速对比一下 zrock 和 ngrok。
00:03:54ngrok 感觉像是一个精致的商业产品,因为它确实是。
00:03:58zrock 感觉像是一个你真正拥有的工具。
00:04:00这是主要区别。
00:04:02ngrok 是闭源的,zrock 是开源的。
00:04:05它是可自托管的。
00:04:06如果你在乎控制权和隐私,这一点非常重要。
00:04:10然后是私密分享。
00:04:12在 ngrok 中,它更像是一个插件。
00:04:15它不是集成的。
00:04:16而在 zrock 中,它是所有功能核心理念的一部分。
00:04:19协议支持也很重要。
00:04:22ngrok 主要关注 HTTP 和 TCP。
00:04:26zrock 支持这两者的同时也支持 UDP。
00:04:29公平地说,ngrok 仍然拥有请求重放和检查功能。
00:04:35zrock 没有。
00:04:36而这一点确实挺重要。
00:04:37zrock 很好。
00:04:38但它并不完美。
00:04:39人们喜欢它是因为它感觉很简单。
00:04:41隐私优先。
00:04:43这意义重大。
00:04:44如果你自托管它,你就能完全控制一切。
00:04:47但它依然存在权衡,就像任何开源工具一样。
00:04:50如果你想深入了解,会有一定的学习曲线,尤其是在自托管方面。
00:04:55它没有像 ngrok 那样内置的请求检查。
00:04:58根据你的设置,你可能会注意到一点延迟。
00:05:01但即便有这些缺点,对于大多数开发者来说,它依然是更好的选择。
00:05:05那么,zrock 值得吗?
00:05:06这就是我们要问的问题。
00:05:08如果你的痛点是快速分享,那么是的,它绝对值得。
00:05:12尤其是当我们不必放弃控制权或隐私时。
00:05:15zrock 解决了这个问题。
00:05:16如果你喜欢这类开源编码工具和技巧,请务必订阅
00:05:20Better Stack 频道。
00:05:21我们下个视频再见。