端口18789被占用时,OpenClaw无法启动网关或控制面板。以下是系统性的解决方案,按推荐优先级排序:

 解决方案总览

首选方案:更改OpenClaw端口(最安全)
备选方案:释放被占用的端口(需谨慎)

 方案一:更改OpenClaw端口(推荐)

这是最安全、最简单的解决方案,无需终止其他进程。

步骤1:临时更改端口(立即生效)

  1. # 启动网关时指定新端口
  2. openclaw gateway start --port 18790
  3. # 或启动控制面板时指定
  4. openclaw dashboard --port 18791

步骤2:永久更改端口(一劳永逸)

  1. 打开OpenClaw配置文件:

    1. notepad "$HOME\.openclaw\config.yaml"

    或手动定位到:C:\Users\你的用户名\.openclaw\config.yaml

  2. 修改端口配置:

    1. gateway:
    2. port: 18790 # 改为其他端口,如18790、18799、18800等
    3. dashboard:
    4. port: 18791 # 控制面板端口也可单独设置
  3. 保存文件并重启服务:

    1. openclaw gateway restart

推荐端口范围

  • 18790-18799:OpenClaw备用端口段
  • 30000-40000:用户应用程序常用端口
  • 避免使用:80、443、8080、3306等常见服务端口

 方案二:排查并释放端口18789

如果必须使用18789端口,先查明占用原因。

步骤1:查找占用进程

管理员身份运行PowerShell:

  1. # 方法1:使用netstat
  2. netstat -ano | findstr :18789
  3. # 方法2:使用Get-NetTCPConnection(PowerShell 5.1+)
  4. Get-NetTCPConnection -LocalPort 18789 | Select-Object LocalAddress,LocalPort,OwningProcess

步骤2:识别进程

根据上一步得到的PID(进程ID),查找对应程序:

  1. # 根据PID查找进程名
  2. tasklist | findstr "PID号"
  3. # 或使用PowerShell命令
  4. Get-Process -Id PID | Select-Object ProcessName,Path

步骤3:常见占用原因及处理

占用进程 可能原因 解决方案
OpenClaw自身 服务未正常关闭 openclaw gateway stop 或重启系统
node.exe 其他Node.js应用 终止该进程或更改其端口
python.exe Python应用占用 检查是否有Python服务使用该端口
System 系统保留端口 只能更改OpenClaw端口
未知进程 恶意软件可能 使用杀毒软件扫描

步骤4:安全释放端口

  1. # 方法A:通过任务管理器
  2. 1. Ctrl+Shift+Esc 打开任务管理器
  3. 2. 点击"详细信息"标签
  4. 3. 找到对应PID的进程
  5. 4. 右键 "结束任务"
  6. # 方法B:命令行终止
  7. taskkill /PID PID /F

警告:确保终止的是非关键进程,避免影响系统稳定性。

 方案三:预防性配置

1. 设置端口自动检测

在配置文件中启用端口自动选择:

  1. gateway:
  2. port: auto # 自动选择可用端口
  3. port_range: [18780, 18800] # 搜索范围

2. 使用端口映射

如果18789必须保留,可以使用端口转发:

  1. # Windows端口转发(需要管理员权限)
  2. netsh interface portproxy add v4tov4 listenport=18789 listenaddress=0.0.0.0 connectport=18790 connectaddress=127.0.0.1

3. 检查防火墙设置

确保端口未被防火墙阻止:

  1. # 查看防火墙规则
  2. netsh advfirewall firewall show rule name=all | findstr "18789"
  3. # 添加防火墙规则(如果需要)
  4. netsh advfirewall firewall add rule name="OpenClaw" dir=in action=allow protocol=TCP localport=18790

 快速决策指南

  1. graph TD
  2. A[端口18789被占用] --> B{是否必须用18789?}
  3. B -->|否| C[方案一: 更改OpenClaw端口]
  4. B -->|是| D[方案二: 排查占用进程]
  5. D --> E{占用进程类型}
  6. E --> F[OpenClaw自身] --> G[重启服务或系统]
  7. E --> H[其他已知应用] --> I[终止或改其端口]
  8. E --> J[系统/未知进程] --> K[只能改OpenClaw端口]
  9. C --> L[成功解决]
  10. G --> L
  11. I --> L
  12. K --> L

 重要提醒

  1. 不要随意终止系统进程,可能导致系统不稳定
  2. 更改端口后,访问控制面板的URL变为:http://localhost:新端口
  3. 多实例运行时,每个实例需使用不同端口
  4. 生产环境建议使用方案一,避免端口冲突

 验证解决

解决后验证:

  1. # 检查新端口是否监听
  2. netstat -ano | findstr :新端口号
  3. # 启动OpenClaw
  4. openclaw gateway start
  5. # 访问控制面板
  6. start http://localhost:新端口号

推荐直接采用方案一,这是最安全、最稳定的解决方案,通常能在1分钟内解决问题。

© 本文著作权归作者所有。转载请联系授权,禁止商用。

🔗 系列文章

1. openclaw能做什么?

2. openclaw会不会窃取我电脑上的私密信息?

3. openclaw的沙盒模式是什么?

4. Windows环境下如何正确安装OpenClaw?

5. 安装后提示"command not found"怎么办?

6. Node.js版本要求是什么?为什么推荐22版本?

7. 端口18789被占用如何处理?

8. 如何配置飞书/钉钉等国内聊天平台?

9. 配对码(Pairing)是什么?如何批准连接?

10. 如何切换AI模型提供商?

11. 联网搜索功能如何配置?

12. OpenClaw的记忆功能为什么"不会记住对话"?​

13. 如何安装和管理Skills(技能)?​

14. 定时任务(Cron Jobs)如何设置?

15. 浏览器自动化能做什么?具体如何操作?

16. 如何防范提示词注入(Prompt Injection)攻击?

17. 如何识别和避免恶意Skills?

18. 使用OpenClaw每月需要多少费用?

19. 如何控制Token消耗成本?

20. Gateway服务启动失败如何排查?

21. 遇到"HTTP 401: invalid access token"等错误怎么办?