Web 终端
Web 终端适合查看状态、执行短命令和紧急排障。它提供两类目标:所有发行平台都可连接管理员配置的远程 SSH 目标;完整标准 FPK、Linux 服务、macOS 和 OpenWrt 还可选择 fn-knock 所在主机的本机 PTY。
开启或关闭 Web 终端
在 系统设置 → 功能 → Web 终端 管理总开关,默认开启,访问沿用管理后台认证。关闭并保存后会立即结束全部 SSH 和本机终端会话,并关闭终端入口;重新开启不会恢复已结束的 Shell。这个总开关与下文默认关闭的本机 PTY 开关分别控制,启用 Web 终端不会自动启用本机 PTY。
平台边界
| 部署方式 | 远程 SSH | 本机 PTY |
|---|---|---|
| 完整标准 FPK | 支持 | 支持,默认关闭 |
敲门 knock Lite | 支持 | 不支持 |
| Linux 服务 | 支持 | 支持,默认关闭 |
| macOS | 支持 | 支持,默认关闭 |
| OpenWrt | 支持 | 支持,默认关闭 |
| Docker、群晖 DSM、Windows | 支持 | 不支持 |
| 开发环境 | 支持 | 不支持 |
远程 SSH 要求 fn-knock 运行环境能访问目标的主机和端口;Docker 端口发布、OpenWrt 防火墙或其他平台网络规则不会由 Web 终端自动修改。本机 PTY 不需要启用 SSH 服务,也不会通过 localhost SSH 绕行。
权限边界
远程终端命令使用所配置 SSH 用户的权限执行。本机 PTY 则直接继承 fn-knock 管理服务的有效 UID/GID,不会自动降权或切换用户:服务以 root 运行时,本机终端也是 root Shell,可直接修改宿主机系统、应用数据和网络配置。
- 只向可信管理员开放管理面板;
- 远程目标优先使用权限受限的专用 SSH 用户和私钥认证;
- 添加远程目标时通过独立可信渠道核对主机指纹;
- 启用本机 PTY 前核对页面显示的执行身份、Shell 和初始目录,并完成风险确认;
- 修改配置文件、软件包或防火墙前先备份;
- 不把 Web 终端当作 SSH 安全策略、命令审计或最小权限的替代品。
启用本机 PTY
在支持的平台进入 Web 终端,打开本机终端设置。该开关默认关闭;页面会显示实际执行身份、是否为特权身份、将启动的 Shell 和初始目录。阅读风险说明、勾选确认后才能启用;找不到可执行的受支持登录 Shell 时不能启用。
启用后,固定的 本机 目标会排在远程 SSH 目标之前。它不是 SSH 目标,不能编辑或删除。禁用本机终端时,如果仍有活动会话,页面会先要求二次确认;确认后会终止这些会话,再关闭新建本机会话的入口。保存设置时会核对配置修订;旧页面与当前配置冲突时需先刷新并重新确认,不能静默覆盖其他管理员的修改。
Shell 按可执行文件依次选择 zsh、当前账号 Shell、bash、ash 或 sh,并以登录 Shell 方式启动。初始目录优先使用执行账号主目录,其次使用 fn-knock 数据目录,最后回退到 /。本机会话会清理服务进程环境,只重建终端所需的身份、路径、终端和受限的语言、时区变量,避免把服务密钥直接带入 Shell。
完整标准 FPK 中,本机终端请求沿桌面 CGI 入口 index.cgi 转发到回环地址上的 Rust 管理服务;它不经过 fnOS 统一网关、Go 网关或 gRPC,也不使用 WebSocket。终端仍沿用管理后台的 HTTP 请求与长轮询通道,因此不要为了它额外暴露管理端口。
添加 SSH 目标
进入 Web 终端,点击 添加 SSH 目标,填写名称、主机、端口、用户名和认证方式。认证支持密码或 OpenSSH 私钥;加密私钥还可以填写口令。
凭据会在 fn-knock 本机加密保存。首次测试时,系统先取得服务器主机密钥并显示算法与指纹,必须明确确认后才会发送认证信息。不要仅凭页面显示就信任新指纹,应在服务器控制台、已知 SSH 客户端或管理员提供的记录中核对。
确认指纹并通过连接测试后即可保存。主机、端口、用户名、认证方式或受信任主机密钥发生变化时,已有活动会话可能需要结束后才能应用;页面会在保存前列出受影响会话。
目标与会话
本机目标和每个 SSH 目标都可以创建多个独立 Shell 会话。会话在终端服务持续运行期间保持;刷新页面、关闭浏览器或临时断网只会断开浏览器连接,不会立即结束 Shell。fn-knock 服务重启、Shell 自行退出或管理员结束会话会终止对应会话;禁用本机终端还会结束全部本机会话。这些已结束的会话无法恢复。
页面提供:
- 新建、切换和重命名会话;
- 重新连接仍在运行的会话;
- 最大化、调整字体、复制、粘贴、全选和原样发送文本;
- 查看连接阶段;远程 SSH 包括解析主机、验证密钥、认证和申请 PTY,本机终端包括打开 PTY 与启动 Shell;
- 结束并删除会话。
同一会话一次只有一个浏览器拥有输入控制权。其他浏览器可以只读查看输出,并在需要时点击 接管控制;接管后原控制端不能继续输入。
编辑或删除远程目标都从该目标的 编辑 SSH 目标 对话框进入;触屏设备可先点按目标卡片显示编辑按钮。删除会先要求确认;如果目标仍有活动会话,页面还会显示第二次“结束会话并删除”确认。确认时系统会再次核对目标修订状态,避免页面过期后误删已被其他管理员修改的配置。成功后会移除目标与加密凭据;结束会话和删除都不可恢复。
移动端操作
窄屏设备会显示快捷工具栏,提供常用控制键、修饰键、方向与导航键以及字号调节。浏览器不允许直接读取剪贴板时,页面会打开 发送到终端 对话框,由管理员手动粘贴后发送。
手机浏览器适合短时排障;长命令、交互式编辑、持续任务和文件传输更适合使用本地 SSH 客户端。
审计与凭据
事件中心会记录 SSH 目标创建、修改和删除、主机指纹确认、连接测试结果、本机终端启用或禁用,以及本机和远程会话的创建、结束、退出或丢失等事件。本机事件会标明本地后端、执行身份与是否为特权身份。审计不会记录终端中输入的每条命令;需要命令级审计时,应在目标系统或宿主机另行配置。
应用备份会包含远程 SSH 目标及受保护的凭据,因此导出文件仍应按敏感凭据保护;删除目标后也要在目标服务器撤销不再需要的账号或公钥。备份不会包含活动终端会话,也不会包含本机终端启用开关;恢复后本机终端保持关闭,需要在新主机重新核对执行身份、Shell 和初始目录后手动启用。
排查
无法取得或确认主机指纹
确认 fn-knock 所在环境能解析目标主机并访问 SSH 端口。指纹与预期不一致时不要继续认证;先检查 DNS、目标重装或密钥轮换记录,以及是否存在中间人代理。
连接测试失败
核对用户名、密码或私钥格式、私钥口令,以及目标 SSH 服务是否允许对应认证方式。服务器还必须允许创建交互式 PTY;只允许文件传输或固定命令的账号不能提供完整终端。
会话无法恢复
查看会话阶段和连接错误。Shell 可能已退出,SSH 链路已断开,远程目标配置已修改,本机终端已禁用,或 fn-knock 终端服务已经重启。确认目标和平台能力后创建新会话。
只能查看,不能输入
另一个浏览器正在控制同一会话。确认不会打断对方操作后点击 接管控制,或新建独立会话。
