远程管理与 AI agent
这一页讲两件进阶的事:一是在自己的 Windows 电脑上,用桌面版管理服务器上的终端版;二是把日常维护交给脚本或者 AI agent。都不是必需的,用得上的时候再来看就好。
一、在自己电脑上用桌面版管理服务器#
管理端放在 Linux 服务器上的话,平时要先在自己电脑上建 SSH 隧道,再打开浏览器才能管理。如果你自己的电脑是 Windows,也可以装一个桌面版,让它帮你连过去:SSH 转发它会自己建好,打开的就是熟悉的管理界面,读写的是服务器上的项目和文件。
先准备好这几件事#
- 服务器上的终端版是 0.2.1 或更新的版本,并且已经启动了 Web 管理界面(首次引导按
Y,或者交互式命令行主菜单[10])。建议用tmux挂着,断开 SSH 也不会停。 - 自己电脑上能直接 SSH 登录服务器。打开 PowerShell,运行
ssh mc-server(或者ssh 用户名@服务器地址)试一下,能进去就行。第一次连接时的主机身份确认,也要先在这里完成。 - 最好配好密钥登录。桌面版借用的是你电脑上的 OpenSSH 配置和密钥,不会弹出终端让你输入 SSH 密码。
想用 mc-server 这样的短名字,可以在自己电脑的 C:\Users\你的用户名\.ssh\config 里写一段配置(没有这个文件就新建一个):
Host mc-server
HostName 你的服务器地址
User 用户名
IdentityFile ~/.ssh/id_ed25519在 PowerShell 里运行 ssh-keygen -t ed25519,一路回车,会在 C:\Users\你的用户名\.ssh\ 下生成 id_ed25519 和 id_ed25519.pub。把 .pub 文件里的那一行,追加到服务器上 ~/.ssh/authorized_keys 的末尾,再试一次 ssh mc-server,不用输密码就能进去就对了。
在桌面版里连接#
- 打开桌面版,在连接页上方选“SSH 连接”,填一个好认的连接名称。
- “SSH 配置名称或 user@host”填刚才的
mc-server,或者用户名@服务器地址;“远程管理端口”填服务器上 Web 管理界面的端口,默认18080。 - 点“连接工作区”,再用服务器上的管理账户登录。之后看到的文件、项目和发布记录,都是服务器上的那一份。
连接记录只保存名称、地址、目录和端口,不保存登录密码和私钥。下次打开桌面版,在左边选这个连接就能直接进去。
如果你已经给服务器上的 Web 管理界面配好了 HTTPS 反向代理(比如 https://admin.example.com/),或者自己已经把端口转发到了本机,也可以选连接页上方的“管理地址”,直接填这个地址,桌面版就不再另外建 SSH 转发了。
断开和退出#
在连接页点正在运行的工作区旁边的“×”,只是断开连接,服务器上的终端版和下载服务照常运行,不影响玩家更新。关掉窗口会收进系统托盘,选“退出桌面端”才会真正结束程序。如果网络断了,或者 SSH 连接意外中断,桌面版会回到连接页,那里可以重新打开,也能点“运行日志”看看是哪里出了问题。
二、把维护交给脚本或 AI agent#
终端版除了交互式命令行,还有一套参数式命令:不进菜单,把要做的事直接写在一条命令里。这样就能写进脚本,也能交给会在终端里执行命令的 AI agent:你告诉它要做什么,它通过 SSH 登录服务器,替你把命令跑完。
参数式命令怎么用#
读取文件列表、导入或移出文件、设置维护方式、检查并发布、生成部署包、查看和撤销操作记录,都有对应的命令。加上 --json,结果就会变成程序好读的 JSON;有确认步骤的操作,要明确加上 --yes 才会直接执行。比如先看看文件和改动,再发布:
./dfs-admin --json project files dreamhaven
./dfs-admin --json project scan dreamhaven
./dfs-admin --json project publish dreamhaven --version 1.0.1 --changelog "更新模组与配置" --yesWindows 把 ./dfs-admin 换成 DreamingFishAdmin.exe 即可。这些命令走的是和网页管理界面、桌面版同一套检查:签名、预览是否过期、玩家端兼容性一样都不会少。发布时如果有文件被移除,要用 --removed-files DELETE(移除玩家副本)或 --removed-files RELEASE(留给玩家)明确说清楚怎么处理。
| 想做的事 | 命令 |
|---|---|
| 看文件、导入或移出文件 | project files(--import、--remove) |
| 设置维护方式、可选内容、问题版本 | project policy(preset、group、withdraw、correct 等) |
| 检查改动、发布、回滚 | project scan、project publish、project rollback |
| 查看发布历史 | project releases |
| 操作记录、撤销、恢复发布设置 | project operations(--undo、--restore-published) |
| 发布玩家端程序、生成部署包 | player publish、project deployment |
| 导出外部托管目录 | project export-static |
| 加密备份与恢复 | backup create、backup restore |
不记得参数的时候,在命令后面什么都不加直接运行,会打印出这条命令的用法;dfs-admin project 会列出全部项目子命令。管理数据不在默认位置的话,加上 --data /绝对路径/data 指定。
让 AI agent 帮你维护#
推荐让 agent 先看、再改,发布之前停下来让你确认:
- 先看:
project files看现在有哪些文件,project scan看准备发布的改动。 - 再改:把新文件放进标准目录,或者用
project files --import导入;需要的话用project policy调整维护方式。 - 发布前给你过目:让 agent 把
project scan的预览列出来,新增了什么、更新了什么、移除了什么,你看过没问题,它再执行project publish ... --yes。 - 改错了就撤回:
project operations能看到每一步操作,--undo 操作ID撤销某一步,--restore-published把维护设置恢复成当前发布的样子。
交代任务的时候,可以直接这样说:
通过 ssh mc-server 登录管理服务器,在 /opt/dfs-admin 里用 ./dfs-admin 的参数式命令(加 --json)维护项目 dreamhaven:
把我上传到 ~/upload 的模组放进标准目录的 mods 里,同一个模组的旧版本删掉。
然后扫描改动,先把预览列给我看;等我确认后再发布 1.0.2,被删掉的旧版本选择移除玩家副本,更新说明写“更新模组”。
除此之外不要动别的文件。agent 用的是你登录服务器的权限,你能做的事它都能做。签名私钥就在管理端的 data 里,别让它把 data 复制到别的地方;发布前让你确认的那一步,也最好别省。