Skip to content

端口与入口

fn-knock 有两个面向用户的入口:管理入口用于修改配置,网关入口承接业务访问。飞牛原生 FPK 从桌面图标进入管理页;Docker、OpenWrt 和 Linux systemd 的管理面板默认使用 7991。Windows 由 fn-knock Windows 管理程序在系统浏览器打开本机 127.0.0.1:7991,不能当作局域网或公网管理入口。网关通常使用 7999,飞牛 Docker FPK 向导为避免与原生应用冲突,默认改为 8999

799879977996 是组件之间的内部端口,不应直接暴露到公网。

默认端口

端口角色默认用途
7991管理面板Docker、OpenWrt 和 Linux 的默认管理入口;Windows 仅限本机回环访问
7998管理后端飞牛原生 FPK 的桌面 CGI 代理到这里;Docker 也在内部使用它
7997认证服务处理登录、退出、Passkey 和人机验证
7996网关管理端口管理后端与 Go 网关之间的内部通信
7999网关入口接收 Web 业务流量并执行认证与路由

端口可以在安装时修改。排错时以实际部署配置和后台显示的访问入口为准,不要假定所有安装都使用默认值。

不同部署的对外端口

部署方式管理入口网关入口说明
飞牛原生 FPK飞牛桌面图标7999桌面 CGI 代理到本机 7998,不要把 7991 当作 FPK 管理入口
Docker Compose79917999默认只发布这两个端口
飞牛 Docker FPK 向导799189998999 用于避开原生应用的 7999
OpenWrt79917999内部管理后端默认改用 17998
Linux systemd79917999安装和 sudo knock config 可修改端口;799879977996 仅本机监听
Windows x86_64管理程序打开 127.0.0.1:79917999,新安装时仅 127.0.0.1管理后台强制本机访问;管理程序只提供端口修改,不提供受支持的网关公开监听设置

Docker 的容器端口与宿主机发布端口由部署文件共同决定。完整配置见 Docker 部署

请求进入网关后会发生什么

网关入口只解决“流量从哪里进入”。进入后还要依次确定路由和访问策略:

  1. 网络拓扑:公网或局域网直达网关,或者由 FRP、Cloudflared 等隧道转入网关。
  2. 路由:Web 服务优先按请求 Host 分发,例如 nas.example.com;路径映射只用于兼容依赖 /alist 这类旧入口的服务。
  3. 访问策略:当前 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、绑定地址和端口发布。业务域名打不开时,按以下顺序检查:

  1. 外部流量是否到达实际网关端口(7999 或 Docker FPK 的 8999)。
  2. 请求 Host 或兼容路径是否命中映射。
  3. 映射目标能否从 fn-knock 所在环境访问。
  4. 请求日志中的客户端 IP、授权类型和上游目标是否符合预期。

路径兼容规则见 路径映射,整体选择见 运行方式

QQ群:1081609274