跳到主要内容
项目档案命令行工具

akazwz/hostc CLI 工具:安装、命令与使用场景

akazwz/hostc:hostc 是一个基于 Cloudflare Workers 的零配置隧道工具,可一键将本地 HTTP/WebSocket 服务安全、快速地暴露本页整理它解决什么问题、适用场景、安装方式和使用方法。

391TypeScriptStar 于 2026年4月17日2026年9月18日 更新

AI 总结

hostc 是一个基于 Cloudflare Workers 的零配置隧道工具,可一键将本地 HTTP/WebSocket 服务安全、快速地暴露为公网 HTTPS URL,无需复杂网络配置。

中文项目介绍

hostc 是一个现代、轻量且零配置的工具,旨在 instantly expose 本地 HTTP 和 WebSocket 服务到公共互联网。它完全构建在 Cloudflare Workers 和 Durable Objects 之上,利用 Cloudflare 的全球边缘网络提供低延迟的网络连接。 用户仅需执行一条命令,即可获得一个公共的 HTTPS URL,该 URL 将流量直接路由到本地服务。隧道通过 WebSocket 控制连接建立,支持 HTTP 请求转发和 WebSocket 升级代理,并具备自动会话刷新和断线重连能力,确保连接稳定性。 项目采用 Monorepo 架构,由 pnpm 管理,主要包含三个部分:Node.js 命令行客户端(apps/cli)、Cloudflare Worker 服务端(apps/workers)以及共享协议定义包(packages/tunnel-protocol)。Worker 部署在 Cloudflare 边缘节点,使用 Durable Objects 管理隧道会话,实现全球分布式路由。 hostc 适用于需要快速分享本地开发环境的场景,如团队协作、客户演示、临时 API 暴露等。同时,它支持自托管至个人 Cloudflare 账户,满足对稳定性和可控性有更高要求的长期使用需求。

详细信息与使用说明

1. 项目定位与用途

hostc 是一个零配置的隧道工具,核心定位是将本地服务快速、安全地暴露到公网。它基于 Cloudflare Workers 边缘网络构建,用户无需任何网络配置,只需运行一个命令,即可获得一个公共 HTTPS URL,该 URL 将公网流量转发到本地运行的 HTTP 或 WebSocket 服务。项目主要面向开发者、测试人员和需要临时分享本地应用的场景,提供类似 ngrok 但更轻量、更快速的解决方案。其用途包括本地开发调试、团队协作演示、临时 API 发布等,所有流量均通过 Cloudflare 全球边缘节点路由,确保低延迟和高可用性。

2. 解决的问题

本地开发中,经常需要将本地服务分享给外部访问,但传统方案如端口转发、内网穿透配置复杂,且可能涉及安全风险。hostc 解决了以下问题:一是消除网络配置负担,无需设置路由器端口映射或使用 VPN;二是提供安全的公网访问,所有连接均通过 HTTPS 和 WSS 加密;三是降低延迟,利用 Cloudflare 全球边缘网络实现就近路由;四是简化 WebSocket 支持,传统工具对 WebSocket 代理支持有限,而 hostc 原生无缝支持。此外,它解决了临时演示时服务不可用的问题,通过稳定的隧道连接确保服务持续可访问。

3. 适用场景

hostc 适用于多种开发与演示场景:本地 Web 应用开发中,需要让团队成员或客户实时预览;API 服务测试时,需从外网调用本地接口;WebSocket 服务的调试与演示,如实时聊天、数据推送应用;临时搭建的演示环境,无需部署到正式服务器;以及教学或培训中,快速分享代码示例。对于需要长期稳定暴露服务的场景,用户可自托管 Worker 到个人 Cloudflare 账户,实现可控的持久化隧道。但需注意,hostc 并非为高并发生产环境设计,更适合开发、测试和临时用途。

4. 安装方式

根据仓库文档,hostc 提供多种安装方式以满足不同需求。最简便的方式是直接使用 npx 运行,无需全局安装:`npx hostc 3000`(将 3000 替换为本地服务端口)。对于频繁使用的用户,可通过 npm 全局安装:`npm install -g hostc`,随后直接执行 `hostc 3000`。若需参与项目开发或自托管,需克隆仓库并使用 pnpm 安装依赖:`pnpm install`。开发环境要求 Node.js 18+ 和 pnpm v8+。所有安装命令均基于 npm 或 pnpm 包管理器,仓库中未提供其他包管理器(如 yarn)的指令。自托管 Worker 时,需拥有 Cloudflare 账户并配置 wrangler。

5. 使用方式

hostc 的使用非常简单,基本命令为 `hostc <端口号>`,例如 `hostc 3000` 会将本地 3000 端口的服务暴露到公网。默认情况下,CLI 连接本地 127.0.0.1,可通过 `--local-host` 参数指定其他地址,如 `hostc 3000 --local-host 0.0.0.0` 以绑定所有网络接口。环境变量 `HOSTC_SERVER_URL` 允许覆盖默认服务器地址,用于本地开发或自托管场景,例如 `HOSTC_SERVER_URL=http://127.0.0.1:8787 hostc 3000`。执行命令后,CLI 会建立到 Cloudflare Worker 的 WebSocket 连接,分配一个 `*.hostc.dev` 子域名作为公网 URL,并自动转发 HTTP 请求与 WebSocket 升级。隧道支持自动重连,会话期间保持活跃。详细参数可通过 `hostc --help` 查看,但仓库中未列出其他可选参数。

6. 实现特点与架构

hostc 采用 Monorepo 架构,由 pnpm 统一管理,包含三个核心部分:CLI 客户端(apps/cli)负责本地代理和隧道控制;Worker 服务端(apps/workers)运行在 Cloudflare 边缘,处理公网请求转发和会话管理;共享协议包(packages/tunnel-protocol)定义两端通信的数据格式和 WebSocket 消息类型。技术实现上,CLI 通过 WebSocket 与 Worker 建立持久控制连接,使用自定义隧道协议封装 HTTP 和 WebSocket 帧;Worker 利用 Durable Objects 存储隧道状态,实现跨实例的状态共享和会话保持;所有流量经 Cloudflare 全球网络路由,提供 TLS 加密和边缘安全防护。项目使用 TypeScript 开发,通过 tsup 打包 CLI,wrangler 部署 Worker,并使用 biome 进行代码检查。这种设计确保了低延迟、高可用和易于自托管。

思维导图

hostc
CLI 客户端
本地 HTTP 代理
WebSocket 升级转发
隧道控制连接
自动重连与会话保持
Worker 服务端
公网请求接收
Durable Objects 会话管理
边缘路由与转发
TLS 终止与安全
协议包
隧道协议定义
WebSocket 消息类型
数据编码解码
开发与构建
Monorepo (pnpm)
TypeScript 编译
tsup 打包 CLI
biome 代码检查
部署与运维
wrangler 部署 Worker
Cloudflare 账户配置
环境变量管理

常见问题

如何安装 hostc?

您可以直接使用 npx 运行 `npx hostc <端口号>` 而无需安装,或通过 npm 全局安装:`npm install -g hostc`。若需开发,使用 pnpm 安装仓库依赖:`pnpm install`。

hostc 支持 WebSocket 吗?

是的,hostc 原生支持 WebSocket 代理,可无缝将 `ws://` 升级为 `wss://`,无需额外配置,适用于实时通信应用。

是否需要 Cloudflare 账户才能使用 hostc?

普通用户无需 Cloudflare 账户即可使用 hostc 的公共服务。但若想自托管 Worker 到自己的账户,则需要一个 Cloudflare 账户并配置 wrangler 进行部署。

如何自定义隧道服务器地址?

通过设置环境变量 `HOSTC_SERVER_URL` 可覆盖默认服务器,例如 `HOSTC_SERVER_URL=http://127.0.0.1:8787 hostc 3000`,适用于本地开发或自托管环境。

hostc 是否支持 HTTPS?

是的,hostc 自动提供公共 HTTPS URL(如 `https://t-xxxx.hostc.dev`),所有公网访问均通过 TLS 加密,确保连接安全。