Skip to content

向上游传递代理头

通过 fn-knock 转发请求时,上游服务可能需要知道原始协议、访问 Host 或客户端地址。系统设置 → 网关 → 协议头 按业务 Host 控制网关是否向上游发送 X-Forwarded-* 等代理头。它仅在 Host 路由的子域模式中可编辑,包括公网直达 子域模式内网穿透 → 子域映射;路径模式和直连模式不提供此项。

启用后,上游应用可以基于这些头生成正确的外部链接、判断 HTTPS、记录客户端地址或配置自身的可信代理。关闭后,应用通常只会看到 fn-knock 与它之间的连接信息。

界面按 Host 展示,但运行时按上游 Target 生效。多个 Host 复用同一个 Target 时,关闭其中一个 Host 的协议头会影响其他复用该 Target 的 Host;需要不同策略时,为它们使用不同 Target。

使用原则

  • 只有在上游应用需要并且能正确处理这些头时启用。
  • 上游应用应只信任来自 fn-knock 的代理头;不要让它接受任意客户端伪造的 X-Forwarded-For
  • CDN、FRP 或 Tunnel 在 fn-knock 前面时,前置链路必须删除或重写外部客户端可伪造的真实 IP 头;再从请求日志确认 fn-knock 识别到的客户端 IP。
  • 修改后用请求日志和上游访问日志对照 Host、协议、客户端 IP。

这个设置只影响 fn-knock 发给上游 的头,不决定 fn-knock 如何识别入站客户端 IP,也不能充当可信代理名单。入站来源识别依赖前置链路正确处理真实 IP 头;部署后必须在请求日志中核验。

QQ群:1081609274