OpenClaw作为一款常用的Agent工具,其Gateway默认监听18789端口。但随着其使用场景的普及,默认端口带来的安全隐患和使用冲突日益突出。

一、修改OpenClaw默认端口18789的核心好处

很多开发者认为“修改端口只是表面防护”,但结合OpenClaw的使用场景和安全现状,修改默认端口能解决实际痛点,带来多方面实用价值,具体如下:

1. 规避自动化攻击,提升服务安全性(最核心好处)
OpenClaw的默认端口18789已被写入官方文档、GitHub  README及各类教程,成为公开信息。攻击者可通过Masscan、Nmap、Shodan等自动化工具,批量扫描全网开放18789端口的机器,进而利用OpenClaw的高危漏洞(如OpenClaw-PwnKit)获取服务器控制权,窃取敏感数据。

据统计,目前公网暴露的OpenClaw实例已超过33万个,这些实例大多使用默认端口,成为攻击者的“重点目标”。修改端口后,能直接避开90%以上的自动化扫描攻击——因为扫描全端口(1-65535)的成本极高,大多数攻击者只会针对默认端口和常见端口扫描,修改后的不常见端口可让你的服务从攻击者的“雷达”中消失,零成本提升防护等级。

2. 避免端口冲突,保障服务稳定运行
18789虽不是最常用端口,但在多服务部署场景中,极易与其他程序(如Cladbot、自定义服务)发生端口占用冲突,导致OpenClaw Gateway启动失败,出现“gateway connection refused”错误。

尤其是在服务器同时部署MySQL、Redis、Web服务等场景下,端口资源紧张,默认端口冲突概率大幅增加。修改端口后,可自主选择未被占用的端口,彻底解决端口冲突问题,无需终止其他服务,保障OpenClaw服务稳定运行,减少运维排查成本。

3. 适配多实例部署,便于运维管理
在企业或复杂使用场景中,常需要在同一主机部署多个OpenClaw实例(如主机器人与救援机器人隔离部署),此时必须为每个实例配置唯一端口,否则会出现配置竞争、派生端口重叠等问题,导致实例无法正常工作。

修改默认端口后,可根据实例用途(如主实例、测试实例、救援实例)分配不同端口,结合配置文件隔离,实现多实例独立运行、单独管理,同时便于通过端口区分实例用途,提升运维效率,降低管理成本。

4. 降低公网暴露风险,减少不必要的访问压力
OpenClaw默认配置中,18789端口绑定0.0.0.0地址,允许任意外部IP访问,且默认未开启强制身份认证,公网暴露比例高达85%。即使不对外开放服务,默认端口也可能被外部扫描请求骚扰,占用服务器带宽和资源。

修改端口后,配合将gateway.bind设置为loopback(127.0.0.1),可进一步限制外部访问,仅允许本地或指定IP访问,既减少了不必要的网络请求压力,也降低了敏感信息(如API 密钥、聊天记录)泄露的风险,形成“端口隐藏+访问限制”的双重防护。

二、修改方法(永久生效)

1、修改~/.config/systemd/user/openclaw-gateway.service文件

#请使用文本编辑器(如 nano或 vim)打开这个文件。
vim ~/.config/systemd/user/openclaw-gateway.service
 
#在文件中找到这两行,修改指定端口
ExecStart=/usr/bin/node /path/to/openclaw gateway --port 18789
Environment=OPENCLAW_GATEWAY_PORT=18789
#将其中的18789修改为1024-65535之间的非默认端口(如28789),避免与其他服务端口冲突,;同时只修改端口号,不要改动其他任何参数,保存后重启服务。

2、修改OpenClaw 主配置文件~/.openclaw/openclaw.json

#编辑主配置文件
vim ~/.openclaw/openclaw.json
 
#在文件中寻找与网关(gateway)相关的配置部分
{
  "gateway": {
    "bind": "127.0.0.1",
    "port": 18789,    #修改18789为新端口
    // ... 其他配置 ...
  }
}
#将 "port"的值同样修改为新端口(如28789),保存并退出。

3、重启服务

#步骤1:重新加载服务配置:这会告知 systemd 服务单元文件已被修改。
systemctl --user daemon-reload
 
#步骤2:重启OpenClaw 网关服务:
systemctl --user restart openclaw-gateway.service
 
#步骤3:检查服务状态:确认服务是否在新端口上正常运行。
systemctl --user status openclaw-gateway.service
#如果输出中显示 active (running),则表示服务已成功启动
 
#步骤4:检查系统上新服务端口是否正常监听
netstat -antp |grep 28792
tcp        0      0   0.0.0.0:28789         0.0.0.0:*               LISTEN      595680/openclaw-gateway

三、注意事项

修改端口后,若有客户端(如ClawChat、Telegram Bot)连接OpenClaw,需同步更新客户端配置中的端口信息,否则无法正常连接。

选择新端口时,需避开动态端口范围(49152-65535)以外的常见端口,同时避免与服务器上其他服务的端口重复,可通过netstat -tulpn命令查看端口占用情况。

修改端口仅为基础安全防护,不能替代身份认证、漏洞修复等核心安全措施,建议后续配合关闭SSH密码登录、配置Gateway Token认证等操作,进一步提升服务安全性。

总结

修改OpenClaw默认端口18789,是一项“低成本、高收益”的操作——无需复杂开发,5分钟即可完成,却能有效规避自动化攻击、解决端口冲突、适配多实例部署,同时降低公网暴露风险。对于开发者而言,无论是个人使用还是企业部署,修改默认端口都是OpenClaw安全运维的第一步,也是提升服务稳定性的关键操作。
 

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐