Skip to content

用 fknock 搭建 IPv6 直连访问

这篇教程适合谁

这篇教程面向下面这类用户:

  • 已经具备公网 IPv6
  • 想让外部先经过 fknock 认证,再访问设备上的其他端口
  • 希望通过域名访问,而不是死记 IPv6 地址

这不是当前最推荐的新部署路线。如果你有域名,并且主要访问 Web 服务,优先看:

这条路线的典型组合通常是:

  • 直连模式
  • DDNS
  • TOTP
  • 可选 Passkey
  • 可选 HTTPS

如果你虽然同样具备公网 IPv6,但你的真实目标已经变成:

  • 让每个服务都用独立子域访问
  • 例如 auth.example.comalist.example.com

那么更建议直接看:

最终会完成什么

完成后,你通常会得到这样一条访问链路:

  1. 域名通过 DDNS 指向你的公网 IPv6
  2. 外部用户访问你的域名和 7999
  3. 先经过 fknock 登录
  4. 登录成功后,当前外部 IPv6 地址被放入白名单
  5. 在有效期内继续访问飞牛和其他已开放端口

开始前先确认 3 个前提

  1. 你的设备确实拥有可从公网访问的 IPv6
  2. 路由器、防火墙或运营商没有拦掉你需要的流量
  3. 你理解直连模式不是给内网穿透设计的

如果你其实没有公网 IPv6,或者只能靠 FRP / Cloudflared 出去,那么这条教程并不适合你,应该改看:

第 1 步:安装并进入后台

如果尚未安装完成,先看:

确认后台可以正常打开后,再继续下面步骤。

第 2 步:先配置 DDNS

为什么这里先配 DDNS?

因为直连场景下,你通常希望:

  • 用一个固定域名访问
  • 让域名始终自动指向当前公网 IPv6

而不是每次手动查新的 IPv6 地址。

推荐路线:Cloudflare DDNS

如果你的域名托管在 Cloudflare,建议先看:

这页会单独讲清楚:

  • API Token
  • Zone ID
  • 完整域名怎么填
  • 仅解析橙色云朵 怎么选

直连 IPv6 场景的一个关键建议

对于默认 7999 入口的直连模式,通常建议在 Cloudflare DDNS 中选择:

  • 仅解析

也就是不要打开橙色云朵代理。

第 3 步:切换到直连模式

路径:系统设置 → 模式

请选择:

  • 直连模式

为什么这一步很关键

切到直连模式后,系统会启用基于防火墙的访问策略。

可以把它理解成:

  1. 对公网访问来说,默认先屏蔽除 7999 之外的其他入口
  2. 7999 承担登录入口角色
  3. 登录成功后,再对白名单中的当前 IP 放行其他端口

也就是说,直连模式不是“所有端口直接暴露到公网”,而是:

先通过 7999 完成认证,再根据白名单决定是否开放其他端口。

这一步为什么不适合内网穿透

因为这套模式的设计目标就是:

  • 用本机防火墙做入口闸门
  • 用登录和白名单管理后续访问

如果你还准备再套一层 FRP / Cloudflared,就已经偏离了这套设计。

第 4 步:配置认证

路径:认证配置

直连模式里,这一步一定不要跳过。

先绑定 TOTP

操作顺序:

  1. 点击 绑定新令牌
  2. 用身份验证器 App 扫码
  3. 输入 6 位验证码
  4. 给设备命名
  5. 保存

如果你还没有装身份验证器,先看:

再决定是否绑定 Passkey

对自己的常用设备来说,Passkey 很值得配。

但推荐顺序一定是:

  1. 先把 TOTP 配好
  2. 再绑定 Passkey

详细说明见:

另外别忘了,登录页在真正进入 TOTPPasskey 之前,还会先经过人机验证。

如果你打算把这一步切换成 Cloudflare 的人机验证,建议同时阅读:

第 5 步:强烈建议同时规划 HTTPS

虽然这篇教程的重点是“IPv6 直连 + DDNS + 认证”,但只要你准备长期从公网访问,仍然强烈建议尽早上 HTTPS。

这样做的价值包括:

  • 浏览器更稳定
  • Passkey 更稳定
  • 你更容易区分“证书问题”和“网络问题”

详细说明见:

第 6 步:从外部网络完成第一次登录验证

建议使用:

  • 手机蜂窝网络
  • 或其他不在同一局域网内的网络

验证顺序:

  1. 访问你的 IPv6 域名和 7999
  2. 完成人机验证
  3. 输入 TOTP,或使用已绑定的 Passkey
  4. 登录成功后,再测试其他端口

第 7 步:理解“登录后放行”到底是什么意思

这是直连模式里最重要的概念。

  • 登录成功后,系统会把当前出口 IP 自动加入白名单
  • 默认不勾选 记住我:通常约 24 小时
  • 默认勾选 记住我:可延长到约 1 年
  • 这两个默认值现在都可以在 系统设置 → 凭据 里调整
  • 退出登录:自动白名单会被清掉

也就是说,真正被信任的是:

  • 你当前的公网出口 IP

而不是“你这台手机”“你这台电脑”的名字。

第 8 步:按需要手动补白名单

如果你有明确稳定的出口网络,例如:

  • 家里固定宽带
  • 办公室固定出口

可以在:

里手动加一条更长期的记录。

这样即便你临时退出登录,也不至于每次都从零开始。

直连 IPv6 教程的标准完成状态

做到下面这些,才算真正完成:

  1. DDNS 能正确更新 IPv6 记录
  2. 域名能从外网访问到 fknock 登录入口
  3. TOTP 登录正常
  4. 如果启用了 Passkey,也能正常登录
  5. 登录成功后能继续访问你需要的其他端口

如果遇到问题,应该回到哪一页

问题回看哪一页
Cloudflare 参数不会找Cloudflare DDNS 配置
想把登录页的人机验证切到 Cloudflare验证码设置
不理解 TOTP 或不知道装什么 AppTOTP 与密码器 App
想补 PasskeyPasskey
不理解自动白名单IP 白名单
HTTPS 有问题SSL 证书

QQ群:1081609274