跳转到内容

本地转发

本地转发FreePlus 下均可使用。CLI 会为 endpoint 维持 WebSocket;每当 HookNexus 收到 webhook,CLI 会将其作为 HTTP 请求转发到你通过 --to 指定的地址,便于在不暴露公网端口的情况下本地调试。

目标地址(--to

--to 必须是完整 URL: 协议、主机、端口(非 80/443 时)以及 路径——即 你本机服务上实际接收转发请求 的那条路由。路径由 你的 后端框架与路由决定,不是 HookNexus 控制台规定的。

若只写 http://localhost:8788 这类 没有路径 的地址,请求会打到本地的 /,很多服务会返回 404。下文示例中的 PORTPATH 请换成你真实的端口与路径。

工作原理

  1. 运行 hooknexus forward 并提供包含完整本地地址的 --to(见上节)。
  2. CLI 通过 WebSocket 订阅对应 endpoint。
  3. 收到 webhook 后,将方法、头、查询串与 body 转发到目标 URL。
  4. 终端会汇总状态码、耗时与截断后的响应体等信息。

CLI 可能会附加用于识别的转发相关请求头;当前完整列表以 hooknexus forward --help 为准。

基本用法

Terminal window
hooknexus forward --to http://localhost:PORT/PATH
hooknexus forward <endpoint-id> --to http://localhost:PORT/PATH

仅为举例(你的路径应自行替换):http://localhost:3000/webhook

若省略 endpoint id,选择逻辑与 hooknexus listen 相同(自动选择、交互选择或自动创建)。

路径保留

默认请求会发到你传给 --to 的完整 URL。若要把 HookNexus 公网 webhook 上的 路径段追加 到你本地的 origin 上,使用 --preserve-path(仍从类似 http://localhost:3000 的基地址开始,并确认你的服务如何路由合并后的路径):

Terminal window
hooknexus forward --to http://localhost:3000 --preserve-path

本机与非本机目标

默认仅允许 localhost127.0.0.1.local。转发到其他主机时需显式允许:

Terminal window
hooknexus forward --to http://example.com/webhook --allow-external

多个 endpoint

每个 endpoint 建议运行 独立的 forward 进程(不同终端或进程管理器),并各自配置 --to。若只需同时监听多个 endpoint,可使用 hooknexus listen 多 id 或 --all

常用选项

完整列表见 hooknexus forward --help

选项作用
--to <url>完整目标 HTTP 地址,须含 路径(必填)
--preserve-path保留原始路径段
--allow-external允许非本机目标
--timeout <ms>转发 HTTP 请求超时
-H "Name: Value"为转发请求追加头部(可重复)

稳定性说明

  • WebSocket:与 HookNexus 断连后,CLI 会尝试 自动重连
  • HTTP 转发:失败会在终端提示;是否再次收到同一事件取决于上游是否重发 webhook。

相关文档