OpenClaw Gateway启动失败因端口被占用,需先释放端口:查PID(netstat/lsof/ss)、杀进程(taskkill/kill),或改配置文件端口,再验证启动成功。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

OpenClaw Gateway服务启动失败,报错“Address already in use”,说明你配置的监听端口正被其他进程占用,必须先释放该端口才能正常启动服务。
确认OpenClaw配置的监听端口
打开OpenClaw安装目录下的application.yml或config.yaml文件,查找server.port字段值。默认通常是8080或9000。如果配置中写的是0,表示系统自动分配空闲端口,此时报错大概率是配置被覆盖或环境变量误设,需检查SERVER_PORT等环境变量是否强制指定了具体端口号。
查出占用目标端口的进程
在终端中执行以下命令(将8080替换为你实际要查的端口号):
sudo ss -tuln | grep ':8080'
若无输出,换用lsof命令:
sudo lsof -i :8080
这两条命令会列出所有绑定到该端口的进程名、PID和用户。注意:WSL2环境下lsof可能未预装,可先运行sudo apt install lsof;若仍无结果,说明端口可能被Windows侧进程占用——此时需切到PowerShell中执行netstat -ano | findstr :8080,再用tasklist | findstr "PID号"定位Windows进程。
释放被占用的端口
方法一:终止占用进程(推荐用于开发调试)
OpenClaw 自我进化框架一键部署。安装宪法(AGENTS.md)、可进化灵魂(SOUL.md)、心跳系统、PARA三层记忆架构、目标管理,并通过场景化对话引导用户定义 Agent 性格。自动配置 EvoClaw(审批制进化)和 Self-Improving Agent(自主学习)。触发场景:"setup o...
拿到PID后,直接杀掉进程:sudo kill -9 PID号。这一步操作起来很简单,但【务必确认该进程非系统关键服务】,比如杀掉Chrome浏览器的渲染进程不会影响系统,但误杀数据库或SSH守护进程会导致连接中断或数据异常。
方法二:修改OpenClaw端口配置(推荐用于生产环境或长期共存)
编辑application.yml,将server.port改为一个明确未被占用的端口,例如8081或9001。改完保存后无需重启系统,直接重新启动OpenClaw服务即可。
方法三:停用Windows SSH服务(仅限WSL2用户且不需要Windows原生SSH)
在PowerShell(管理员权限)中执行:Stop-Service sshd → Set-Service sshd -StartupType Disabled。这能彻底释放22端口,避免WSL2中OpenClaw或其他服务因端口抢占失败。
验证端口是否已释放并启动服务
第一步:再次运行sudo ss -tuln | grep ':新端口号',确认无任何输出。
第二步:进入OpenClaw服务目录,执行启动命令:./gateway start 或 java -jar openclaw-gateway.jar。
第三步:检查服务日志末尾是否出现Started GatewayApplication in X.XXX seconds字样,同时用curl http://localhost:新端口号/actuator/health返回{"status":"UP"}即表示服务已正常监听。

















