服务端 REPL
通过 SIREN Server REPL 管理在线客户端、Shell 和远程命令
服务端 REPL 是远程模式的命令行入口。启动 siren_server 后,终端中的 >>> 提示符可用于管理在线客户端、打开交互式 Shell 和执行单条远程命令。
./siren_server -c /path/to/server_config.yaml>>> helpREPL 适合已经登录控制主机、需要在终端里直接操作的场景。需要图形化客户端列表、Project 视图、浏览器 Shell 或文件管理时,使用 Web 控制台 更方便。
客户端管理
客户端通过 TLS 加密通道连接服务端。首次连接时,服务端会按客户端稳定身份分配一个数字 Client ID 并持久保存,后续 REPL 命令都通过这个 ID 指定目标客户端。
Client ID 在客户端重连和服务端重启后保持不变,也不会分配给其他主机;只有同一身份出现第二个在线连接(如克隆镜像)时,新连接才会临时获得一个不保存的编号。客户端上线时还会上报主机名、内网 IP 和阿里云 ECS Instance ID,ls 会一并显示,便于对照告警中的主机。执行操作前先用 ls 确认目标客户端。
客户端启动后前 60 秒内,首次连接失败会等待 2 秒再试,减少部署放行后的上线等待。首次连接成功或该窗口结束后,恢复 8、16、30 秒的重试间隔,最多重试 10 次;单次连接仍可能等待最多 10 秒。此窗口不是部署总超时。
列出客户端
>>> ls设置备注
为客户端添加备注,便于在多客户端场景下快速识别。省略备注内容时会清空已有备注:
>>> note <Client ID> [Note]备注按客户端稳定身份保存。服务端短暂下线、升级或客户端重连后,已设置的备注会恢复;WebUI Project 归属也会按稳定身份恢复。
重连后活动会话不会恢复
稳定身份用于保持 Client ID、恢复备注和 Project 归属。交互式 Shell、端口转发和正在执行的命令属于当前连接上的活动会话,服务端重启后需要重新打开。
远程命令执行
交互式 Shell
shell 会在服务端通过 tmux 打开一个新窗口,并把目标客户端的交互式 Shell 接入该窗口。它适合连续排查、编辑文件,或运行 vim、top 这类需要完整终端交互的程序。
>>> shell <Client ID>Shell 特性
Shell 会话通过独立的 TLS 中继连接传输,不影响主控制通道。服务端需要安装 tmux,客户端通过服务端主 TLS 端口(默认 TCP 443)回连,无需额外开放随机端口;服务端与客户端需同时升级到 v2.30.5 或更新版本。如果不想依赖 tmux,可以使用 Web 控制台的 Shells 页面。
退出 Shell 的方式与退出普通终端相同(输入 exit 或按 Ctrl+D),退出后自动返回 SIREN Server REPL。
单条命令执行
run 用于执行一次性命令,并把输出返回到 REPL。它适合快速查看当前用户、系统版本、进程列表等信息;需要持续交互时使用 shell。
>>> run <Client ID> <Command>单条命令的返回内容有大小限制,超过约 50 KiB 时会被截断。长输出建议写入文件后用 WebUI Files 下载,或通过 upload 保存到 Artifacts 查看。