在 Linux 生产环境中,出于安全性考虑或为了在同一台机器上运行多个 OpenClaw 实例,我们经常需要修改网关(Gateway)的默认端口(默认:18789)。
如果在安装时选择了 Quick Start 模式,安装程序将不会提示设置端口。此时,仅修改 openclaw.json 配置文件通常无法生效,因为 Systemd 服务配置中的环境变量具有更高的优先级,会覆盖配置文件的设置。
本指南将带你完成完整的端口修改及服务重载流程。
1. 修改 OpenClaw 配置文件
首先,我们需要更新 OpenClaw 的基础配置文件。
方案 A:使用命令行修改(推荐)
直接在终端运行以下命令:
openclaw config set gateway.port 28789
方案 B:手动编辑 JSON 文件
编辑 ~/.openclaw/openclaw.json,修改 gateway 部分:
"gateway": { "port": 28789, "mode": "local", "bind": "loopback", "auth": { "mode": "token", "token": "你的密钥..." } }
2. 关键步骤:修改 Systemd 服务配置
核心痛点: Systemd 的 .service 文件中通常硬编码了环境变量 OPENCLAW_GATEWAY_PORT,必须同步修改此处才能生效。
定位服务文件
该文件通常位于用户目录下:~/.config/systemd/user/openclaw-gateway.service
修改方法
你可以使用 sed 命令一键替换,或者手动编辑:
- • 一键替换(将 18789 替换为 28789):
sed \-i 's/18789/28789/g' \~/.config/systemd/user/openclaw-gateway.service
- • 手动编辑:确保文件中 ExecStart 的参数和 Environment 变量中的端口均已更新。
3. 重载配置并重启服务
修改完 Systemd 文件后,必须告知系统重载配置并重启服务:
# 1. 重新加载用户级 Systemd 守护进程
systemctl --user daemon-reload
# 2. 重启网关服务
systemctl --user restart openclaw-gateway.service
4. 验证修改结果
为了确保万无一失,可以手动执行一次网关重启:
openclaw gateway restart
执行以下命令检查网关是否在新端口正常运行:
openclaw gateway status
重点检查项:
- • SERVICE ENV: 应显示为 OPENCLAW_GATEWAY_PORT=28789
- • LISTENING: 应显示为 127.0.0.1:28789
5. 补充事项与常见问题
- • 防火墙策略:若要允许外部访问新端口,请更新防火墙(如 ufw allow 28789/tcp)。
- • 端口占用检查:如果服务启动失败,请检查新端口是否已被占用:
ss \-tulpn | grep 28789
- • 多实例部署:若运行多个 OpenClaw,请确保每个实例拥有独立的 openclaw.json 路径,并在相应的 Systemd 服务文件中指定正确的配置文件路径。
- • Dashboard 访问:修改后,管理后台地址将变为 http://127.0.0.1:28789/,请及时更新浏览器书签。