必须先确认占用进程再修改端口:第一步查默认端口(如grep -n "port" /etc/openclaw/config.yaml),第二步用ss -tulnp | grep ':端口号'定位pid及程序,第三步评估是否可终止;随后改配置文件或启动参数切换端口,并检查空闲、开放防火墙、重启服务且curl验证。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

OpenClaw端口冲突时无法启动服务,必须手动修改其监听端口才能正常运行。这不是改个配置重启就能解决的小问题——端口被占用会导致服务直接失败退出,连日志都来不及输出,你得先确认冲突来源,再安全替换端口,否则改完照样起不来。
确认哪个进程占用了OpenClaw默认端口
第一步:查清当前被占的到底是哪个端口。OpenClaw默认端口不是固定写死的,不同版本可能设为8080、9000或8888,先看它的启动脚本或配置文件里明确写的端口号。常见位置是/etc/openclaw/config.yaml或/opt/openclaw/conf/server.conf,用grep -n "port\|listen" /etc/openclaw/config.yaml快速定位。
第二步:用系统命令验证该端口是否真被占。假设查到默认是9000,则执行:sudo ss -tulnp | grep ':9000'。如果有输出,最末列会显示pid/program,比如1234/nginx——说明nginx正占着,不是OpenClaw自己没释放。
第三步:别急着杀进程。如果占用者是关键服务(如Nginx、Apache、Docker容器),强行kill可能引发业务中断。【必须先评估该进程是否可停】。如果是测试环境里的残留Python调试进程(如python3 -m http.server 9000),可以直接kill -9 1234清理。
修改OpenClaw服务端口的两种方法
方法一:改配置文件(推荐,适用于有完整配置目录的部署)
打开主配置文件,路径通常是/etc/openclaw/config.yaml或/opt/openclaw/conf/app.properties。找到server.port或http.port字段,把值从9000改成未被占用的端口,比如9001。注意:YAML格式对缩进敏感,改完要检查前后空格是否一致,否则服务拒绝启动。
本次更新实现飞书插件 npm 独立分发,新增 Ollama 本地模型配置及 openclaw 命令别名。引入 SQLite 持久化队列,支持断点续传。全面集成飞书、钉钉、企业微信及 QQ 官方渠道,优化阿里云百炼模型选择。修复多 Agent 路由、定时任务校验及配对授权等关键问题,提升系统稳定性与兼容性。
方法二:启动时传参覆盖(适合容器或临时调试)
如果OpenClaw是Java应用,启动命令类似java -jar openclaw.jar,直接加参数:java -jar openclaw.jar --server.port=9001。如果是Go二进制,常见参数是--port=9001或-p 9001,具体看./openclaw --help输出。这招不用改任何文件,但每次启动都得带上,不适合systemd托管场景。
改完端口后必须做的三件事
① 检查新端口是否空闲:执行sudo ss -tuln | grep ':9001',确认无输出才安全。
② 更新防火墙规则:Ubuntu用sudo ufw allow 9001;CentOS/RHEL用sudo firewall-cmd --permanent --add-port=9001/tcp && sudo firewall-cmd --reload。云服务器还得去控制台的安全组里手动放行——这步漏掉,外网永远连不上。
③ 重启OpenClaw服务:sudo systemctl restart openclaw(如果用systemd管理),或直接杀掉原进程再执行新启动命令。重启后立刻验证:curl -I http://localhost:9001/health,返回HTTP 200才算真正生效。









