端口被占或防火墙拦截是两类不同问题:端口冲突发生在服务启动前,导致服务无法绑定;防火墙拦截发生在连接建立时,服务已运行但通信被阻断。先用curl -i http://127.0.0.1:18789判断——返回200说明服务正常、问题在防火墙;返回连接失败则优先查杀占用18789端口的进程(如taskkill /f /pid xxx),或改用tcpview工具定位;若为防火墙拦截,需在windows defender中添加openclaw或node.js白名单,或新建入站规则放行18789端口,云服务器还需同步配置安全组及系统防火墙。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

OpenClaw启动后浏览器打不开http://127.0.0.1:18789,既不是代码写错也不是网络断了,而是端口被占或防火墙拦住——这两者常被混为一谈,但实际作用机制完全不同:端口冲突是系统资源层面的抢占,防火墙是通信策略层面的拦截,一个发生在服务启动前,一个发生在连接建立时。
先确认到底是端口冲突还是防火墙拦截
打开终端,执行这条命令:curl -I http://127.0.0.1:18789。
如果返回 HTTP/1.1 200 OK 或类似成功响应,说明服务已启动、端口没被占、本地可通——问题大概率出在防火墙或远程访问配置上。
如果返回 curl: (7) Failed to connect 或直接超时,说明服务根本没起来,此时要优先排查端口是否被其他进程占用,而不是急着改防火墙规则。
快速释放18789端口(Windows)
方法一:用PowerShell查杀占用进程
① 以管理员身份打开PowerShell,运行:netstat -ano | findstr :18789。
② 输出结果中最后一列数字就是PID(进程ID),例如 TCP 127.0.0.1:18789 0.0.0.0:0 LISTENING 12345 → PID是12345。
③ 执行强制终止:taskkill /F /PID 12345。
【注意】若PID对应的是System进程(PID=4),说明是系统保留端口冲突,必须换端口,不能杀。
方法二:用图形化工具辅助定位
本次更新实现飞书插件 npm 独立分发,新增 Ollama 本地模型配置及 openclaw 命令别名。引入 SQLite 持久化队列,支持断点续传。全面集成飞书、钉钉、企业微信及 QQ 官方渠道,优化阿里云百炼模型选择。修复多 Agent 路由、定时任务校验及配对授权等关键问题,提升系统稳定性与兼容性。
下载微软官方工具TCPView,运行后按Port列排序,找到18789那一行,右键→End Process。比命令行更直观,尤其适合不熟悉PID概念的新手。
放行18789端口的防火墙操作
Windows Defender防火墙默认会拦截非白名单程序的入站连接,即使你只打算本地访问,某些安全策略也会触发拦截。
第一步:打开“Windows Defender 防火墙”→“允许应用或功能通过Windows Defender防火墙”。
第二步:点击“更改设置”,向下滚动找到“Node.js”或“openclaw.exe”,勾选“专用”和“公用”网络;如果没有,点“允许其他应用”→浏览到C:\Users\用户名\AppData\Roaming\npm\node_modules\openclaw\bin\openclaw.js(路径可能因安装方式略有差异)→添加。
第三步:若仍不行,直接新建入站规则——选择“端口”→TCP→特定本地端口填18789→允许连接→域/专用/公用全选→命名“OpenClaw Gateway”即可。
云服务器必须做的两件事
阿里云或腾讯云上部署OpenClaw,光开系统防火墙远远不够,必须同步配置安全组。
① 登录云控制台,进入对应ECS或轻量应用服务器实例的“安全组”页。
② 点击“配置规则”→“添加安全组规则”→协议类型选TCP→端口范围填18789/18789→授权对象填0.0.0.0/0(测试阶段)或你的办公IP(生产环境)。
【关键】安全组规则修改后需等待约30秒才生效,期间不要重启服务,否则可能触发状态不一致。
③ Ubuntu系统还需额外执行:sudo ufw allow 18789/tcp;CentOS则用:sudo firewall-cmd --permanent --add-port=18789/tcp && sudo firewall-cmd --reload。









