端口与入口
fn-knock 有两个面向用户的入口:管理入口用于修改配置,网关入口承接业务访问。飞牛原生 FPK 从桌面图标进入管理页;Docker、OpenWrt 和 Linux systemd 的管理面板默认使用 7991。Windows 由 fn-knock Windows 管理程序在系统浏览器打开本机 127.0.0.1:7991,不能当作局域网或公网管理入口。网关通常使用 7999,飞牛 Docker FPK 向导为避免与原生应用冲突,默认改为 8999。
7998、7997 和 7996 是组件之间的内部端口,不应直接暴露到公网。
默认端口
| 端口 | 角色 | 默认用途 |
|---|---|---|
7991 | 管理面板 | Docker、OpenWrt 和 Linux 的默认管理入口;Windows 仅限本机回环访问 |
7998 | 管理后端 | 飞牛原生 FPK 的桌面 CGI 代理到这里;Docker 也在内部使用它 |
7997 | 认证服务 | 处理登录、退出、Passkey 和人机验证 |
7996 | 网关管理端口 | 管理后端与 Go 网关之间的内部通信 |
7999 | 网关入口 | 接收 Web 业务流量并执行认证与路由 |
端口可以在安装时修改。排错时以实际部署配置和后台显示的访问入口为准,不要假定所有安装都使用默认值。
不同部署的对外端口
| 部署方式 | 管理入口 | 网关入口 | 说明 |
|---|---|---|---|
| 飞牛原生 FPK | 飞牛桌面图标 | 7999 | 桌面 CGI 代理到本机 7998,不要把 7991 当作 FPK 管理入口 |
| Docker Compose | 7991 | 7999 | 默认只发布这两个端口 |
| 飞牛 Docker FPK 向导 | 7991 | 8999 | 8999 用于避开原生应用的 7999 |
| OpenWrt | 7991 | 7999 | 内部管理后端默认改用 17998 |
| Linux systemd | 7991 | 7999 | 安装和 sudo knock config 可修改端口;7998、7997、7996 仅本机监听 |
| Windows x86_64 | 管理程序打开 127.0.0.1:7991 | 7999,新安装时仅 127.0.0.1 | 管理后台强制本机访问;管理程序只提供端口修改,不提供受支持的网关公开监听设置 |
Docker 的容器端口与宿主机发布端口由部署文件共同决定。完整配置见 Docker 部署。
请求进入网关后会发生什么
网关入口只解决“流量从哪里进入”。进入后还要依次确定路由和访问策略:
- 网络拓扑:公网或局域网直达网关,或者由 FRP、Cloudflared 等隧道转入网关。
- 路由:Web 服务优先按请求
Host分发,例如nas.example.com;路径映射只用于兼容依赖/alist这类旧入口的服务。 - 访问策略:当前 Host 编辑页通过
要求登录在公开访问和登录优先之间切换;已有严格白名单规则仍按来源 IP 执行。
TCP / UDP 协议映射会额外监听各自的对外端口,不经过 7999 的 HTTP Host 路由。直连模式则把网关作为登录入口,登录后再按来源 IP 放行原始端口。
local_exempt:局域网测试不代表公网已受保护
认证服务把网关识别到的回环、私网、链路本地等来源归为 local_exempt。这类请求会被视为本地网络访问,跳过常规登录和白名单检查;严格白名单也不会把它当作公网来源拦截。
因此:
- 在同一局域网打开服务,不能验证公网登录策略是否生效。
- 经反向代理或隧道接入时,应在请求日志中确认网关识别到的是真实公网客户端 IP,而不是代理节点的私网 IP。
- 公网验证应使用移动网络等真实外部链路。
local_exempt 是来源网络例外,不是浏览器登录会话。退出登录不会改变该网络的本地例外属性。
平台能力边界
- Docker 可以运行 Host / 路径网关,但不会替宿主机写防火墙规则,也不支持直连模式和智能连接。
- 飞牛原生 FPK 可以管理宿主机防火墙,并提供直连模式和智能连接。
- OpenWrt 在具备 root 权限时可使用宿主机防火墙和直连模式;当前软件包没有可验证的智能连接自动 dnsmasq 接入,局域网分流 DNS 需自行配置。它也不提供 Web 终端或应用内 FPK 更新。
- Windows 新安装的网关只接收本机回环流量;当前不支持直连模式、应用内宿主机防火墙管理、智能连接、内置隧道、Web 终端或 SSH 安全。不要把路由器
7999转发视为 Windows 版的可用入口。
对 Host 或路径路由,fn-knock 只能保护真正经过网关的请求。若上游服务仍监听公网或局域网可达地址,用户仍可能绕过网关直连它。直连授权是例外:它依赖支持的宿主机防火墙,仅在登录后的来源 IP 获授权时临时放行原始端口;不要另行添加宽泛的公网放行规则。
按链路排错
飞牛原生 FPK 管理页打不开时,先检查桌面图标、应用进程和 7998 后端;Docker 或 OpenWrt 再检查 7991、绑定地址和端口发布。业务域名打不开时,按以下顺序检查:
- 外部流量是否到达实际网关端口(
7999或 Docker FPK 的8999)。 - 请求
Host或兼容路径是否命中映射。 - 映射目标能否从
fn-knock所在环境访问。 - 请求日志中的客户端 IP、授权类型和上游目标是否符合预期。
