通过 IP 地址访问 OpenClaw 的完整实战指南
本文面向已经在服务器上部署了 OpenClaw 并希望直接通过 IP 地址进行访问的运维/开发人员。全流程涵盖防火墙放行、网关监听地址配置、Nginx 反向代理(可选)以及浏览器/CLI 测试方法。
1️⃣ 前置条件
| 项目 | 说明 |
|---|---|
| 操作系统 | 64 位 Linux(Debian/Ubuntu/CentOS) |
| Docker | Docker Engine ≥ 20.10,Docker‑Compose ≥ 2.0 |
| OpenClaw 镜像 | docker.1ms.run/alpine/openclaw:v2026.3.8 |
| 服务器 IP | 公网可达的 IPv4(如 203.0.113.42) |
| 防火墙 | 需要放通 80/443 或 18789(默认网关端口) |
⚠️ 安全提示:直接暴露 OpenClaw gateway 端口会带来风险,建议配合 Nginx 进行 TLS 加密或仅在安全网络内使用。
2️⃣ 配置 OpenClaw 监听所有 IP
默认情况下,OpenClaw gateway 只在本机 127.0.0.1 监听。修改 docker-compose.prod.yml 中的 ports 绑定,使其绑定到 0.0.0.0,或直接使用 - "0.0.0.0:18789:18789"。
services:
openclaw-gateway:
ports:
- "0.0.0.0:18789:18789" # 让外部 IP 可以直接访问
随后重新启动容器:
docker compose -f docker-compose.prod.yml up -d
3️⃣ 放通防火墙端口
如果服务器使用 ufw 防火墙,执行:
sudo ufw allow 18789/tcp # OpenClaw Gateway 端口
# 如需 HTTPS 通过 Nginx 访问 80/443,也一并放行
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
4️⃣ 可选:使用 Nginx 进行反向代理 & TLS 加密
在 /etc/nginx/sites-available/openclaw-ip.conf 新建配置:
server {
listen 443 ssl http2;
server_name 203.0.113.42; # 替换为实际服务器 IP
ssl_certificate /etc/letsencrypt/live/yourdomain/fullchain.pem; # 如有域名可使用 certbot
ssl_certificate_key /etc/letsencrypt/live/yourdomain/privkey.pem;
location / {
proxy_pass http://127.0.0.1:18789;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
启用并重载 Nginx:
sudo ln -s /etc/nginx/sites-available/openclaw-ip.conf /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
5️⃣ 验证访问
- 直接访问:在浏览器打开
http://<SERVER_IP>:18789,应出现 OpenClaw 登录页。 - 通过 Nginx:打开
https://<SERVER_IP>(如果已配置 TLS),同样看到登录页面。 - CLI 测试:使用
curl -I http://<SERVER_IP>:18789/healthz,返回200 OK即表示网关健康。
6️⃣ 常见问题排
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END












暂无评论内容