Skip to content

为什么需要 fn-knock

把 NAS 或自托管服务放到公网时,真正难的不是“能不能打开”,而是“哪些流量应该被允许到达服务”。服务本身可能有登录页、补丁和权限控制,但只要管理接口或应用端口直接暴露,扫描、误配置和上游服务漏洞都会成为日常风险。

fn-knock 把访问控制放在服务之前:请求先进入统一网关,再按身份、会话、IP 授权和映射规则决定是否转发到内网服务。它适合 NAS、家庭服务器和 Docker 主机上的私有 Web 服务,也能处理部分 TCP / UDP 服务。

它位于哪里

text
访问者

DNS / 路由器 / CDN / 隧道

fn-knock 网关
  ├─ 认证、会话、白名单、WAF、请求日志
  └─ Host / 路径 / TCP-UDP 路由

飞牛、文件服务、媒体服务或其他内网应用

管理后台不在这条访问路径上。它用于保存映射、凭据、证书和运行设置;普通访问者走的是网关入口。

fn-knock 能解决什么

目标对应能力
把多个 Web 服务收在一个入口子域映射或路径映射
让访问者先验证身份TOTP、账号密码、Passkey、OIDC、验证码
按服务限制谁能访问要求登录、凭据的子域范围
在无公网 IP 的环境发布服务FRP 或 Cloudflared
管理域名和 HTTPSDDNS、证书库、ACME
观察和处置异常访问登录日志、请求日志、WAF、黑名单、事件通知

它不替代什么

fn-knock 只处理确实进入网关的流量。下面几件事仍需要单独完成:

  • 及时更新飞牛、容器镜像、系统和业务应用;
  • 不把原始管理端口、数据库端口或绕过网关的回源端口暴露到公网;
  • 为路由器、反向代理和 CDN 配置正确的防火墙与真实客户端 IP 传递;
  • 定期备份,并把备份、令牌、证书私钥和恢复凭据保存在可信位置;
  • 为不同用户和服务设置最小必要权限。

尤其要注意:局域网、回环和部分私网来源在网关中默认属于本地豁免。它方便家庭网络使用,但不能用局域网测试结果证明公网认证已经生效。请使用移动网络或其他真实外部网络完成验证。

选择 fn-knock 的方式

从一条简单的链路开始即可:选定部署方式,决定流量是公网直达还是经过隧道,用子域映射发布一个服务,再配置登录凭据、DNS 和证书。其余功能在需要时逐步加入。

最后更新:

QQ群:1081609274