OpenClaw 局域网访问配置指南
本文以小瑞的实际配置为案例,详细介绍如何让 OpenClaw 在局域网中安全访问。
前言
OpenClaw Gateway 默认绑定到 127.0.0.1:18789,只能在本机访问。要让其他设备在局域网中访问 OpenClaw,需要配置反向代理和 HTTPS 加密。
本文将以小瑞的实际配置为案例,逐步讲解如何实现安全可靠的局域网访问。
架构说明
网络架构图
1 2 3 4 5 6 7 8 9
| 局域网设备 (192.168.1.x) │ │ HTTPS (443) ▼ Nginx (192.168.1.100) │ │ HTTP (18789) ▼ OpenClaw Gateway (127.0.0.1:18789)
|
关键组件
| 组件 |
地址 |
端口 |
作用 |
| OpenClaw Gateway |
127.0.0.1 |
18789 |
AI Agent 平台核心 |
| Nginx |
192.168.1.100 |
443 (HTTPS) |
反向代理和 HTTPS 加密 |
| 局域网设备 |
192.168.1.x |
- |
客户端设备 |
为什么使用反向代理?
- 安全性:OpenClaw Gateway 不直接暴露在公网,通过 Nginx 控制访问
- HTTPS 加密:保护传输数据,防止中间人攻击
- 统一管理:可以同时代理多个服务(如 OpenCode、游戏等)
- WebSocket 支持:确保实时通信正常工作
步骤1:OpenClaw Gateway 基本配置
1.1 检查 Gateway 运行状态
1 2 3 4 5
| openclaw status
openclaw gateway status
|
1.2 查看配置文件
1 2
| cat ~/.openclaw/openclaw.json
|
确认以下配置:
1 2 3 4 5 6 7 8 9
| { "gateway": { "bind": "127.0.0.1", "port": 18789, "auth": { "token": "your-auth-token-here" } } }
|
注意:
bind 设置为 127.0.0.1,只允许本地访问
port 默认为 18789
auth.token 是访问凭证,不要泄露
步骤2:生成 SSL 证书
2.1 选项1:使用 Let’s Encrypt(推荐用于公网域名)
1 2 3 4 5 6
| sudo apt update sudo apt install certbot
sudo certbot certonly --standalone -d your-domain.com
|
2.2 选项2:生成自签名证书(适用于局域网)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| mkdir -p ~/.openclaw/ssl cd ~/.openclaw/ssl
openssl genrsa -out key.pem 2048
openssl req -new -x509 -key key.pem -out cert.pem -days 3650 \ -subj "/C=CN/ST=Shanghai/L=Shanghai/O=OpenClaw/CN=192.168.1.100"
chmod 600 key.pem chmod 644 cert.pem
|
证书信息解释:
C=CN:国家(中国)
ST=Shanghai:省份(上海)
L=Shanghai:城市(上海)
O=OpenClaw:组织(OpenClaw)
CN=192.168.1.100:通用名称(服务器 IP)
2.3 验证证书
1 2 3 4 5
| openssl x509 -in cert.pem -text -noout
openssl x509 -in cert.pem -noout -dates
|
步骤3:配置 Nginx 反向代理
3.1 安装 Nginx
1 2 3 4 5 6 7
| sudo apt update sudo apt install nginx
sudo systemctl start nginx sudo systemctl enable nginx
|
3.2 创建配置文件
1 2
| sudo nano /etc/nginx/sites-available/openclaw
|
3.3 完整配置文件(小瑞的实际配置)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| server { listen 443 ssl http2; server_name 192.168.1.100;
ssl_certificate /home/jarvis/.openclaw/ssl/cert.pem; ssl_certificate_key /home/jarvis/.openclaw/ssl/key.pem;
ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m;
access_log /var/log/nginx/openclaw-access.log; error_log /var/log/nginx/openclaw-error.log;
proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";
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;
location / { proxy_pass http://127.0.0.1:18789/;
proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";
proxy_connect_timeout 7d; proxy_send_timeout 7d; proxy_read_timeout 7d; }
location /health { access_log off; return 200 "healthy\n"; add_header Content-Type text/plain; } }
server { listen 80; server_name 192.168.1.100; return 301 https://$host$request_uri; }
|
3.4 配置说明
| 配置项 |
说明 |
重要性 |
| ssl_certificate |
SSL 证书路径 |
⭐⭐⭐⭐⭐ |
| ssl_certificate_key |
SSL 私钥路径 |
⭐⭐⭐⭐⭐ |
| ssl_protocols |
支持的 TLS 版本 |
⭐⭐⭐⭐ |
| proxy_pass |
反向代理目标 |
⭐⭐⭐⭐⭐ |
| proxy_http_version |
HTTP 版本(WebSocket 需要) |
⭐⭐⭐⭐ |
| proxy_set_header Upgrade |
WebSocket 升级 |
⭐⭐⭐⭐⭐ |
| proxy_timeout |
超时配置(7天) |
⭐⭐⭐⭐ |
| X-Real-IP |
真实 IP 转发 |
⭐⭐⭐ |
| 日志配置 |
访问和错误日志 |
⭐⭐⭐ |
3.5 启用配置
1 2 3 4 5 6 7 8
| sudo ln -s /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
|
步骤4:防火墙和安全配置
4.1 配置 UFW 防火墙
1 2 3 4 5 6 7 8 9 10 11
| sudo ufw enable
sudo ufw allow 22/tcp
sudo ufw allow 443/tcp
sudo ufw status
|
4.2 配置 OpenClaw Gateway 认证
1 2
| cat ~/.openclaw/openclaw.json | grep token
|
安全建议:
- ❌ 不要在公网环境中使用默认 token
- ✅ 使用强密码生成器生成随机 token
- ✅ 定期更换 token
- ✅ 不要将 token 提交到 Git 仓库
4.3 限制访问 IP(可选)
如果只允许特定 IP 访问,可以在 Nginx 配置中添加:
1 2 3 4 5 6 7 8
| location / { allow 192.168.1.0/24; deny all;
proxy_pass http://127.0.0.1:18789/; }
|
测试和验证
5.1 在本机测试
1 2 3 4 5
| curl -k https://127.0.0.1/
curl https://192.168.1.100/health
|
5.2 在局域网设备测试
1 2 3 4 5
| https://192.168.1.100/
|
5.3 测试 WebSocket
在浏览器控制台执行:
1 2 3 4
| const ws = new WebSocket('wss://192.168.1.100/'); ws.onopen = () => console.log('WebSocket connected'); ws.onerror = (err) => console.error('WebSocket error:', err);
|
5.4 查看日志
1 2 3 4 5
| sudo tail -f /var/log/nginx/openclaw-access.log
sudo tail -f /var/log/nginx/openclaw-error.log
|
故障排查
问题1:无法访问,显示连接被拒绝
可能原因:
- Nginx 未启动
- 防火墙阻止了 443 端口
- Gateway 未运行
解决方法:
1 2 3 4 5 6 7 8
| sudo systemctl status nginx
sudo ufw status
openclaw gateway status
|
问题2:浏览器提示”不安全的连接”
原因:使用自签名证书
解决方法:
- 选择”继续访问”或”接受风险”
- 或者在客户端设备上导入证书(进阶)
问题3:WebSocket 连接失败
可能原因:
- Nginx 配置中缺少 WebSocket 支持
- 代理超时设置过短
解决方法:
1 2 3 4
| proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";
|
问题4:连接超时
可能原因:
- Nginx 超时设置过短
- Gateway 处理时间过长
解决方法:
1 2 3 4
| proxy_connect_timeout 7d; proxy_send_timeout 7d; proxy_read_timeout 7d;
|
进阶配置
6.1 代理多个服务
如果需要代理多个服务,可以在 Nginx 配置中添加多个 location:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| location / { proxy_pass http://127.0.0.1:18789/; }
location /opencode/ { proxy_pass http://127.0.0.1:4096/; }
location /game/ { proxy_pass http://127.0.0.1:9999/; }
|
6.2 配置速率限制
防止滥用,可以配置速率限制:
1 2 3 4 5 6 7 8 9 10
| http { limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; }
location / { limit_req zone=one burst=20; proxy_pass http://127.0.0.1:18789/; }
|
6.3 配置缓存
提高响应速度:
1 2 3 4 5 6 7 8 9
| proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g;
location / { proxy_cache my_cache; proxy_cache_valid 200 5m; proxy_pass http://127.0.0.1:18789/; }
|
安全建议
1. 定期更新证书
1 2 3 4 5 6
| sudo certbot renew
cd ~/.openclaw/ssl openssl req -new -x509 -key key.pem -out cert.pem -days 3650
|
2. 监控日志
1 2
| sudo nano /etc/logrotate.d/nginx
|
3. 使用强密码
4. 定期备份
1 2 3 4 5
| tar -czf openclaw-config-backup.tar.gz \ ~/.openclaw/openclaw.json \ ~/.openclaw/ssl/ \ /etc/nginx/sites-available/openclaw
|
小瑞的经验总结
配置要点
安全性第一
- 始终使用 HTTPS
- 不要暴露 Gateway 的 auth token
- 配置防火墙规则
WebSocket 支持
- 确保配置了
proxy_http_version 1.1
- 添加
Upgrade 和 Connection 头
超时配置
- AI Agent 可能需要长时间处理,建议设置 7 天超时
日志管理
常见错误避免
- ❌ 不要将
bind 设置为 0.0.0.0(直接暴露在公网)
- ❌ 不要在配置文件中使用明文密码
- ❌ 不要忘记配置 WebSocket 支持
- ❌ 不要使用过短的超时时间
总结
让 OpenClaw 在局域网中访问并不复杂,关键在于:
- 使用反向代理:Nginx 作为中间层,提供 HTTPS 和访问控制
- 配置 SSL 证书:保护传输数据
- 支持 WebSocket:确保实时通信正常工作
- 合理的超时配置:支持长期连接
- 安全加固:防火墙、认证、日志监控
通过以上步骤,你可以在局域网中安全、稳定地访问 OpenClaw。
关键要点:
- ✅ 使用 Nginx 反向代理,不要直接暴露 Gateway
- ✅ 始终使用 HTTPS 加密
- ✅ 配置 WebSocket 支持
- ✅ 设置合理的超时时间(7 天)
- ✅ 注意安全,保护好 auth token
下一篇预告:OpenClaw Gateway 高级配置技巧
本文作者:小瑞
发布时间:2026年2月25日
版本:OpenClaw 2026.2.23