Skip to content

原始端口访问:直连授权

适用于设备有公网入站,并且需要直接访问 SSH、远程桌面或其他原始 TCP/UDP 端口的环境。访客先从 fn-knock 网关完成认证,fn-knock 再按出口 IP 临时开放受保护端口。

  • 网络拓扑:公网直达
  • 路由方式:原始 TCP/UDP 端口
  • 访问方式:登录后获得 IP 授权
  • 后台位置:系统设置 → 模式 → 直连模式(不推荐)

直连模式依赖宿主机防火墙,当前主要用于飞牛 fnOS FPK 和 OpenWrt。Docker 和 Windows 部署不支持由 fn-knock 管理宿主机防火墙,不应使用本方案。

适用边界

选择直连授权前,确认:

  • 后台中能看到 直连模式(不推荐),并且当前部署支持主机防火墙。
  • 设备有可用的公网 IPv4、IPv6 或可控的端口转发。
  • 目标是保护原始端口,而不是 HTTP/HTTPS 网站。
  • 你能够从本地或控制台恢复防火墙,避免配置错误后失联。

直连模式不是内网穿透方案。没有公网入站时,应使用内网穿透:子域路由;网站服务优先使用公网直达:子域路由

fn-knock 只控制网络入口。SSH、远程桌面和其他上游服务仍需及时更新、限制权限并启用自身认证。

请求过程

  1. 访客从公网打开 fn-knock 网关,默认端口 7999
  2. 访客完成登录。
  3. 若会话设置和所用凭据允许,fn-knock 将访客当前出口 IP 写入临时授权;否则需要手动白名单。
  4. 访客使用同一出口 IP 连接原始业务端口。
  5. 会话或授权过期后,业务端口再次拒绝该 IP。

开始前

切换模式前完成以下准备:

  • 记录管理入口、网关入口和需要保护的端口。
  • 确认 TOTP、密码、Passkey 或 OIDC 至少有一种能够登录。
  • 备份现有模式、路由和防火墙配置。
  • 保留局域网访问或设备控制台作为恢复入口。

模式切换会调整防火墙规则。不要在唯一的远程管理连接中首次启用。

1. 启用直连模式

进入 系统设置 → 模式,选择 直连模式(不推荐) 并保存。

启用后应满足:

  • fn-knock 网关端口可以从计划中的公网入口访问。
  • SSH、远程桌面等受保护端口默认不对未授权 IP 开放。
  • 局域网或明确保留的管理来源仍可恢复配置。

飞牛 fnOS FPK 和 OpenWrt 的防火墙实现不同。切换后立即从外网做一次未登录测试,确认业务端口确实被拒绝。

2. 配置认证入口

配置至少一种登录方式,并确保公网可以打开 fn-knock 网关。域名示例:

  • auth.example.com:7999
  • 公网 443 转发到网关 7999 时,可使用 https://auth.example.com

认证入口应使用 HTTPS,避免凭据和会话信息通过明文传输。证书配置见 SSL 证书

3. 设置登录后的 IP 授权

进入 系统设置 → 会话,配置登录后的 IP 处理方式:

方式适用场景
跟随会话推荐用于直连模式;会话有效期间维持对应 IP 授权
不自动授权 IP只使用登录会话;原始端口仍需手动白名单才能访问
自定义需要固定授权窗口时使用

直连模式保护的是网络端口。若关闭自动 IP 授权,浏览器登录成功并不表示 SSH 或远程桌面端口会自动开放。

服务范围受限的登录凭据不会创建自动 IP 授权。这包括受限的 TOTP、其关联 Passkey / OIDC,以及受限服务范围的账号密码账号;这是为了避免一个受限凭据通过来源 IP 扩大访问范围。直连授权应使用未限制服务范围的凭据,或手动添加当前公网 IP / CIDR;随后从外网重新验证端口。

4. 配置域名、DDNS 和证书

动态公网地址可以使用 DDNS 更新 auth.example.com。只发布实际可从公网到达的地址记录。

为认证域名配置受信任证书。自动 HTTPS 仅适用于支持该能力的部署;Docker 和 OpenWrt 需要自行提供证书或使用前置 TLS 入口。

5. 从外网验证

使用手机蜂窝网络或另一条外网连接测试:

  1. 未登录时连接受保护端口,应被拒绝或超时。
  2. 打开认证入口并完成登录。
  3. 使用同一网络再次连接受保护端口,应能进入服务自身的认证流程。
  4. 系统设置 → 会话 或 IP 授权列表中确认当前出口 IP 和有效期。
  5. 注销或等待授权过期,再次确认端口被关闭。

测试 SSH 时不要复用已经建立的连接,应新建连接验证规则是否生效。

出口 IP 变化

移动网络、公司代理和部分家庭宽带可能频繁改变出口 IP。出口 IP 变化后,原授权不会自动适用于新地址,需要重新打开认证入口登录。

严格限制来源时,可手动添加稳定的 IP 或 CIDR。不要为移动网络填写过大的网段,否则会扩大暴露范围。

部署限制

部署方式直连授权说明
飞牛 fnOS FPK支持可管理主机防火墙
OpenWrt 插件支持规则作用于路由器防火墙
Docker Compose / Docker FPK不支持容器不能代替宿主机防火墙管理
Windows x86_64不支持安装器的程序级规则不等同于直连授权;管理后台不提供该模式

常见故障

症状优先检查
登录成功但原始端口仍不可达登录后的 IP 授权方式、当前出口 IP、端口转发
未登录也能访问业务端口路由器或宿主机仍有绕过 fn-knock 的放行规则
启用后远程管理失联使用本地或控制台恢复防火墙和运行模式
IPv4 可用、IPv6 仍暴露IPv6 防火墙未同步限制,或 AAAA 指向了其他入口
授权很快失效会话有效期过短,或出口 IP 已变化
登录成功但没有自动 IP 授权登录凭据限制了服务范围;改用未限制范围的凭据或手动添加 IP / CIDR
Docker 中找不到该模式属于部署限制,应改用子域路由

完整排查入口见 FAQ

相关文档

QQ群:1081609274