系统设置
这页负责什么
系统设置 不是一个杂项页,而是 fknock 的系统级控制面。
它主要负责 3 类事情:
- 切换系统行为,例如运行模式、网关、验证码、飞牛分享直通、请求日志、IP 归属地、WAF
- 控制可选能力,例如自动 HTTPS、SSH 安全、协议映射、Web 终端、登录有效期
- 准备或维护底层资源,例如 FRP、Cloudflared、ACME、系统备份
模式切换
路径:系统设置 → 模式
这是最重要的系统设置项之一。
模式切换不仅改变界面文案,还会连带影响:
- 是否启用直连模式的防火墙策略
- 是否以路径映射作为主访问模型
- 是否改成同一父域下按
Host分发 - 是否继续显示
FRP/Cloudflared等反代专属页签
切换前,建议先明确:
- 我是不是可以优先走“子域网关 + 独立 Web 子域”
- 还是“统一入口 + 路径转发”
- 还是少数情况下确实要“认证后放行 IP”
如果你还没有做决定,先回看:
模式页里的防火墙操作
系统设置 → 模式 右下角的 操作 菜单现在还提供两类运行态修复:
按所选模式重设防火墙清空防火墙
可以这样理解:
按所选模式重设防火墙:按当前选中的模式,把 Linux 防火墙重新写回更符合该模式的状态清空防火墙:直接清掉 Linux 防火墙规则,并移除历史80 / 443 -> 7999这类旧重定向
其中:
- 选
直连模式重设时,会只保留入口端口,并重新同步当前白名单 - 选
子域模式重设时,会保留网关入口;如果已经启用协议映射,对应监听端口也会一起保留 - 选
反代模式重设时,本质上更接近“清理 Linux 防火墙”,因为反代入口本身不依赖直连模式那套默认拒绝策略
如果你只是临时切换了模式卡片,但还没点击 保存修改,按所选模式重设防火墙 只会先改运行态,不会替你持久切换模式。要长期生效,仍然要点击:
保存修改
自动处理系统防火墙
模式页底部最近还新增了一个开关:
自动处理系统防火墙
可以这样理解:
- 开启时:切换模式、同步运行态时,会自动调整 Linux 防火墙
- 关闭时:后续模式变更不再自动改防火墙,但你仍可通过右侧
操作菜单手动执行
需要特别注意一个边界:
- 即使关闭这个开关,
直连模式仍会继续处理防火墙
原因很简单。
直连模式本身就依赖:
- 默认只保留登录入口
- 再对白名单 IP 放行
所以它不能彻底脱离那套防火墙模型。
功能开关
路径:系统设置 → 功能
这一页当前最重要的开关包括:
自动HTTPSSSH安全协议映射智能连接
自动 HTTPS
路径:系统设置 → 功能 → 自动HTTPS
它的作用是:
- 在
80端口启动一个轻量跳转服务 - 把明文
HTTP请求跳转到HTTPS
适合这些前提同时成立的场景:
- 你的
80和443没有被运营商封锁 - fknock 的 Go 网关端口已经改成
443 - 你已经给 fknock 配好可用 HTTPS 证书
- 当前不是 Docker 部署
如果启动失败,页面会直接显示原因。最常见的是:
- 没有权限监听
80 80已被其他程序占用- 飞牛系统自己的端口重定向还没关闭
更完整的 HTTPS 说明见:
SSH 安全
路径:系统设置 → 功能 → SSH安全
开启后,左侧会显示:
SSH安全
它会读取 SSH 登录日志,并按失败次数、地区范围或自定义 CIDR 自动封锁来源 IP。
需要注意:
- Docker 部署通常不可用
- 当前环境需要支持宿主机防火墙管理
- 系统需要能读取
journalctl或/var/log/auth.log
完整说明见:
协议映射
开启后:
- 侧边栏会显示
协议映射 - 可以开始配置
TCP/UDP端口转发
需要特别注意:
- 这个开关目前主要服务于
子域模式 - 关闭它时,不只是“隐藏导航”
- 现有的协议映射配置也会被清空
所以如果你已经在正式使用,关闭前最好先:
- 确认是否需要导出备份
完整说明见:
智能连接
路径:系统设置 → 功能 → 智能连接
这是最近新增的另一项子域模式能力。
它的目标是:
- 当你的设备回到局域网后
- 让
auth.example.com、alist.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 秒填
0表示关闭对应缓存更适合放在已经走统一网关的访问模型里理解,例如
反代模式和子域模式
可以这样理解:
- 成功缓存更偏向减轻重复校验压力
- 失败缓存更偏向减少同一来源反复撞登录或重试时的无效校验
如果你刚改完登录状态、白名单或上游鉴权条件,短时间看到旧结果,不一定是没生效,也可能还在缓存窗口里。
反代节流
这是最近新增的一层网关级保护。
它会按客户端 IP:
- 限制每秒通过的请求数
- 允许一小段突发额度
- 超限后短时封禁
默认参数是:
20 req/s50 tokens30 秒
对大多数人来说,先保持默认通常最稳妥。
只有在这些场景,才更值得调整:
- 页面首次加载会并发拉很多静态资源,怀疑自己把正常请求也卡住了
- 暴露到公网后,正在承受高频探测或异常重试
- 你已经结合请求日志确认流量特征,再准备收紧或放宽
需要特别注意:
- 被这层节流直接中断的请求,不一定会写入
access log
更完整的安全视角见:
WAF
路径:系统设置 → WAF
这一页负责在 Go 网关里加载 Web 防护规则。
它当前主要包括:
- WAF 开关
- 防护强度
- 系统规则同步
- 系统规则启停
- 自定义
.conf规则上传、启停、查看和删除
默认情况下,WAF 是关闭的。
开启时系统会先更新系统规则,再按当前规则和强度同步到 Go 网关。开启后左侧导航会出现:
WAF日志
需要特别注意:
- WAF 是统一网关后的补充检测,不替代登录认证、白名单或网关可见性
- 防护强度越高,越可能误拦截正常业务
- 开启 WAF 时至少要保留一个启用的规则文件
完整说明见:
网关请求日志
路径:系统设置 → 日志
开启后:
- Go 网关会按天写入结构化请求日志
- 你可以按日期、关键字查看请求记录
- 也可以保留最近 N 天并自动清理旧文件
需要注意:
请求日志和登录日志不是一回事- 开启后左侧导航才会出现
请求日志
完整字段说明见:
终端
路径:系统设置 → 终端
这是最近新增的重要页签之一。
它不是直接“开一个 shell”,而是先准备:
tmux
然后再决定是否启用:
Web终端
当前这页主要负责:
- 检测
tmux是否可用 - 一键安装
tmux - 开关
Web终端 - 设置最大会话数
- 设置空闲清理时间
启用后:
- 左侧导航才会显示
Web终端 - 后台才能创建和附着可恢复终端会话
完整使用方式见:
凭据
路径:系统设置 → 凭据
这一页负责的不是新增 TOTP 或 Passkey,而是:
普通登录有效期
勾选
记住我后的有效期默认普通登录约
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归档
所以更适合这些场景:
- 大改配置前先留一份快照
- 迁移机器或回滚最近一次错误改动
- 做系统级恢复,而不是只恢复单个映射
FRP 资源
路径:系统设置 → FRP
这一页只负责:
- 下载并准备 FRP 可执行文件
它不是 FRP 配置页,也不是启动页。
真正的 FRP 配置和启动在:
内网穿透 → FRP
而且只有在 反代模式 下,这个页签才会显示。
还要注意:
- 现在 FRP 保存配置前会调用本机
frpc verify - 所以如果这里还没先把 FRP 资源准备好,后面的配置页也无法完成校验保存
Cloudflared 资源
路径:系统设置 → Cloudflared
逻辑和 FRP 类似:
- 这里只负责准备运行资源
- 不是填写 Token 的地方
- 也不是启动页
真正的使用页在:
内网穿透 → Cloudflared
同样只有在 反代模式 下才会显示。
ACME 资源
路径:系统设置 → ACME
如果你准备使用 ACME 自动申请正式证书,这一步通常必须先完成。
这一页负责:
- 安装
acme.sh - 查看安装状态
- 删除已安装资源
- 切换默认的证书颁发机构
当前可选的 CA 主要包括:
Let's EncryptZeroSSL
需要注意:
- 切换 CA 会影响后续新的签发和自动续期
- 不会立刻替换当前已经部署的证书
如果这一步没完成,SSL 证书 → ACME 证书 页面就无法真正开始签发。
扫描拦截
路径:系统设置 → 拦截
这里负责系统级的扫描器防护参数。
推荐做法:
- 先开保护
- 先用相对保守的阈值
- 结合日志观察误伤情况
- 再逐步收紧
系统设置最容易出现的误解
误解一:资源已下载,就等于功能已经启用
不是。
例如:
- 下载好了 Cloudflared,不等于 Tunnel 已经连接成功
- 下载好了 FRP,不等于 FRP 客户端已经开始转发
- 安装好了
tmux,也不等于Web终端已经开启
误解二:切模式只是换个导航菜单
也不是。
切模式会影响真正的访问模型、入口策略和外部链路设计。
误解三:请求日志就是登录日志
也不是。
它们关注的对象不同:
登录日志更关心谁在尝试登录、成功还是失败请求日志更关心请求有没有进入网关、命中了哪条规则、最终回了什么状态
误解四:改了登录有效期,当前已登录设备会立刻一起变化
不是。
新时长只会在下一次新登录时生效。
误解五:关闭协议映射只是把入口藏起来
也不是。
关闭功能开关时,现有协议映射配置也会被清空。
误解六:关闭“自动处理系统防火墙”后,直连模式也会完全不碰防火墙
不是。
这个开关主要影响:
- 反代模式
- 子域模式
在模式切换和运行态同步时,是否自动改 Linux 防火墙。
但直连模式仍会继续处理防火墙,因为它本身就依赖“只保留登录入口、对白名单 IP 放行”的访问模型。
误解七:切到 Turnstile 只填一个公开 key 就够了
也不是。
启用 Cloudflare Turnstile 时,必须同时配置:
site_keysecret_key
两者缺一不可。
误解八:打开智能连接后,外部 DNS 会自动一起改掉
不是。
智能连接 只负责:
- 在局域网里提供本地 DNS 解析
它不会替你自动修改:
- 公网 DNS 记录
- DDNS 提供商配置
- 路由器 DHCP DNS
所以如果你保存后还在走公网,优先检查的通常不是功能开关本身,而是:
- 客户端是不是真的把 DNS 查询发到了这台机器
