Skip to content

Linux systemd 部署

本页适用于普通 Linux 主机。安装包支持 amd64arm64armv7,并使用 systemd 保持服务运行。需要 root 权限和正在运行的 systemd;安装器会按需安装 curlopenssltarunzipgzip 与端口检测工具。

Linux 版会在 7991 提供管理面板,在 7999 提供 Go 网关入口。管理面板应只通过局域网、VPN 或受访问控制的 HTTPS 反向代理访问;不要直接将它映射到公网。

安装

在终端执行:

bash
curl -fsSL https://cdn.fnknock.cn/install.sh | sudo bash

安装器会先检测是否已有 fn-knock:

  • 首次安装可继续安装或退出。
  • 已安装时可选择安装最新版本、打开管理菜单、查看服务状态或卸载。
  • 下载发布包前会检查所需 TCP 端口。端口被占用时,会显示监听信息并进入端口配置菜单;修改后再继续安装。

如果未检测到已安装程序、但发现旧的 /etc/fn-knock/fn-knock.env,安装器会明确显示“残留端口配置”,并提供保留、修改或清除旧端口配置的选项。选择“清除旧端口配置”只删除该环境文件并恢复端口默认值,不会删除 /var/lib/fn-knock 中的数据或网关配置。

安装完成后,在浏览器打开:

text
http://<服务器地址>:7991/

按页面提示设置管理面板密码。这个密码只保护管理面板,与访问业务服务的 TOTP、账号密码或 Passkey 不是同一套凭据。

默认端口

7999 是最重要的 Go 网关入口,承接已配置映射的业务流量;它排在 Linux 端口配置菜单的第一项。

端口用途默认监听范围
7999Go 网关入口所有网卡
7991管理面板所有网卡
7998Rust 管理后端仅本机
7997认证服务仅本机
7996Go 管理接口仅本机

首次安装或更新已有安装时,都可输入对应编号修改端口。保存前会拒绝重复端口和已被其他服务占用的端口。

管理命令

安装完成后使用 sudo knock 打开管理菜单。常用的非交互命令如下:

bash
sudo knock status
sudo knock restart
sudo knock config
sudo knock update
sudo knock logs
sudo knock reset-panel-password

sudo knock status 会显示 systemd 的启用和活动状态、主 PID、最近退出码,以及 server-admin-rsgo-reauth-proxy 两个核心进程的 PID、RSS 内存和合计内存。

sudo knock config 显示按编号排列的端口表;输入 15 修改对应端口,输入 S 校验并保存,输入 R 恢复默认端口。服务运行时保留其当前监听端口不会被误判为冲突。

sudo knock reset-panel-password 需要确认。它会清除管理面板密码、全部面板登录会话和登录失败退避记录;下次访问 7991 的实际管理地址时会重新进入首次设置密码流程。

更新与回滚

执行 sudo knock update 后,命令会同时显示本地和线上版本。最新版本清单的请求带有缓存破坏参数和 no-cache 请求头,避免 CDN 返回旧清单。

即使本地版本与线上版本相同,仍可确认重新下载并部署该版本。新版本启动后会检查管理面板健康状态;启动失败时会恢复原有版本、管理命令、systemd 单元和服务状态。

若有上一版本,可运行:

bash
sudo knock rollback

反向代理与安全边界

需要公网管理时,优先通过 HTTPS 反向代理提供入口。安装后运行下面的命令可输出 Nginx 示例:

bash
sudo knock nginx

在反向代理上启用 TLS,并限制可信来源 IP、VPN 网段或额外认证。Linux 运行模式不会修改主机防火墙;只开放业务实际需要的端口。管理入口和业务网关入口的区别见端口与入口

卸载

bash
sudo knock uninstall

默认卸载只删除程序和 systemd 单元,保留 /etc/fn-knock 配置与 /var/lib/fn-knock 数据。只有明确使用 --purge 并在交互终端输入 DELETE 后,才会永久删除配置和数据。

继续阅读:

QQ群:1081609274