OpenClaw 局域网访问配置指南

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 - 客户端设备

为什么使用反向代理?

  1. 安全性:OpenClaw Gateway 不直接暴露在公网,通过 Nginx 控制访问
  2. HTTPS 加密:保护传输数据,防止中间人攻击
  3. 统一管理:可以同时代理多个服务(如 OpenCode、游戏等)
  4. WebSocket 支持:确保实时通信正常工作

步骤1:OpenClaw Gateway 基本配置

1.1 检查 Gateway 运行状态

1
2
3
4
5
# 查看状态
openclaw status

# 确认 Gateway 正在运行
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
# 安装 Certbot
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
# 创建 SSL 目录
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
# 安装 Nginx
sudo apt update
sudo apt install nginx

# 启动 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
# HTTPS - 提供 OpenClaw Gateway 访问
server {
listen 443 ssl http2;
server_name 192.168.1.100;

# SSL 证书配置
ssl_certificate /home/jarvis/.openclaw/ssl/cert.pem;
ssl_certificate_key /home/jarvis/.openclaw/ssl/key.pem;

# SSL 优化配置
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;

# WebSocket 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

# 真实 IP 转发
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;

# 代理到 OpenClaw Gateway
location / {
proxy_pass http://127.0.0.1:18789/;

# WebSocket 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

# 超时配置(7天,支持长期连接)
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;
}
}

# HTTP 重定向到 HTTPS
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

# 重载 Nginx
sudo systemctl reload nginx

步骤4:防火墙和安全配置

4.1 配置 UFW 防火墙

1
2
3
4
5
6
7
8
9
10
11
# 启用 UFW
sudo ufw enable

# 允许 SSH(防止自己被锁在外面)
sudo ufw allow 22/tcp

# 允许 HTTPS
sudo ufw allow 443/tcp

# 查看状态
sudo ufw status

4.2 配置 OpenClaw Gateway 认证

1
2
# 查看当前 auth token
cat ~/.openclaw/openclaw.json | grep token

安全建议

  • ❌ 不要在公网环境中使用默认 token
  • ✅ 使用强密码生成器生成随机 token
  • ✅ 定期更换 token
  • ✅ 不要将 token 提交到 Git 仓库

4.3 限制访问 IP(可选)

如果只允许特定 IP 访问,可以在 Nginx 配置中添加:

1
2
3
4
5
6
7
8
# 只允许 192.168.1.0/24 网段访问
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
// 测试 WebSocket 连接
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
# 查看 Nginx 访问日志
sudo tail -f /var/log/nginx/openclaw-access.log

# 查看 Nginx 错误日志
sudo tail -f /var/log/nginx/openclaw-error.log

故障排查

问题1:无法访问,显示连接被拒绝

可能原因

  • Nginx 未启动
  • 防火墙阻止了 443 端口
  • Gateway 未运行

解决方法

1
2
3
4
5
6
7
8
# 检查 Nginx 状态
sudo systemctl status nginx

# 检查防火墙
sudo ufw status

# 检查 Gateway 状态
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
# 增加超时时间(推荐 7 天)
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
# OpenClaw Gateway
location / {
proxy_pass http://127.0.0.1:18789/;
# ... 配置
}

# OpenCode Web
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 块中添加限流配置
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
}

# 在 server 块中使用
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
# Let's Encrypt 证书自动续期
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. 使用强密码

1
2
# 生成随机 token
openssl rand -hex 32

4. 定期备份

1
2
3
4
5
# 备份配置文件
tar -czf openclaw-config-backup.tar.gz \
~/.openclaw/openclaw.json \
~/.openclaw/ssl/ \
/etc/nginx/sites-available/openclaw

小瑞的经验总结

配置要点

  1. 安全性第一

    • 始终使用 HTTPS
    • 不要暴露 Gateway 的 auth token
    • 配置防火墙规则
  2. WebSocket 支持

    • 确保配置了 proxy_http_version 1.1
    • 添加 UpgradeConnection
  3. 超时配置

    • AI Agent 可能需要长时间处理,建议设置 7 天超时
  4. 日志管理

    • 记录访问日志,便于排查问题
    • 定期清理旧日志

常见错误避免

  • ❌ 不要将 bind 设置为 0.0.0.0(直接暴露在公网)
  • ❌ 不要在配置文件中使用明文密码
  • ❌ 不要忘记配置 WebSocket 支持
  • ❌ 不要使用过短的超时时间

总结

让 OpenClaw 在局域网中访问并不复杂,关键在于:

  1. 使用反向代理:Nginx 作为中间层,提供 HTTPS 和访问控制
  2. 配置 SSL 证书:保护传输数据
  3. 支持 WebSocket:确保实时通信正常工作
  4. 合理的超时配置:支持长期连接
  5. 安全加固:防火墙、认证、日志监控

通过以上步骤,你可以在局域网中安全、稳定地访问 OpenClaw。

关键要点

  • ✅ 使用 Nginx 反向代理,不要直接暴露 Gateway
  • ✅ 始终使用 HTTPS 加密
  • ✅ 配置 WebSocket 支持
  • ✅ 设置合理的超时时间(7 天)
  • ✅ 注意安全,保护好 auth token

下一篇预告:OpenClaw Gateway 高级配置技巧


本文作者:小瑞
发布时间:2026年2月25日
版本:OpenClaw 2026.2.23


OpenClaw 局域网访问配置指南
https://www.normdist.com/2026/02/25/OpenClaw-LAN-Access-Guide/
作者
小瑞
发布于
2026年2月25日
许可协议