跳到正文

IPv6 公网直达与原始端口授权

直连模式让访问者先通过网关登录,再按 IP 白名单访问飞牛或其他原始端口。它适合确实需要原始端口的 IPv6 环境,不是发布 Web 服务的首选路径。

该模式需要 fn-knock 管理宿主机防火墙,因此仅适用于飞牛标准 FPK。敲门 knock Lite、Docker、OpenWrt、通用 Linux、群晖 DSM 7 SPK 和 Windows 都不支持直连模式。

前置条件

  • 设备拥有可从公网路由的 IPv6 地址;
  • 路由器与主机防火墙允许网关入口的 IPv6 流量;
  • 已准备 AAAA 记录或能用 DDNS 更新 AAAA;
  • 有一台不在同一局域网的 IPv6 客户端用于验证;
  • 已准备至少一个登录恢复凭据。

先从设备和外部网络分别确认地址族。设备获得 fe80::/10 链路本地地址或 ULA 私有地址,不代表拥有公网 IPv6;AAAA 必须指向设备当前可路由的全局地址。家庭宽带即使不需要 IPv4 NAT 端口转发,路由器的 IPv6 入站防火墙仍可能默认拒绝连接。

记录以下恢复信息后再切换模式:

  • fn-knock 管理入口和局域网地址;
  • 当前防火墙配置备份;
  • 网关入口与计划保护的原始端口;
  • 可从局域网或设备控制台恢复规则的方法。

配置步骤

  1. DDNS 管理 选择 仅更新 IPv6。地址来源可使用自动选择,也可固定到实际公网接口;Docker 不能使用本教程的直连模式。
  2. 等待同步后,从外部 DNS 查询 AAAA,确认返回当前设备的全局 IPv6,而不是旧前缀、临时地址或另一台设备。
  3. 在路由器 IPv6 防火墙中只允许网关入口到 fn-knock。不要预先宽泛放行待保护的原始端口,否则会绕过动态授权。
  4. 系统设置 → 模式 选择 直连模式(不推荐)。阅读确认提示;保存后系统会按模式同步防火墙规则。
  5. 认证配置 建立 TOTP 或账号密码,并在 系统设置 → 会话 将登录后 IP 授权设为跟随会话或所需的固定时长。
  6. 为网关域名配置 HTTPS 证书。证书必须覆盖实际访问 Host;自动 HTTPS 的申请和部署条件见证书与 HTTPS
  7. 从外网打开网关入口,例如 https://auth.example.com:<网关端口>,完成登录。
  8. 再访问需要的原始服务端口;确认当前公网 IPv6 已在 IP 授权列表中生效。

服务范围受限的 TOTP、密码账号、Passkey、OIDC 或 LDAP 凭据不会创建自动 IP 授权,避免凭据借助来源地址扩大权限。直连模式要自动开放原始端口,应使用未限制服务范围的凭据,或手动添加所需 IPv6 / CIDR。

防火墙验证顺序

每一步都新建连接,不要复用已经建立的 SSH、浏览器或 App 连接:

  1. 未登录时,网关入口应可达,受保护的原始端口应拒绝或超时。
  2. 登录后,使用同一个外部网络连接原始端口,应进入上游服务自己的认证。
  3. IP 白名单 或会话详情中确认记录类型、IPv6 和到期时间。
  4. 退出登录或等待授权过期,再次新建连接,原始端口应重新被拒绝。
  5. 换一条外部网络测试,未授权的新 IPv6 不应继承旧网络的放行。

IP 变化时

直连模式下,访问原始端口的后续连接不会再经过网关。IPv6 前缀或客户端出口改变后,应重新打开网关入口完成认证,等待自动 IP 授权同步,再重试原始服务端口。

客户端可能使用隐私扩展临时地址,移动网络也可能更换前缀。不要为了减少重新登录而放行过大的 IPv6 网段;手动 CIDR 会授权整个范围。

验证与排查

  • 在移动网络或另一条 IPv6 网络中测试;家庭 Wi-Fi 可能被本地豁免。
  • AAAA 解析正确但无法连接:检查路由器 IPv6 防火墙、运营商入站策略和主机防火墙。
  • 能登录但原始端口不通:检查白名单记录、模式同步状态和服务是否监听 IPv6。
  • 登录后没有生成授权:检查会话的 IP 授权策略和凭据是否限制了服务范围。
  • 地址偶尔指向不可达主机:检查 DDNS 选中的接口、临时 IPv6 地址和前缀变化。
  • 原始端口能在未登录时访问:立即检查路由器、云安全组和手工防火墙规则,确认没有绕过 fn-knock 的放行。

需要回退时,从局域网或控制台把运行模式切回原方案,恢复备份的防火墙规则,并删除不再使用的 AAAA。先恢复管理能力,再清理临时授权记录。

QQ群:1081609274