端口被占或权限不足导致OpenClaw网关启动失败;需释放18789端口、以管理员/Root权限重启、临时修改配置端口,或修复Windows计划任务工作目录。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您尝试启动 OpenClaw 网关,但进程立即退出或提示“EADDRINUSE”“拒绝访问”等错误,则很可能是端口被其他程序占用,或当前用户缺乏必要系统权限。以下是解决此问题的步骤:
一、释放被占用的 18789 端口
OpenClaw 网关默认监听 18789 端口,若该端口已被 Node.js、Python 服务或其他 OpenClaw 实例占用,将导致启动失败并报错 Error: listen EADDRINUSE: address already in use :::18789。
1、在终端中运行命令查询占用端口的进程:
Linux/macOS:lsof -i :18789
Windows:netstat -ano | findstr :18789
2、根据输出结果获取对应进程 PID(进程标识号)。
3、执行强制终止命令:
Linux/macOS:kill -9 <pid></pid>
Windows:taskkill /PID <pid> /F</pid>
4、验证端口是否已空闲:curl -v http://localhost:18789/health,若返回连接拒绝(Connection refused),说明端口已释放。
二、以管理员/Root 权限重启网关服务
OpenClaw 在 Windows 下需写入注册表、读取系统级路径、创建计划任务;在 Linux/macOS 下需绑定低编号端口(如 80/443)或访问受保护目录时,均依赖提升权限。权限不足会导致静默崩溃或“access denied”错误。
1、Windows 用户:右键点击 PowerShell 或 CMD 图标,选择以管理员身份运行,再执行 openclaw gateway start。
2、Linux/macOS 用户:在终端中使用 sudo openclaw gateway start 启动网关。
3、若使用 systemd 托管,确保服务文件中未设置 NoNewPrivileges=true,并确认用户属于 systemd --user 可用范围。
4、启动后立即检查状态:openclaw gateway status,确认输出中 RPC probe: success 且进程 PID 显示为有效数字。
三、绕过端口冲突的临时启动方案
当无法终止占用进程(如生产环境中的关键服务),可临时修改网关监听端口,避免硬性冲突,同时保留全部功能。
1、编辑 .openclaw/openclaw.json 配置文件,在 gateway 节点下添加或修改 "port" 字段:
2、将 "port": 18789 改为未被占用的端口,例如 "port": 18790。
3、保存文件后,执行 openclaw gateway restart 强制重载配置。
4、通过浏览器访问 http://localhost:18790/health 验证响应是否为 {"status":"ok"}。
四、修复 Windows 计划任务权限与工作目录
开机自启失败常因计划任务以非交互式上下文运行,且未指定工作目录,导致网关在 C:\Windows\System32 下启动,无法定位 .openclaw 配置和依赖模块,从而秒退。
1、以管理员身份打开 PowerShell。
2、运行命令查看当前任务配置:schtasks /query /tn "\OpenClaw Gateway" /fo LIST /v,确认 “起始于”字段为空。
3、执行以下命令强制设定工作目录(请将路径替换为您的实际用户路径):schtasks /change /tn "\OpenClaw Gateway" /tr "cmd /c cd /d C:\Users\YourName\.openclaw && C:\Users\YourName\.openclaw\gateway.cmd"
4、再次运行:schtasks /run /tn "\OpenClaw Gateway",观察任务是否持续运行超过 5 秒。


















