OpenClaw端口占用排查:Gateway Connection Refused的解决指南
问题现象
用户在 Windows 11 上全新安装 OpenClaw 后,完成 onboarding 流程,但在启动 Gateway 时遇到 连接被拒绝 错误:
ERR_CONNECTION_REFUSED
http://127.0.0.1:18789/__openclaw__/canvas/
环境信息:
- OS: Windows 11
- OpenClaw: latest
- Node.js: latest
- 特殊情况:之前安装过 Cladbot
诊断过程
1. 确认 Gateway 状态
# 检查 Gateway 状态 openclaw gateway status # 可能的输出: # ❌ Gateway 未运行 # 或 # ⚠️ Gateway 运行中但端口未监听
2. 检查端口占用
# PowerShell - 查看端口 18789 占用情况 netstat -ano | findstr :18789 # 或 PowerShell 5.0+ 方式 Get-NetTCPConnection -LocalPort 18789 # 查看占用进程 Get-Process -Id (Get-NetTCPConnection -LocalPort 18789).OwningProcess
3. 检查残留进程
由于用户之前安装过 Cladbot,可能存在冲突:
# 查找 OpenClaw/Cladbot 相关进程
Get-Process | Where-Object {$_.ProcessName -match "openclaw|cladbot|node"}
# 查找端口监听
netstat -ano | findstr LISTENING | findstr 18789常见原因
原因 1:端口被占用
症状: Gateway 启动后立即退出
日志: Error: listen EADDRINUSE: address already in use :::18789
解决方案:
# 1. 查找占用进程 netstat -ano | findstr :18789 # 输出: TCP 127.0.0.1:18789 0.0.0.0:0 LISTENING 12345 # ↑ PID # 2. 结束进程 taskkill /PID 12345 /F # 或 PowerShell 方式 Stop-Process -Id 12345 -Force
原因 2:残留配置冲突
Cladbot 和 OpenClaw 可能使用相同的配置目录或环境变量。
解决方案:
# 1. 清理环境变量
[Environment]::SetEnvironmentVariable("CLADBOT_HOME", $null, "User")
[Environment]::SetEnvironmentVariable("OPENCLAW_HOME", $null, "User")
# 2. 清理旧配置(谨慎操作!)
# 备份后删除 Cladbot 配置
Rename-Item -Path "$env:USERPROFILE\.cladbot" -NewName "$env:USERPROFILE\.cladbot.backup"
# 3. 重新初始化 OpenClaw
openclaw onboard原因 3:权限问题
Windows 可能需要管理员权限绑定端口。
解决方案:
# 以管理员身份运行 PowerShell,然后
openclaw gateway restart
# 或修改端口为高位端口(不需要管理员权限)
# 在 openclaw.json 中:
{
"gateway": {
"port": 58789 # ← 改为高位端口
}
}原因 4:防火墙/安全软件
Windows Defender 或其他安全软件可能阻止了 Node.js 的网络访问。
解决方案:
# 1. 检查防火墙规则
Get-NetFirewallRule | Where-Object {$_.DisplayName -like "*node*" -or $_.DisplayName -like "*openclaw*"}
# 2. 添加入站规则(管理员权限)
New-NetFirewallRule -DisplayName "OpenClaw Gateway" -Direction Inbound -LocalPort 18789 -Protocol TCP -Action Allow完整排查流程
1. 检查 Gateway 状态
openclaw gateway status
2. 检查端口占用
netstat -ano | findstr :18789
3. 检查残留进程
Get-Process | ?{$_.Name -match "node|openclaw"}
4. 检查日志
Get-Content ~/.openclaw/logs/gateway.log -Tail 50
5. 尝试手动启动
openclaw gateway start --verbose
6. 检查防火墙
Get-NetFirewallRule | ?{$_.DisplayName -like "*openclaw*"}
解决方案汇总
方案 A:快速修复(推荐先尝试)
# 1. 停止所有相关进程
taskkill /F /IM node.exe 2>$null
# 2. 清理端口
$port = 18789
$process = Get-NetTCPConnection -LocalPort $port -ErrorAction SilentlyContinue
if ($process) {
Stop-Process -Id $process.OwningProcess -Force
Write-Host "已结束占用端口 $port 的进程"
}
# 3. 重启 Gateway
openclaw gateway restart
# 4. 验证
openclaw gateway status方案 B:完全重置
# 1. 停止服务 openclaw gateway stop # 2. 备份配置 Copy-Item -Path "$env:USERPROFILE\.openclaw" -Destination "$env:USERPROFILE\.openclaw.backup.$(Get-Date -Format 'yyyyMMdd')" -Recurse # 3. 清理所有 Node 进程 Get-Process node -ErrorAction SilentlyContinue | Stop-Process -Force # 4. 重新安装 npm uninstall -g openclaw npm install -g openclaw # 5. 重新配置 openclaw onboard
方案 C:更换端口
如果 18789 端口持续被占用:
// ~/.openclaw/openclaw.json
{
"gateway": {
"port": 58789,
"host": "127.0.0.1"
}
}然后:
openclaw gateway restart # 访问: http://127.0.0.1:58789/__openclaw__/canvas/
验证步骤
1. 端口监听验证
# 应该看到 LISTENING 状态 netstat -ano | findstr :18789 # TCP 127.0.0.1:18789 0.0.0.0:0 LISTENING [PID]
2. 服务响应验证
# 测试 HTTP 响应 Invoke-RestMethod -Uri "http://127.0.0.1:18789/__openclaw__/canvas/" -Method GET # 或使用 curl curl http://127.0.0.1:18789/__openclaw__/canvas/
3. 浏览器访问
打开浏览器访问:
- http://127.0.0.1:18789/__openclaw__/canvas/
- 应该看到 OpenClaw Web UI
预防措施
1. 使用固定端口前检查
# 创建启动脚本 check-and-start.ps1
$port = 18789
# 检查端口
$existing = Get-NetTCPConnection -LocalPort $port -ErrorAction SilentlyContinue
if ($existing) {
Write-Host "⚠️ 端口 $port 被占用,尝试释放..."
Stop-Process -Id $existing.OwningProcess -Force
Start-Sleep -Seconds 2
}
# 启动 Gateway
openclaw gateway start2. 配置 Systemd/Windows Service
# 使用 nssm 创建 Windows 服务 nssm install OpenClawGateway "C:\Program Files\nodejs\node.exe" nssm set OpenClawGateway AppDirectory "$env:USERPROFILE" nssm set OpenClawGateway AppParameters "openclaw gateway start" nssm set OpenClawGateway DisplayName "OpenClaw Gateway" nssm start OpenClawGateway
3. 监控脚本
# monitor.ps1
while ($true) {
try {
$response = Invoke-RestMethod -Uri "http://127.0.0.1:18789/health" -TimeoutSec 5
Write-Host "$(Get-Date) ✅ Gateway 运行正常"
} catch {
Write-Host "$(Get-Date) ❌ Gateway 无响应,尝试重启..."
openclaw gateway restart
}
Start-Sleep -Seconds 60
}Windows 环境特殊注意事项
| 问题 | 解决方案 |
| 路径过长 | 使用 `\\?\` 前缀或缩短路径 |
| 权限不足 | 以管理员身份运行 PowerShell |
| 杀毒软件拦截 | 将 OpenClaw 目录加入白名单 |
| WSL 冲突 | 检查 WSL 是否占用了相同端口 |
| 快速启动 | 禁用 Windows 快速启动功能 |
总结
| 问题类型 | 快速解决 |
| 端口被占用 | `taskkill /PID [PID] /F` |
| 残留进程 | `taskkill /F /IM node.exe` |
| 配置冲突 | 备份后删除 `.openclaw` 重新配置 |
| 权限问题 | 以管理员身份运行 |
| 防火墙 | 添加入站规则允许 18789 端口 |
到此这篇关于OpenClaw端口占用排查:Gateway Connection Refused的解决指南的文章就介绍到这了,更多相关OpenClaw端口占用排查内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!
相关文章

OpenClaw Gateway设备Token不匹配问题排查与解决全指南
用户在使用 OpenClaw 2026.2.15 版本时,突然遇到设备Token不匹配的错误,下面小编就和大家详细介绍一下如何排查问题并解决,文中的示例代码讲解详细,感兴趣的小伙伴可以2026-03-13
OpenClaw 树莓派部署终极避坑指南之快速解决OpenClaw Gateway仪表盘登
本文详细介绍了在树莓派上部署OpenClawGateway时遇到的四个核心问题及其解决方案:局域网无法访问、跨域错误、HTTPS安全上下文限制和设备配对验证,通过逐一解决这些问题,您2026-03-13
OpenClaw龙虾安装部署全流程:手把手教你搭建自己的AI助手
OpenClaw 是一个自托管的 AI 网关,它可以把你常用的聊天软件(微信、Telegram、Discord、iMessage…)和一个 AI 助手连接起来,下面小编就和大家详细讲讲如何正确安装部署O2026-03-16
本文详细介绍了如何在腾讯云服务器上安装和配置OpenClaw,使其无需消耗个人Token即可使用Qwen大模型进行文本和视觉任务,安装过程中涉及Node.js环境配置、NVM安装、OpenClaw2026-03-15
OpenClaw推荐在Windows上通过WSL2运行,使用Ubuntu发行版,CLI和Gateway运行在Linux环境中,保持运行时一致性并提高工具链兼容性,WSL2提供完整Linux体验,只需一条命令即可安装2026-03-12
Windows、macOS、Linux三系统本地部署OpenClaw+避坑指南+Docker一键部
本文给大家分享全网最全的OpenClaw安装部署教程,覆盖Windows、macOS、Linux三系统本地部署,并最终提供Docker一键部署方案,感兴趣的朋友一起看看吧2026-03-10
OpenClaw怎么安装到电脑? OpenClaw免费小白安装教程
OpenClaw怎么安装到电脑?本文就为大家带来了使用Cherry Studio一键安装 OpenClaw,操作简单,非常适合零基础小白,需要的朋友一起看看吧2026-03-10









最新评论