一句话:hostc 是一款本地开发隧道工具——安装 Node.js 后,一条 npx hostc@latest 3000 命令,就能给你的本地服务器生成一个永久公网 HTTPS 地址,热更新、WebSocket、断线重连全部原生支持。

昨天刷 X 看到 akazwz 发了条推文,说 hostc 2.0 发布了:

一条命令,给本地开发服务器一个公网 HTTPS 地址:npx hostc@latest 3000
· 热更新(HMR)直接能用
· 断网重连后链接不变
· 不用注册,没有警告页
· 免费开源,跑在 Cloudflare 上

我去 GitHub 看了看:akazwz/hostc,目前 589 个 Star,TypeScript 编写,2.0 版本刚推出不久,读了一遍 README,确实把痛点抓得很准。

hostc 解决了什么痛点

做前端开发的朋友大概率遇到过这个场景:在本地跑了一个 Next.js 或 Vite 项目,想发给手机上的同事看一眼,或者让 AI 助手看看你写好的页面——但localhost 只有本机能访问,内网穿透又太麻烦。

市面上类似的工具有 ngrok、Cloudflare Tunnel(cloudflared)、localtunnel 等,但 hostc 有几个明显差异:

  • 零配置——不用注册账号,不用绑域名,不用下载二进制,`npx` 一行命令直接跑。
  • 没有警告页——很多 tunnel 服务会给访客弹一个"此连接由 xxx 提供"的中间页,hostc 的访客看到的是你的真实应用,没有任何拦截。
  • 链接永久不变——断网、重启电脑、甚至 Cloudflare 后台重启,同一个 URL 都还能连,这是很多 tunnel 做不到的。
  • 纯免费——底层是 Cloudflare Workers + Durable Objects,开发者不掏一分钱。

怎么用

整个流程就两步。

第一步:启动你的开发服务器。比如:

1
2
npm run dev    # 启动 Vite / Next.js / 任何本地服务器
# 假设端口是 3000

第二步:开一个新终端,跑 hostc。

1
2
3
4
npx hostc@latest 3000

https://k7m2xq9pa4dn.hostc.app → http://localhost:3000
Anyone with this URL can reach your local server. Press Ctrl+C to stop.

把终端里输出的那个 https://xxx.hostc.app 发给任何人,他们在手机或电脑上打开就能看到你的本地应用。整个过程不需要你做任何配置。

还支持可选参数:

  • --qr —— 直接在终端打印二维码,手机扫一下就能打开。
  • --server <url> —— 指定隧道服务器地址(默认用官方 hosted 版本,也可以自部署)。

原理是什么

hostc 的架构其实很清晰:

  • 客户端(本地 CLI)通过 WebSocket 向远端隧道服务器建立一条长连接。
  • 服务端跑在 Cloudflare Workers 上,每个隧道对应一个 Durable Object 实例。
  • 访客请求到达 Worker → 转发到对应的 Durable Object → 走 WebSocket stream 送到本地应用。

关键点在于:你的电脑不需要暴露任何端口,只需要主动向外发出 WebSocket 连接(出站连接几乎不会被防火墙拦)。这也是为什么它不需要你配置路由器端口映射或 DDNS。

空闲的隧道会在服务端自动休眠,这也是它能免费的原因——没有活跃访客时不占资源。

适合什么场景

  • 给同事/客户演示——AI 写完的页面还没部署,先让他们看看效果。
  • Webhook 调试——Stripe、GitHub、Slack 的回调地址必须公网可达,hostc 一键搞定。
  • 真机调试——手机连 Wi-Fi 直接访问本机开发服务器,热更新照样生效。
  • 让 AI 看你的项目——把 hostc.dev/llms.txt 发给它,它就知道怎么运行 hostc 和读取地址。

和 cloudflare tunnel 有什么区别

如果你看过推文下面的评论,会发现有人提到 cloudflared——确实,两者都能做同样的事,但定位不同:

特性 hostc cloudflared
安装方式 npx 一行 需要下载二进制或 brew install
注册账号 不需要 需要 Cloudflare 账号 + DNS 验证
自定义域名 不支持(用 hostc.app 子域) 支持,需绑定自有域名
长连接持久性 断网重连 URL 不变 同样支持,但依赖本地 Agent 常驻
使用场景 快速临时分享、Demo 展示 长期稳定的内网服务暴露

总结:hostc 主打「零门槛、快上手」,适合临时分享和快速调试;cloudflared 更重、功能更全,适合正式生产环境的长期隧道。两者不冲突,可以按需选用。

自部署选项

如果你不想用官方 hosted 版本,或者想用自己的域名,hostc 也支持自部署:

  1. 把一个域名加到 Cloudflare(推荐 API 域名 + 隧道域名分开)。
  2. 设置一次 token 密钥:pnpm -F @hostc/server exec wrangler secret put TOKEN_SECRET --name hostc-tunnel
  3. 部署:API_DOMAIN=example.com TUNNEL_DOMAIN=example.app pnpm deploy:server
  4. 使用:npx hostc@latest 3000 --server https://example.com

自部署之后,隧道地址就变成你自己的域名,不再依赖 hostc.app。

值得试试吗

hostc 的定位非常清晰——「开发者的临时公网出口」。它没有花哨的功能,就是把你本机 3000 端口变成一个任何人都能访问的 HTTPS 链接,并且保证这个链接永远有效。

对于经常需要「把本地跑的东西给别人看一眼」的前端开发者来说,这个工具值得装一个。589 个 Star 说明市场认可度不差,2.0 版本刚推出不久的情况下,未来还会持续迭代。

hostc开源Apache-2.0

一条 npx 命令把 localhost 变成永久公网 HTTPS 地址,HMR、WebSocket、断线重连全支持,无需注册,跑在 Cloudflare Workers 上。

★ 589
GitHub Star
⌖ 59
Fork
Apache-2.0
开源协议
TypeScriptCloudflare WorkersWebSocketDurable Objects