实用命令
XLADA 日常运维命令合集。除非另有说明,
示例均在面板服务器上的 /opt/xlada 目录中执行,docker-compose.yml 就放在那里。
服务在同一个 compose 文件中描述:xpanel(面板)、xpanel-db
(PostgreSQL)、xpanel-redis(Valkey)以及可选的 xpanel-subpage
(订阅页面)。面板和订阅页面的端口绑定到 127.0.0.1 ——
由 nginx 对外提供。
面板
cd /opt/xlada
docker compose ps # xpanel、xpanel-db、xpanel-redis 服务状态
docker compose logs -f xpanel # 实时查看面板日志
docker compose logs --tail=100 xpanel-db
docker compose restart xpanel # 仅重启面板
docker compose up -d # 应用 .env 中的更改
不用 compose 直接查看同样的日志也很方便:
docker logs -f xpanel
docker logs --since 30m xpanel
完整重启整个栈且不丢失数据:
docker compose down && docker compose up -d
切勿给 docker compose down 加上 -v 标志:它会连同数据库和
所有用户一起删除卷。安全更新顺序见
更新 一节。
紧急操作(例如重置超级管理员密码)由面板 CLI 执行:
docker exec -it xpanel cli
完整列表见 Rescue CLI 一节。
修改 .env 后请执行 docker compose up -d:compose 会重新创建
发生变化的容器并重新读取变量。命令
docker compose restart 不会重新读取环境变量 —— 如果你
改了 METRICS_USER 或域名,这样做是不够的。
内部服务
面板将数据存储在 PostgreSQL 中,缓存存储在 Valkey 中。检查两者:
docker exec -it xpanel-db pg_isready -U xpanel -d xpanel
docker exec -it xpanel-redis valkey-cli ping
预期的响应是 accepting connections 和 PONG。
数据库
更新或手动修改前先做转储 —— 这是唯一可靠的
回滚方式。转储在容器内进行,因此无需在宿主机上
安装 pg_dump 和 psql,而 backup-...sql 文件会出现在当前目录中。
docker exec xpanel-db pg_dump -U xpanel xpanel > backup-$(date +%F).sql
恢复:
docker exec -i xpanel-db psql -U xpanel -d xpanel < backup-2026-01-01.sql
交互式控制台:
docker exec -it xpanel-db psql -U xpanel -d xpanel
| 任务 | 查询 |
|---|---|
| 有多少用户 | SELECT count(*) FROM users; |
| 数据库大小 | SELECT pg_size_pretty(pg_database_size('xpanel')); |
| 最近的审计记录 | SELECT * FROM admin_audit_log LIMIT 10; |
查看操作日志时,按管理员和结果筛选在
界面中更方便 —— 即 Audit Log 页面,而不是在 psql 中。
节点
节点是代理服务器上的独立容器,因此命令要在它 运行的地方执行:
docker logs -f xpanel-node # 节点日志并检查 SECRET_KEY
docker exec -it xpanel-node xlogs # Xray-core 日志
docker exec -it xpanel-node cli --clear-logs
清理 Xray 日志也可以从面板启动:Logs 页面, “Node system logs” 部分。节点会轮转文件,不会重启 Xray —— 活动连接不会中断。详情见 安装节点 一节。
端口
ss -tlnp | grep -E ':(3000|3001|3010|2222)\b' # 谁在监听 XLADA 的端口
nc -vz 203.0.113.10 2222 # 从面板服务器测试 NODE_PORT
在本地和外部检查面板:
curl -sI http://127.0.0.1:3000
curl -s -o /dev/null -w '%{http_code}\n' https://panel.example.com/api/auth/status
端口 2222 不需要对全互联网开放:只需一条针对面板
IP 的防火墙规则即可。相反,代理端口由 Xray 配置决定,并且必须
对客户端开放。
请在面板服务器上检查 NODE_PORT,而不是从浏览器:面板自己
访问节点,端口能否从互联网访问并不能说明什么。
证书
certbot certificates # 已签发了什么、到期日期
certbot renew --dry-run # 检查自动续期
certbot --nginx -d panel.example.com # 签发证书
systemctl list-timers | grep certbot # 续期定时器是否启用
修改 nginx 配置后,务必检查语法:
nginx -t && systemctl reload nginx
指标
Prometheus 指标在 127.0.0.1:3001 上以 basic auth 方式提供。登录名和
密码取自与启动面板时相同的变量 METRICS_USER 和 METRICS_PASS:
source /opt/xlada/.env
curl -s http://127.0.0.1:3001/metrics -u "$METRICS_USER:$METRICS_PASS" | head
端口 3001 不应对外开放。如果指标由外部
Prometheus 采集,请通过 SSH 隧道或单独的
代理将它指向 127.0.0.1:3001,而不要在防火墙中开放端口。
接下来
- 更新 —— 更新顺序以及从转储回滚。
- Rescue CLI —— 面板的紧急命令。
- 常见错误 —— 命令没有生效时该怎么办。