选择部署与访问方案
部署 fn-knock 时需要依次确定三件事:程序运行在哪里、外部流量怎样到达网关、网关怎样把请求交给目标服务。访问策略最后决定哪些请求可以通过。
fn-knock 用于收敛入口和前置认证,不能替代系统更新、备份、最小权限和上游服务自身的安全配置。
选择部署方式
| 部署方式 | 管理入口 | 默认网关入口 | 适用情况 | 主要限制 |
|---|---|---|---|---|
| 飞牛应用 FPK | 飞牛桌面的“敲门 knock”图标(本机 CGI 转至后端 7998) | 7999 | fnOS 主机,希望使用完整的宿主机能力 | 7998 是管理后端,不是对外或浏览器管理入口 |
| Docker Compose | 7991 | 7999 | NAS、家庭服务器或普通 Docker 主机 | 不支持直连模式、宿主机防火墙管理、自动 HTTPS、SSH 安全、智能连接和 Web 终端 |
| 飞牛 Docker FPK | 7991 | 向导默认映射为 8999 | 希望在 fnOS 中由向导管理 Docker 配置 | 能力限制与 Docker Compose 相同 |
| OpenWrt 软件包 | 服务 → 敲门 Knock;默认端口为 7991 | 7999 | 主路由、软路由或旁路由 | 不支持自动 HTTPS、SSH 安全、Web 终端和应用内 FPK 更新;局域网分流 DNS 需自行配置 |
| Linux systemd | 7991 | 7999 | 普通 Linux 服务器、VPS 或自管主机 | 需要 systemd 和 root 权限;主机防火墙由管理员自行管理 |
| Windows x86_64 | 管理程序打开本机 127.0.0.1:7991 | 7999,新安装时仅回环监听 | 需要 Windows 服务与本机托盘管理程序 | 没有受支持的公网监听范围设置;不支持直连授权、内置 FRP / Cloudflared、智能连接、Web 终端和 SSH 安全 |
Docker、OpenWrt、Linux systemd 与 Windows 的管理入口需要单独设置面板密码。这个密码保护管理面板,与网关入口使用的 TOTP、账号密码或 Passkey 不是同一套凭据。
安装说明:
- 飞牛应用:安装与首次进入
- 飞牛 Docker FPK:飞牛 Docker FPK 部署
- Docker:Docker 部署
- OpenWrt:OpenWrt 部署
- Linux:Linux systemd 部署
- Windows:Windows x86_64 部署
选择网络拓扑
公网直达
域名直接解析到家庭公网 IPv4 / IPv6,或由路由器把公网端口转发到 fn-knock 网关入口。
适用条件:
- 外部网络可以到达家庭入口
- 已准备域名
- 路由器、防火墙和运营商没有阻断所需端口
Web 服务使用 公网直达:子域路由。只有在必须继续访问原始端口时,才使用 原始端口:直连授权。
FRP 或 Cloudflared 隧道
外部请求先进入 FRP 服务端或 Cloudflare,再由隧道回到 fn-knock 的网关入口。家庭网络不需要可入站的公网 IP。
新部署的 Web 服务默认使用:
- 后台模式:
内网穿透 - 路由方式:
子域映射
完整步骤见 内网穿透:子域路由。
EdgeOne 或 ESA 前置
EdgeOne、ESA 等边缘平台可以在公网侧接收标准 80 / 443,再回源到 fn-knock。它们属于公网直达拓扑的前置层,不改变 fn-knock 内部的 Host 路由和访问策略。
开始接入前,应先让 fn-knock 的本地网关、鉴权子域和业务子域正常工作。
选择路由方式
| 路由方式 | 外部地址示例 | 适用服务 | 说明 |
|---|---|---|---|
| Host 路由 | https://nas.example.com | Web 服务 | 推荐方案;每个服务使用独立子域 |
| 路径路由 | https://example.com/photos | 已经适配子路径的 Web 服务 | 兼容旧配置;后台位于 内网穿透 → 路径模式,该模式已标记为不再推荐 |
| TCP / UDP 转发 | example.com:3306 | SSH、数据库、DNS 等非 Web 协议 | 通过“协议映射”配置;当前只在后台的子域模式下提供 |
Host 路由既可以用于公网直达,也可以用于 FRP / Cloudflared。是否有公网 IP 不再决定能否使用子域。
路径路由只应保留给以下情况:
- 已有路径映射需要平稳迁移
- 上游应用明确支持子路径
- 外部只能使用一个固定主机名
选择访问策略
当前管理界面通过 Host 映射里的 要求登录 开关配置新服务:
| 策略 | 当前设置方式 | 通过条件 |
|---|---|---|
| 公开访问 | 关闭当前登录优先映射的 要求登录 | 不检查 fn-knock 登录和白名单 |
| 要求登录 | 开启 要求登录 | 手动来源授权可独立放行;自动 IP 授权通常允许同一来源继续访问,但不覆盖已携带的服务范围拒绝;没有可用来源授权时再检查会话 |
| 严格白名单 | 只可能存在于历史映射,当前界面没有选择入口 | 即使关闭 要求登录 也不一定公开;只按有效来源授权记录判断(手动或登录后自动创建),会话 Cookie 本身不能替代来源条件 |
新建业务映射通常开启 要求登录。鉴权服务本身必须保持公开,否则未登录访问者无法进入登录页。若升级后遇到历史严格白名单规则,应同时检查手动与自动 IP 授权记录;若要退出该规则,记录完整映射后按当前界面重新创建,单独关闭 要求登录 不足以公开。若严格规则只允许手动来源,关闭登录后自动 IP 授权并清理遗留的自动记录。
登录凭据还可以限制允许访问的子域。上游 Basic Auth 凭据注入只用于 fn-knock 连接目标服务,不是访问者登录 fn-knock 的方式。
按需求进入配置
| 条件 | 选择 |
|---|---|
| 有公网入口和域名,主要访问 Web 服务 | 公网直达:子域路由 |
| 没有公网 IP,使用 FRP 或 Cloudflared | 内网穿透:子域路由 |
| 已有路径映射,暂时不能迁移 | 内网穿透页中的路径兼容方案 |
必须在网页登录后访问 5666、22 等原始端口 | 原始端口:直连授权 |
| 还没有安装或无法区分管理入口和网关入口 | 安装与首次进入 |
| 在 Windows x86_64 本机部署与维护 | Windows x86_64 部署 |
对具备外部网关入口的部署,应使用移动网络等真实外部链路完成最终验证。局域网和本地来源可能被网关信任,不能替代公网认证测试;Windows 新安装的网关仅回环监听,不适用这类公网验证。
