openclaw gateway无法启动
1. 查看openclaw日志
排查OpenClaw启动问题的第一步,就是查看它的运行日志。通常,我们可以使用一个简单的命令来获取最新的日志信息。
# 日期改成今天
Get-Content "$env:TEMP\openclaw\openclaw-2026-03-04.log" -Tail 20
执行后,你会发现一堆结构化的日志输出,内容大致是这样的:
{"0":"\u001b[38;2;139;127;119mRuntime:\u001b[39m \u001b[38;2;139;127;119munknown\u001b[39m","_meta":{"runtime":"node","runtimeVersion":"24.13.0","hostname":"DESKTOP-DN5UI5T","name":"openclaw","date":"2026-03-04T02:42:55.637Z","logLevelId":3,"logLevelName":"INFO","path":{...}},"time":"2026-03-04T10:42:55.637+08:00"}
{"0":"\u001b[38;2;139;127;119mRPC probe:\u001b[39m \u001b[38;2;226;61;45mfailed\u001b[39m","_meta":{..."logLevelName":"ERROR",...},"time":"2026-03-04T10:42:55.637+08:00"}
{"0":"\u001b[38;2;139;127;119mRPC target:\u001b[39m ws://127.0.0.1:18789","_meta":{..."logLevelName":"ERROR",...},"time":"2026-03-04T10:42:55.638+08:00"}
{"0":"\u001b[38;2;226;61;45mgateway closed (1006 abnormal closure (no close frame)): no close reason\u001b[39m","_meta":{..."logLevelName":"ERROR",...},"time":"2026-03-04T10:42:55.639+08:00"}
{"0":"\u001b[38;2;226;61;45mGateway target: ws://127.0.0.1:18789\u001b[39m","_meta":{..."logLevelName":"ERROR",...},"time":"2026-03-04T10:42:55.639+08:00"}
{"0":"\u001b[38;2;226;61;45mSource: cli --url\u001b[39m","_meta":{..."logLevelName":"ERROR",...},"time":"2026-03-04T10:42:55.640+08:00"}
{"0":"\u001b[38;2;226;61;45mConfig: C:\\Users\\鍙舵櫒\\.openclaw\\openclaw.json\u001b[39m","_meta":{..."logLevelName":"ERROR",...},"time":"2026-03-04T10:42:55.641+08:00"}
...
{"0":"Dashboard URL: http://127.0.0.1:18789/#token=8ed15c38058153803504ec7ca11203d349ecc3e956a1a61f","_meta":{..."logLevelName":"INFO",...},"time":"2026-03-04T10:43:23.693+08:00"}
仔细梳理这些日志条目,问题的根源就变得清晰了。一连串的“RPC probe failed”和“gateway closed”错误,最终指向了一个配置文件的路径:
C:\\Users\\鍙舵櫒\\.openclaw\\openclaw.json。
这“鍙舵櫒”是什么?其实,它正是中文字符在特定环境下产生的乱码。换句话说,问题的核心在于——路径中包含了中文用户名,编译或处理时出现编码错误,直接导致了服务启动失败。
解决办法
遇到这类编码问题,通常有两个比较直接的解决思路:
1. 不要用中文用户名
从根源上避免问题。对于开发环境而言,使用英文用户名可以规避掉大量因路径编码引发的兼容性麻烦。这算是一个一劳永逸的解决方案。
2. 用单独命令行启动
如果暂时无法更改系统用户名,可以尝试绕过包管理器的启动脚本,直接调用Node.js来运行核心文件。这样能在一定程度上控制执行环境。
node "C:\Users\叶晨\AppData\Roaming\npm\node_modules\openclaw\dist\index.js" gateway --port 18789
这个方法相当于手动指定了正确的、未乱码的绝对路径来启动网关服务,绕过了之前因路径解析错误导致的故障点。当然,这只是一个临时的变通方案。