2026 年自托管 OpenClaw,早已不是「装个全局包就上线」。安全研究与运维实践反复证明:暴露在公网的智能体网关会在极短时间内进入扫描器的视野。稳妥架构只有三句话:进程只监听 127.0.0.1;由反向代理或隧道在边缘终结 TLS 并做访问控制;工作负载跑在不会合盖休眠的机器上——例如带 SSH 的云 Mac mini。本文假设你已完成基础安装,需要把拓扑做成「可长期值班」的形态。
你将获得 nginx 与 Caddy 的对比表、Cloudflare Tunnel(cloudflared) 的推荐接法、如何用 lsof 自查监听地址,以及 openclaw doctor 常见告警的处理思路。文中参数与社区常见实践对齐:Node.js 22 LTS、网关回环绑定、轻量智能体集群至少预留 2 GB 内存余量。
一分钟威胁模型
把任何未鉴权的 HTTP 服务默认视为「上线 24 小时 内会被扫」。若网关监听 0.0.0.0:8787(示例端口),隐蔽性为零。缓解手段是网络位置(回环)、边缘鉴权、限流,以及在可行时的出站白名单。2026 年初多篇行业报告提到大量可被发现的类智能体入口——无论具体数字如何,工程上应采用默认拒绝的暴露策略。
第一步:绑定回环地址
在加反代之前,先确保网关只监听 127.0.0.1。不同版本环境变量名可能不同,不变量是:在公网网卡上出现监听端口之前,不应有任何「无意」的对外服务。启动后在 macOS 执行 lsof -iTCP -sTCP:LISTEN,确认端口挂在 localhost 而非 *。
反向代理:nginx 或 Caddy
两者都能终结 TLS 并注入安全响应头。nginx 在传统运维团队更常见;Caddy 的自动 HTTPS 适合个人与小团队降低证书心智负担。无论选谁,都建议打开 JSON 访问日志并接入集中式分析,便于发现 401 异常潮。
# nginx 示例:反代到本机 OpenClaw
server {
listen 443 ssl;
server_name agent.example.com;
location / {
proxy_pass http://127.0.0.1:8787;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
| 维度 | nginx | Caddy |
|---|---|---|
| 证书 | 常配 Certbot / ACME 旁路 | 内置 ACME |
| 配置风格 | 显式块多 | 文件更短 |
| 团队熟悉度 | 极高 | 上升中 |
用 Cloudflare Tunnel 替代「开端口」
当 Mac mini 位于防火墙策略严格的数据中心时,优先使用 cloudflared:主机无需对公网开放入站 443。隧道进程主动出向连接 Cloudflare;用户访问你在边缘的域名;只有本机的 tunnel 再去连 127.0.0.1:8787。许多 2026 年部署文章推荐此模式,因为它把主机侧攻击面压到极低。请为 Cloudflare 控制台开启强 MFA,并在人员变动时复核隧道权限。
- 在 Mac 上安装
cloudflared。 - 在控制台创建隧道并下载凭据。
- 将公网主机名映射到
http://127.0.0.1:8787。 - 用
launchd托管进程,保证重启后自启。
Docker Compose(可选)
若用 Compose 同时跑网关与 Caddy/Traefik,仍建议端口映射写成 127.0.0.1:8787:8787,避免云厂商控制台误操作把端口全网开放。为浏览器自动化或大上下文场景预算 4 GB 内存;swap 抖动常被误判为「模型变慢」。
上线前检查清单
- 网关仅回环监听,公网 IP 无 wildcard 监听。
- TLS 与对外域名一致;HTTP 重定向到 HTTPS。
- API 密钥走环境变量或密钥库,不进 git。
openclaw doctor无阻塞项;单日志文件建议上限约 100 MB 并轮转。- 配置目录按小时或天备份;每季度做一次整机恢复演练。
常见问题
必须开 UDP 吗?
对典型 HTTPS 入口通常不需要;使用 Tunnel 时边缘 QUIC 不要求你在源站暴露 UDP。
Webhook 接 Slack 要注意什么?
把 URL 当秘密管理,人员离职轮换;若支持签名验签应开启。企业 Slack 可能有地域策略,建议在 MacHTML 同区域做连通性测试。
凭证轮换与审计
在密钥保管库中预备新 API 密钥,通过滚动重启更新进程环境,在至少 15 分钟健康指标稳定后再吊销旧密钥。将审计日志写入具备防篡改能力的存储,并写清保留周期。Runbook 中单独一页记录紧急联系人、回滚命令与 Cloudflare 隧道 UUID 的查询方式,便于凌晨排障。
可观测性与告警
导出网关进程的 CPU、常驻内存与文件描述符数量,并与调用模型的尾延迟关联。对 HTTP 5xx 比例与 401 突增配置阈值告警。压缩保留至少14 天访问日志,便于事后拼凑时间线。若受合规约束,记录谁能修改隧道与 DNS 配置,并对控制台管理员强制 MFA。
与 CI/CD 的衔接
若网关触发构建或部署流水线,应为 webhook 端点配置 IP 允许清单与重放防护。将 staging 与 production 隧道、密钥与主机名隔离,避免测试凭据误连生产。每次变更 nginx 或 Caddy 后跑一遍冒烟脚本,确认 openclaw doctor 仍无告警,并把配置 diff 关联到变更工单编号,便于审计追溯。
在反向代理层可为管理路径单独设置约每秒 10 次的限流与更严格的 TLS 密码套件;静态错误页使用统一模板,避免泄露内部版本号。将 User-Agent 与隧道来源国家写入日志字段,便于区分误配置流量与健康检查探测。
Mac mini M4 在机房场景下具备 Apple Silicon 能效(轻载常低于约 15W 量级)、原生 macOS 自动化钩子兼容性,以及 7×24 稳定性。通过 MacHTML 租用可省去采购与物流,数分钟内获得 SSH/VNC,活动期扩容、实验结束缩容。把回环绑定 + 隧道边缘与专用 Mac 结合,是 2026 年自托管 OpenClaw 最稳妥的叙事之一。持续记录改进项并与值班表联动,比追求一次性完美拓扑更能压缩平均恢复时间。
建议在 MacHTML 提供的 staging 机器上每季度做一次完整演练:清空磁盘、按清单重装 cloudflared 与网关、核对 lsof 输出与隧道仪表板一致;在演练记录中标注参与人员、起止时间与发现的缺口。演练成本远低于真实故障时的业务损失。