[体验]使用FRP远程连接openclaw

[体验]使用FRP远程连接openclaw

_

之前做过一期FRP的视频,可以看:

注意:本教程面向高级玩家!!


一、架构说明

┌─────────────┐        ┌──────────────────┐        ┌─────────────┐
│   用户访问   │        │   腾讯云副服务器   │        │  openclaw机器    │
│  claw.xxx   │───────▶│  frps + OpenResty │◀───────│    frpc     │
│   .top      │        │   xx.xx.xx.xx    │        │  内网服务    │
└─────────────┘        └──────────────────┘        └─────────────┘
                              │
                              ▼
                        1Panel SSL + Basic Auth

二、服务端配置(frps)

2.1 配置文件路径

/opt/1panel/apps/frps/frps/data/frps.toml

2.2 完整配置

# 基础配置
bindAddr = "0.0.0.0"
bindPort = 7000

# Token 认证(必须)
auth.method = "token"
auth.token = "your-strong-token-here"

# HTTP/HTTPS 虚拟主机端口(用于 subdomain)
vhostHTTPPort = 8080
vhostHTTPSPort = 8443

# 子域名根域名
subdomainHost = "youweb.com"

# Dashboard 管理面板
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "your-dashboard-password"

# TLS 加密(可选,推荐开启)
#transport.tls.force = true

2.3 安全组/防火墙设置

# 开放端口
sudo ufw allow 7000/tcp    # frp 主端口
sudo ufw allow 7500/tcp    # Dashboard(建议仅内网访问)
sudo ufw allow 8080/tcp    # HTTP 虚拟主机
sudo ufw reload

腾讯云控制台 → 安全组 → 添加规则:

  • 入站:7000, 7500, 8080, 8443


三、客户端配置(frpc)

3.1 NAS 上安装 frpc

# 下载对应版本
wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz

# 解压
tar -zxvf frp_0.61.1_linux_amd64.tar.gz
cd frp_0.61.1_linux_amd64

# 移动到固定目录
sudo mkdir -p /opt/frpc
sudo cp frpc /opt/frpc/
sudo cp frpc.toml /opt/frpc/

3.2 配置文件

# frpc.toml
serverAddr = "xx.xx.xx.xx"
serverPort = 7000

# 认证
auth.method = "token"
auth.token = "your-strong-token-here"

# Dashboard(本地管理用)
webServer.addr = "0.0.0.0"
webServer.port = 7400
webServer.user = "admin"
webServer.password = "admin-password"

# ===== SSH 转发 =====
[[proxies]]
name = "nas-ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 2222

# ===== OpenClaw Web 服务(TCP 方式,配合 OpenResty) =====
[[proxies]]
name = "openclaw"
type = "tcp"
localIP = "127.0.0.1"
localPort = 18789
remotePort = 18789

3.3 启动 frpc

# 前台运行
./frpc -c frpc.toml

# 后台运行(systemd 方式)
sudo vim /etc/systemd/system/frpc.service
[Unit]
Description=FRP Client
After=network.target

[Service]
Type=simple
ExecStart=/opt/frpc/frpc -c /opt/frpc/frpc.toml
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
sudo systemctl enable frpc
sudo systemctl start frpc

四、1Panel + OpenResty 配置

4.1 创建反向代理网站

  1. 登录 1Panel → 网站 → 创建网站

  2. 类型选择:反向代理

  3. 主域名:claw.xx.com

  4. 代理地址:http://127.0.0.1:18789

4.2 开启 HTTPS

  1. 进入网站设置 → HTTPS

  2. 选择 Let's Encrypt

  3. 申请证书(自动 DNS 验证或手动验证)

4.3 配置 Basic Auth 认证

  1. 进入 OpenResty 配置 → 配置文件

  2. location / 块中添加:

location / {
    proxy_pass http://127.0.0.1:18789;
    
    # Basic Auth
    auth_basic "Restricted";
    auth_basic_user_file /www/sites/claw.xx.com/.htpasswd;
    
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
  1. 生成密码文件:

sudo apt install apache2-utils
sudo htpasswd -c /www/sites/claw.xx.com/.htpasswd username
# 输入密码

4.4 安全加固建议

层级

措施

传输层

frp Token 认证

传输加密

开启 HTTPS (Let's Encrypt)

访问控制

OpenResty Basic Auth

IP 限制

OpenResty 配置 allow/deny

端口隐藏

SSH 使用非常规端口 (2222)


五、SSH 连接方式

# 通过 frp 穿透连接 NAS
ssh -p 2222 username@xx.xx.xx.xx

六、常见问题排查

问题

原因

解决

i/o timeout

安全组/防火墙未放行

检查 7000 端口

subdomain not supported

frps 未配置 subdomainHost

添加 subdomainHost

type http not supported

frps 未配置 vhostHTTPPort

添加 vhostHTTPPort

start error: port already used

端口冲突

更换 remotePort


七、安全建议

  1. 修改默认端口:不要使用 7000, 7500 等默认端口

  2. 强 Token:使用 16 位以上随机字符串

  3. 限制端口范围:frps 配置 allowPorts

  4. Dashboard 不外放:仅监听 127.0.0.1 或加防火墙规则

  5. SSH 禁用密码登录:使用密钥认证

[部署]openclaw接入钉钉 2026-04-05
[高级]openclaw使用ACP操作Claudecode-飞书版 2026-04-05

评论区