问题现象
用户在 Windows 11 上全新安装 OpenClaw 后,完成 onboarding 流程,但在启动 Gateway 时遇到 连接被拒绝 错误:
ERR_CONNECTION_REFUSED
http://127.0.0.1:18789/__openclaw__/canvas/
环境信息:
- OS: Windows 11
OpenClaw Gateway 启动时出现连接被拒绝错误,常见原因为端口 18789 被占用、旧版 Cladbot 残留配置冲突或权限不足。解决方案包括使用 PowerShell 检查并终止占用进程、清理环境变量与配置文件、调整防火墙规则或更换高位端口。通过验证端口监听状态与服务响应可确认修复成功。
用户在 Windows 11 上全新安装 OpenClaw 后,完成 onboarding 流程,但在启动 Gateway 时遇到 连接被拒绝 错误:
ERR_CONNECTION_REFUSED
http://127.0.0.1:18789/__openclaw__/canvas/
环境信息:
# 检查 Gateway 状态
openclaw gateway status
# 可能的输出:
# ❌ Gateway 未运行
# 或
# ⚠️ Gateway 运行中但端口未监听
# PowerShell - 查看端口 18789 占用情况
netstat -ano | findstr :18789
# 或 PowerShell 5.0+ 方式
Get-NetTCPConnection -LocalPort 18789
# 查看占用进程
Get-Process -Id (Get-NetTCPConnection -LocalPort 18789).OwningProcess
由于用户之前安装过 Cladbot,可能存在冲突:
# 查找 OpenClaw/Cladbot 相关进程
Get-Process | Where-Object {$_.ProcessName -match "openclaw|cladbot|node"}
# 查找端口监听
netstat -ano | findstr LISTENING | findstr 18789
症状: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
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
Windows 可能需要管理员权限绑定端口。
解决方案:
# 以管理员身份运行 PowerShell,然后
openclaw gateway restart
# 或修改端口为高位端口(不需要管理员权限)
# 在 openclaw.json 中:
{
"gateway": {
"port": 58789 # ← 改为高位端口
}
}
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. 停止所有相关进程
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
# 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
如果 18789 端口持续被占用:
// ~/.openclaw/openclaw.json
{
"gateway": {
"port": 58789,
"host": "127.0.0.1"
}
}
然后:
openclaw gateway restart
# 访问:http://127.0.0.1:58789/__openclaw__/canvas/
# 应该看到 LISTENING 状态
netstat -ano | findstr :18789
# TCP 127.0.0.1:18789 0.0.0.0:0 LISTENING [PID]
# 测试 HTTP 响应
Invoke-RestMethod -Uri "http://127.0.0.1:18789/__openclaw__/canvas/" -Method GET
# 或使用 curl
curl http://127.0.0.1:18789/__openclaw__/canvas/
打开浏览器访问:
# 创建启动脚本 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 start
# 使用 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
# 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
}
| 问题 | 解决方案 |
|---|---|
| 路径过长 | 使用 \\?\ 前缀或缩短路径 |
| 权限不足 | 以管理员身份运行 PowerShell |
| 杀毒软件拦截 | 将 OpenClaw 目录加入白名单 |
| WSL 冲突 | 检查 WSL 是否占用了相同端口 |
| 快速启动 | 禁用 Windows 快速启动功能 |
| 问题类型 | 快速解决 |
|---|---|
| 端口被占用 | taskkill /PID [PID] /F |
| 残留进程 | taskkill /F /IM node.exe |
| 配置冲突 | 备份后删除 .openclaw 重新配置 |
| 权限问题 | 以管理员身份运行 |
| 防火墙 | 添加入站规则允许 18789 端口 |

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online