书接上回,话说我们已经把零Token消耗的OpenClaw安装到了本地电脑上,那下一步呢?给龙虾更大的施展才华的舞台吧,我们再搭建一条专属的“秘密通道”(frp + Nginx)以实现公网访问,是的,就是通过内网穿透和反向代理,打造一个真正属于自己、用完即走、绝无隐性消费的“AI指挥中心”。
下面,我们就来一步步搭建这个通往“龙虾”窝的秘密通道。
一、架构蓝图
这就是我们即将搭建的架构,看一遍就能在脑海里成像:
公网请求流程
│
├─【用户设备】📱 HTTPS 请求
│ │
│ ▼
├─【VPS 云服务器】☁️
│ ├─ Nginx :443 → 处理 HTTPS + 域名绑定
│ ├─ Frps :7000 → 接收隧道连接
│ │
│ ▼ (公网隧道)
│
├─【家中电脑】🏠
│ ├─ Frpc (Docker) → 主动连接 VPS 的 Frps
│ │
│ ▼ (本地 127.0.0.1:3001)
│ │
│ └─ OpenClaw Zero Token (Docker) → AI 核心服务
│
└─ 响应原路返回 ✅
二、动手实践
请确保手边已准备好:
- 本地电脑:已安装了Docker、Docker compose和OpenClaw Zero Token(确保端口3001可访问)。
- VPS(云服务器):一台有公网IP的服务器(Ubuntu/Debian/CentOS均可)。
- 一个域名:并解析到你的VPS公网IP地址(例如:ai.yourdomain.com)。
1、公网“中转站” —— 配置 VPS frps
这是起到连通内外的关键一环,我们在这里首先部署 frps (穿透服务端) 。利用docker compose安装是最一种简单的方式,一键即可拉起服务器端,监听7000端口并等待OpenClaw连接。
(1)创建项目目录及配置文件
# 在 VPS 上新建目录
mkdir -p ~/docker-frps && cd ~/docker-frps
# 创建 docker-compose.yml
cat > docker-compose.yml <<EOF
version: '3.8'
services:
frps:
image: snowdreamtech/frps:latest
container_name: docker-frps
restart: always
volumes:
- ./frps.toml:/frp/frps.toml
networks:
- nginx-network
ports:
- "7000:7000"
networks:
nginx-network:
external: true
EOF
(2)创建 frps 配置文件
cat > frps.toml <<EOF
# 服务端基础配置
bindPort = 7000
# HTTP/HTTPS 虚拟主机端口
vhostHTTPPort = 8080
vhostHTTPSPort = 8443
# 认证配置
auth.token = "your-token"
# Dashboard 面板配置
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "your-password"
# 日志配置
log.level = "info"
log.maxDays = 3
EOF
(3)启动服务
# 启动
docker compose up -d
# 查看日志
docker compose logs -f
# 查看运行状态
docker compose ps
2、公网“前哨站” —— 配置VPS Nginx
这是所有外部访问的第一站,既是入口,也是安全守护者和把关人。
(1)如果VPS没有安装Nginx,可以参阅使用Docker compose安装Nginx教程。
(2)配置 Nginx 反向代理与HTTPS加密,目的让Nginx帮我们处理HTTPS加密请求,然后把流量通过localhost:7000喂给frp隧道,frps随即将流量传递到frpc。我们在Nginx配置文件中增加以下内容:
# ai.yourdomain.com
server {
listen 443 ssl http2;
server_name ai.yourdomain.com;
ssl_certificate_cache max=2;
acme_certificate letsencrypt key=rsa;
ssl_certificate $acme_certificate;
ssl_certificate_key $acme_certificate_key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
# Basic proxy settings
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;
proxy_set_header X-Forwarded-Host $host;
# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Timeout settings
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
# Cache settings
proxy_buffering off;
proxy_cache off;
location / {
proxy_pass http://docker-frps:8080;
}
# Health check
location /health {
proxy_pass $forward_scheme://$server:$port/health;
access_log off;
}
}
启用配置并重启:
docker restart docker-nginx
(3)记得去VPS的防火墙(安全组)里放行 7000 (tcp)、80、443 端口。
(4)虽然通过Nginx和frp已经加密,但建议在OpenClaw前端再加一层 Nginx Basic Auth(用户名密码),防止你的“AI指挥中心”被搜索引擎爬虫撞库,毕竟近28万个暴露实例的教训就在眼前,何况Nginx可以轻松实现安全方面的功能。
3、龙虾“窝点” —— 配置本地电脑 frpc
这里我们只需要让 frpc (frp客户端) 启动,并告诉它连上VPS就可以了。
(1)创建项目目录及配置文件
# 在本地电脑上新建目录
mkdir -p ~/docker-frpc && cd ~/docker-frpc
# 创建 docker-compose.yml
cat > docker-compose.yml <<EOF
version: '3.8'
services:
frpc:
image: snowdreamtech/frpc:latest
container_name: docker-frpc
restart: always
network_mode: host
volumes:
- ./frpc.toml:/etc/frp/frpc.toml:ro
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
EOF
(2)创建 frpc 配置文件
cat > frpc.toml <<EOF
# 你的VPS公网IP和刚才设置的frps端口以及密令
serverAddr = "1.2.3.4"
serverPort = 7000
auth.token = "your-token"
# 定义转发规则
[[proxies]]
name = "openclaw-http"
type = "http"
localIP = "127.0.0.1" # 这里填你的本地机器局域网IP
localPort = 3001 # OpenClaw默认端口
customDomains = ["ai.yourdomain.com"] # 在Nginx中配置的域名
EOF
(3)启动服务
# 启动
docker compose up -d
# 查看日志
docker compose logs -f
# 查看运行状态
docker compose ps
如果各步骤没有报错信息,那么现在打开浏览器,访问https://ai.yourdomain.com应该能看到 OpenClaw 的 Web 界面了。至此,你已经完成了从“公有云租客”到“私有AI地主”的转变。
现在,你可以在地铁上用手机访问家里的“AI指挥中心”了,吩咐“龙虾”帮你整理会议纪要、调试代码,听你号令。而看着账单上显示为“0.00”的Token消耗,那种掌控感,想必要比被“账单刺客”刺痛更踏实些吧。