aionclaw端口占用需先确认配置端口(如18789),再用ss或lsof查pid,最后选择kill终止或修改config.yaml中port字段并严格缩进,重启后用ss和curl验证监听与健康接口。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

启动AionClaw后端服务时提示端口占用,说明它尝试绑定的端口已被其他进程独占,服务无法完成TCP监听,直接退出且可能无有效日志输出——你必须先定位冲突进程,再释放或迁移端口,否则反复重启毫无意义。
确认AionClaw当前配置的监听端口
打开终端,执行:
sudo grep -n "port\|listen" /etc/openclaw/config.yaml 2>/dev/null || grep -n "port" ~/.openclaw/config.yaml
若返回类似 7: port: 18789 的行,说明当前配置端口为18789;若无输出,检查是否使用了环境变量或命令行参数覆盖,默认仍可能是18789或9000。这一步跳过会导致后续所有操作目标错误。
查清哪个进程正占用该端口
假设上一步确认端口是18789,执行:
sudo ss -tulnp | grep ':18789'
如果输出中包含 12345/python3 或 6789/nginx,末尾数字即为PID;若无任何输出,说明端口未被占用,问题可能出在防火墙拦截或配置语法错误。注意:Linux下ss比netstat更可靠,旧系统若无ss可用sudo lsof -i :18789替代。
安全终止或迁移占用进程
方法一:直接终止非关键进程(仅限测试环境)
执行 sudo kill -9 12345,其中12345替换为上一步查得的真实PID。【强制kill可能丢失未保存数据,切勿对数据库、Nginx主进程或Docker容器使用】
方法二:保留原进程,为AionClaw更换端口(推荐)
① 先验证新端口空闲:sudo ss -tuln | grep ':50022' → 无输出才可用
② 编辑配置文件:sudo nano /etc/openclaw/config.yaml
③ 找到server:区块,在其下**严格用两个空格缩进**添加或修改: port: 50022
④ 保存退出,注意YAML不接受Tab缩进和大写Port字段,否则服务拒绝启动。
重启服务并验证监听状态
执行:
sudo systemctl daemon-reload → sudo systemctl restart openclaw
等待3秒后立即验证:
sudo ss -tuln | grep ':50022'
看到包含LISTEN且进程名为openclaw的行,说明绑定成功。此时可运行:
curl -s http://localhost:50022/health | head -c 80








