Skip to content

系统设置

这页负责什么

系统设置 不是一个杂项页,而是 fknock 的系统级控制面。

它主要负责 3 类事情:

  1. 切换系统行为,例如运行模式、网关、验证码、飞牛分享直通、请求日志、IP 归属地、WAF
  2. 控制可选能力,例如自动 HTTPS、SSH 安全、协议映射、Web 终端、登录有效期
  3. 准备或维护底层资源,例如 FRP、Cloudflared、ACME、系统备份

模式切换

路径:系统设置 → 模式

这是最重要的系统设置项之一。

模式切换不仅改变界面文案,还会连带影响:

  • 是否启用直连模式的防火墙策略
  • 是否以路径映射作为主访问模型
  • 是否改成同一父域下按 Host 分发
  • 是否继续显示 FRP / Cloudflared 等反代专属页签

切换前,建议先明确:

  • 我是不是可以优先走“子域网关 + 独立 Web 子域”
  • 还是“统一入口 + 路径转发”
  • 还是少数情况下确实要“认证后放行 IP”

如果你还没有做决定,先回看:

模式页里的防火墙操作

系统设置 → 模式 右下角的 操作 菜单现在还提供两类运行态修复:

  • 按所选模式重设防火墙
  • 清空防火墙

可以这样理解:

  • 按所选模式重设防火墙:按当前选中的模式,把 Linux 防火墙重新写回更符合该模式的状态
  • 清空防火墙:直接清掉 Linux 防火墙规则,并移除历史 80 / 443 -> 7999 这类旧重定向

其中:

  • 直连模式 重设时,会只保留入口端口,并重新同步当前白名单
  • 子域模式 重设时,会保留网关入口;如果已经启用 协议映射,对应监听端口也会一起保留
  • 反代模式 重设时,本质上更接近“清理 Linux 防火墙”,因为反代入口本身不依赖直连模式那套默认拒绝策略

如果你只是临时切换了模式卡片,但还没点击 保存修改按所选模式重设防火墙 只会先改运行态,不会替你持久切换模式。要长期生效,仍然要点击:

  • 保存修改

自动处理系统防火墙

模式页底部最近还新增了一个开关:

  • 自动处理系统防火墙

可以这样理解:

  • 开启时:切换模式、同步运行态时,会自动调整 Linux 防火墙
  • 关闭时:后续模式变更不再自动改防火墙,但你仍可通过右侧 操作 菜单手动执行

需要特别注意一个边界:

  • 即使关闭这个开关,直连模式 仍会继续处理防火墙

原因很简单。

直连模式本身就依赖:

  • 默认只保留登录入口
  • 再对白名单 IP 放行

所以它不能彻底脱离那套防火墙模型。

功能开关

路径:系统设置 → 功能

这一页当前最重要的开关包括:

  • 自动HTTPS
  • SSH安全
  • 协议映射
  • 智能连接

自动 HTTPS

路径:系统设置 → 功能 → 自动HTTPS

它的作用是:

  • 80 端口启动一个轻量跳转服务
  • 把明文 HTTP 请求跳转到 HTTPS

适合这些前提同时成立的场景:

  1. 你的 80443 没有被运营商封锁
  2. fknock 的 Go 网关端口已经改成 443
  3. 你已经给 fknock 配好可用 HTTPS 证书
  4. 当前不是 Docker 部署

如果启动失败,页面会直接显示原因。最常见的是:

  • 没有权限监听 80
  • 80 已被其他程序占用
  • 飞牛系统自己的端口重定向还没关闭

更完整的 HTTPS 说明见:

SSH 安全

路径:系统设置 → 功能 → SSH安全

开启后,左侧会显示:

  • SSH安全

它会读取 SSH 登录日志,并按失败次数、地区范围或自定义 CIDR 自动封锁来源 IP。

需要注意:

  • Docker 部署通常不可用
  • 当前环境需要支持宿主机防火墙管理
  • 系统需要能读取 journalctl/var/log/auth.log

完整说明见:

协议映射

开启后:

  • 侧边栏会显示 协议映射
  • 可以开始配置 TCP / UDP 端口转发

需要特别注意:

  • 这个开关目前主要服务于 子域模式
  • 关闭它时,不只是“隐藏导航”
  • 现有的协议映射配置也会被清空

所以如果你已经在正式使用,关闭前最好先:

  • 确认是否需要导出备份

完整说明见:

智能连接

路径:系统设置 → 功能 → 智能连接

这是最近新增的另一项子域模式能力。

它的目标是:

  • 当你的设备回到局域网后
  • auth.example.comalist.example.com 这类子域
  • 优先解析回本机局域网 IP

这样就不用在家里 Wi-Fi 下,还继续绕公网入口。

它有几个明确前提:

  • 只在 子域模式 下可用
  • 依赖本机 dnsmasq
  • 需要先选择一个本机私网 IPv4
  • 当前至少要已经存在可同步的子域映射

还要特别注意一个最容易被忽略的边界:

  • 后台保存成功,不等于客户端一定已经生效

因为它本质上是:

  • 给本机加一层局域网 DNS 解析能力

所以你后续还需要让:

  • 路由器 DHCP
  • 或测试设备本身

把 DNS 指向这台 fknock 所在机器的局域网 IP。

完整说明见:

IP 归属地

路径:系统设置 → 属地

这一页负责配置两类数据源:

  • IP 识别库:查询单个 IP 的国家、地区和运营商信息
  • CIDR 地址库:查询省市级 IP 地址段,供地区选择和访问控制使用

两类服务都支持:

  • 官方在线服务
  • 自定义服务

它会影响:

  • 登录日志
  • 会话管理
  • 请求日志
  • 事件中心
  • 网关可见性
  • SSH 安全

完整说明见:

飞牛分享直通

路径:系统设置 → 飞牛

它的目标不是“关闭认证”,而是:

  • 让访客可以直接打开飞牛原生分享链接
  • 不需要先登录 fknock
  • 但不会顺带放开整个飞牛站点或其他映射服务

这项功能当前适合在 反代模式子域模式 下使用,而且强烈建议:

  • 反代模式 下保持 5666 对应的飞牛映射仍然是默认路由
  • 子域模式 下至少保留一条真正指向飞牛的 Host 映射,最好就是常用的 fnos.example.com

完整机制、参数和排障建议见:

网关

路径:系统设置 → 网关

这一页现在负责的是 Go 网关的三组运行参数:

  • 网关可见性
  • 鉴权结果缓存
  • 反代节流

它和 日志 页不一样,不是“事后观察”,而是直接改网关处理请求时的行为;保存后会立即同步到网关进程。

可见性

这是最近新增的一层入口收敛能力。

它负责决定:

  • 哪些地区可以访问统一网关

  • 哪些自定义 CIDR 可以继续碰到入口

  • 你可以按省 / 市添加范围

  • 也可以手动补充 IPv4 / IPv6 CIDR

  • 保存时后台会把这些规则解析成最终网段,并立即同步到 Go 网关

  • 启用后,至少要有一个地区或一条自定义 CIDR

它最适合这些场景:

  1. 只希望特定地区能访问统一入口
  2. 只想允许公司出口、家宽出口或固定网段访问
  3. 想先缩小暴露面,再叠加认证和白名单

完整说明见:

鉴权结果缓存

这里可以分别控制:

  • 成功鉴权缓存时长

  • 失败鉴权缓存时长

  • 两项默认都是 1 秒

  • 0 表示关闭对应缓存

  • 更适合放在已经走统一网关的访问模型里理解,例如 反代模式子域模式

可以这样理解:

  • 成功缓存更偏向减轻重复校验压力
  • 失败缓存更偏向减少同一来源反复撞登录或重试时的无效校验

如果你刚改完登录状态、白名单或上游鉴权条件,短时间看到旧结果,不一定是没生效,也可能还在缓存窗口里。

反代节流

这是最近新增的一层网关级保护。

它会按客户端 IP:

  • 限制每秒通过的请求数
  • 允许一小段突发额度
  • 超限后短时封禁

默认参数是:

  • 20 req/s
  • 50 tokens
  • 30 秒

对大多数人来说,先保持默认通常最稳妥。

只有在这些场景,才更值得调整:

  1. 页面首次加载会并发拉很多静态资源,怀疑自己把正常请求也卡住了
  2. 暴露到公网后,正在承受高频探测或异常重试
  3. 你已经结合请求日志确认流量特征,再准备收紧或放宽

需要特别注意:

  • 被这层节流直接中断的请求,不一定会写入 access log

更完整的安全视角见:

WAF

路径:系统设置 → WAF

这一页负责在 Go 网关里加载 Web 防护规则。

它当前主要包括:

  • WAF 开关
  • 防护强度
  • 系统规则同步
  • 系统规则启停
  • 自定义 .conf 规则上传、启停、查看和删除

默认情况下,WAF 是关闭的。

开启时系统会先更新系统规则,再按当前规则和强度同步到 Go 网关。开启后左侧导航会出现:

  • WAF日志

需要特别注意:

  • WAF 是统一网关后的补充检测,不替代登录认证、白名单或网关可见性
  • 防护强度越高,越可能误拦截正常业务
  • 开启 WAF 时至少要保留一个启用的规则文件

完整说明见:

网关请求日志

路径:系统设置 → 日志

开启后:

  • Go 网关会按天写入结构化请求日志
  • 你可以按日期、关键字查看请求记录
  • 也可以保留最近 N 天并自动清理旧文件

需要注意:

  • 请求日志登录日志 不是一回事
  • 开启后左侧导航才会出现 请求日志

完整字段说明见:

终端

路径:系统设置 → 终端

这是最近新增的重要页签之一。

它不是直接“开一个 shell”,而是先准备:

  • tmux

然后再决定是否启用:

  • Web终端

当前这页主要负责:

  • 检测 tmux 是否可用
  • 一键安装 tmux
  • 开关 Web终端
  • 设置最大会话数
  • 设置空闲清理时间

启用后:

  • 左侧导航才会显示 Web终端
  • 后台才能创建和附着可恢复终端会话

完整使用方式见:

凭据

路径:系统设置 → 凭据

这一页负责的不是新增 TOTPPasskey,而是:

  • 普通登录有效期

  • 勾选 记住我 后的有效期

  • 默认普通登录约 24 小时

  • 默认 记住我1 年

  • 这两个默认值现在都可以改

  • 还可以决定登录成功后是否自动给当前 IP 授权

最重要的边界是:

  • 修改后只影响之后新创建的登录会话
  • 已经签发的 Cookie、Redis 会话和自动白名单不会被追溯改写

登录后 IP 授权

这一页现在还有三种常见策略:

  • 跟随会话
  • 不自动白名单IP
  • 自定义

可以这样理解:

  • 跟随会话:当前 IP 会跟着这次登录一起获得授权;退出、踢出或过期时一并撤销
  • 不自动白名单IP:只保留当前浏览器会话,不额外给 IP 放行
  • 自定义:给当前 IP 签发固定时长授权;主动退出登录时仍会立即撤销

如果你启用了登录后 IP 授权,还要顺带理解:

  • 使用 跟随会话 时,自动白名单时长会跟着对应登录的有效期一起变化
  • 直连模式 下,这些有效 IP 还会同步到底层防火墙放行

建议配合阅读:

验证码

路径:系统设置 → 验证码

它负责的是:

  • 登录页的人机验证类型
  • 是否使用内置 PoW
  • 是否切换到 Cloudflare Turnstile

它不负责:

  • 绑定 TOTP
  • 管理 Passkey

如果你准备切到 Cloudflare 的人机验证,建议配合阅读:

维护

路径:系统设置 → 维护

这是最近补上的另一个重要页签。

它负责:

  • 导出系统备份
  • 导入系统备份

当前支持两种来源 / 去向:

  • 导出到本机
  • 导出到飞牛 backup 目录
  • 从本机导入 .knock 备份
  • 从飞牛 backup 目录导入 .knock 备份

导入时需要特别注意:

  • 会先清空当前配置
  • 再用备份里的 Redis 数据覆盖恢复
  • 完成后会尝试同步运行模式、请求日志、SSL 等运行态
  • 页面会在导入后自动刷新

另外它不是“导入任意旧文件都行”的工具。

导入还会校验:

  • 备份文件格式
  • 备份版本范围
  • 是否为受支持的 .knock 归档

所以更适合这些场景:

  1. 大改配置前先留一份快照
  2. 迁移机器或回滚最近一次错误改动
  3. 做系统级恢复,而不是只恢复单个映射

FRP 资源

路径:系统设置 → FRP

这一页只负责:

  • 下载并准备 FRP 可执行文件

它不是 FRP 配置页,也不是启动页。

真正的 FRP 配置和启动在:

  • 内网穿透 → FRP

而且只有在 反代模式 下,这个页签才会显示。

还要注意:

  • 现在 FRP 保存配置前会调用本机 frpc verify
  • 所以如果这里还没先把 FRP 资源准备好,后面的配置页也无法完成校验保存

Cloudflared 资源

路径:系统设置 → Cloudflared

逻辑和 FRP 类似:

  • 这里只负责准备运行资源
  • 不是填写 Token 的地方
  • 也不是启动页

真正的使用页在:

  • 内网穿透 → Cloudflared

同样只有在 反代模式 下才会显示。

ACME 资源

路径:系统设置 → ACME

如果你准备使用 ACME 自动申请正式证书,这一步通常必须先完成。

这一页负责:

  • 安装 acme.sh
  • 查看安装状态
  • 删除已安装资源
  • 切换默认的证书颁发机构

当前可选的 CA 主要包括:

  • Let's Encrypt
  • ZeroSSL

需要注意:

  • 切换 CA 会影响后续新的签发和自动续期
  • 不会立刻替换当前已经部署的证书

如果这一步没完成,SSL 证书 → ACME 证书 页面就无法真正开始签发。

扫描拦截

路径:系统设置 → 拦截

这里负责系统级的扫描器防护参数。

推荐做法:

  1. 先开保护
  2. 先用相对保守的阈值
  3. 结合日志观察误伤情况
  4. 再逐步收紧

系统设置最容易出现的误解

误解一:资源已下载,就等于功能已经启用

不是。

例如:

  • 下载好了 Cloudflared,不等于 Tunnel 已经连接成功
  • 下载好了 FRP,不等于 FRP 客户端已经开始转发
  • 安装好了 tmux,也不等于 Web终端 已经开启

误解二:切模式只是换个导航菜单

也不是。

切模式会影响真正的访问模型、入口策略和外部链路设计。

误解三:请求日志就是登录日志

也不是。

它们关注的对象不同:

  • 登录日志 更关心谁在尝试登录、成功还是失败
  • 请求日志 更关心请求有没有进入网关、命中了哪条规则、最终回了什么状态

误解四:改了登录有效期,当前已登录设备会立刻一起变化

不是。

新时长只会在下一次新登录时生效。

误解五:关闭协议映射只是把入口藏起来

也不是。

关闭功能开关时,现有协议映射配置也会被清空。

误解六:关闭“自动处理系统防火墙”后,直连模式也会完全不碰防火墙

不是。

这个开关主要影响:

  • 反代模式
  • 子域模式

在模式切换和运行态同步时,是否自动改 Linux 防火墙。

但直连模式仍会继续处理防火墙,因为它本身就依赖“只保留登录入口、对白名单 IP 放行”的访问模型。

误解七:切到 Turnstile 只填一个公开 key 就够了

也不是。

启用 Cloudflare Turnstile 时,必须同时配置:

  • site_key
  • secret_key

两者缺一不可。

误解八:打开智能连接后,外部 DNS 会自动一起改掉

不是。

智能连接 只负责:

  • 在局域网里提供本地 DNS 解析

它不会替你自动修改:

  • 公网 DNS 记录
  • DDNS 提供商配置
  • 路由器 DHCP DNS

所以如果你保存后还在走公网,优先检查的通常不是功能开关本身,而是:

  • 客户端是不是真的把 DNS 查询发到了这台机器

相关阅读

QQ群:1081609274