0

OpenClaw无公网IP内网穿透部署实战

2026.05.25 | youres | 24次围观

为什么你的OpenClaw需要内网穿透?

\n\n

很多人在本地成功部署OpenClaw后,都会遇到一个现实问题:如何在外网访问家里或公司内网的OpenClaw服务?

\n\n

想象这些场景:

\n
    \n
  • 你在公司部署了OpenClaw,回家想继续调试Agent配置
  • \n
  • 你的OpenClaw运行在NAS或闲置笔记本上,需要在外网随时调用
  • \n
  • 你想让团队成员通过公网访问你内网的OpenClaw服务
  • \n
  • 你需要在外网通过飞书/钉钉机器人调用内网的OpenClaw
  • \n
\n\n

这些场景的核心痛点是:OpenClaw部署在内网,没有公网IP,外部无法直接访问

\n\n

本文基于我实际部署经验,分享3种经过验证的内网穿透方案,从免费到企业级,帮你选择最适合的方案。

\n\n

内网穿透的核心原理(5分钟搞懂)

\n\n

很多人对"内网穿透"有误解,以为需要复杂的网络配置。其实原理很简单:

\n\n
\n[外网设备] → [公网服务器/中转服务] → [内网OpenClaw]\n     ↑                ↑                      ↑\n   你的手机      有公网IP的桥梁        家里没有公网IP的电脑\n
\n\n

核心思路:让内网的设备主动"连接"到公网的桥梁服务器,建立一条加密隧道。外网访问时,流量先到桥梁服务器,再通过隧道转发到内网设备。

\n\n

这就像:你家住在深巷里(内网),快递员找不到(外网访问不了)。你在巷口找个代收点(公网服务器),让快递先寄到代收点,你再去取(建立隧道)。

\n\n

方案对比:3种内网穿透方案深度评测

\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
方案适用场景成本难度稳定性
frp(自建)有公网服务器,追求完全掌控服务器费用⭐⭐⭐⭐⭐⭐⭐⭐
cpolar(第三方)快速验证,不想折腾服务器免费/付费⭐⭐⭐
花生壳(商业)企业场景,需要SLA保障付费⭐⭐⭐⭐
\n\n

我的建议:个人用户先用cpolar免费版验证可行性,确认需求后再考虑frp自建或升级付费方案。

\n\n

实战方案1:frp自建(完全掌控,推荐技术用户)

\n\n

为什么选择frp?

\n\n

frp(fast reverse proxy)是开源的内网穿透工具,也是目前最成熟的方案。优势:

\n
    \n
  • 完全开源免费,代码在GitHub可查
  • \n
  • 性能可控,取决于你的服务器配置
  • \n
  • 支持多种协议,TCP/HTTP/HTTPS都支持
  • \n
  • 配置灵活,可以精细化控制每个隧道的权限
  • \n
\n\n

实际部署步骤(基于我的生产环境)

\n\n

前提条件

\n
    \n
  • 一台有公网IP的服务器(我用的是阿里云ECS,1核1G就够)
  • \n
  • 内网设备已安装OpenClaw(默认端口18789)
  • \n
  • 服务器安全组放行相应端口(我用的7000和18789)
  • \n
\n\n

第一步:在公网服务器安装frp服务端(frps)

\n\n
\n# 下载frp(以Linux为例,版本请访问GitHub获取最新)\nwget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz\n\n# 解压\ntar -zxvf frp_0.61.1_linux_amd64.tar.gz\ncd frp_0.61.1_linux_amd64\n\n# 编辑服务端配置(frps.toml)\nvim frps.toml\n
\n\n

frps.toml 配置内容(我的实际配置)

\n\n
\nbindPort = 7000\nauth.token = "你的安全令牌,建议随机生成"\n\n# Dashboard配置(可选,用于监控)\nwebServer.addr = "0.0.0.0"\nwebServer.port = 7500\nwebServer.user = "admin"\nwebServer.password = "设置强密码"\n
\n\n

第二步:启动frp服务端

\n\n
\n# 前台测试(确认配置无误)\n./frps -c frps.toml\n\n# 后台运行(确认没问题后)\nnohup ./frps -c frps.toml > frps.log 2>&1 &\n\n# 或者配置systemd服务(推荐)\nsudo vim /etc/systemd/system/frps.service\n
\n\n

systemd服务配置

\n\n
\n[Unit]\nDescription=frp server\nAfter=network.target\n\n[Service]\nType=simple\nExecStart=/你的路径/frps -c /你的路径/frps.toml\nRestart=on-failure\nRestartSec=5s\n\n[Install]\nWantedBy=multi-user.target\n
\n\n

然后执行:

\n\n
\nsudo systemctl daemon-reload\nsudo systemctl enable frps\nsudo systemctl start frps\nsudo systemctl status frps  # 确认运行状态\n
\n\n

第三步:在内网设备安装frp客户端(frpc)

\n\n

Windows系统下载对应的frp Windows版本,解压后编辑 frpc.toml

\n\n
\nserverAddr = "你的公网服务器IP"\nserverPort = 7000\nauth.token = "与服务端一致的令牌"\n\n[[proxies]]\nname = "openclaw-web"\ntype = "tcp"\nlocalIP = "127.0.0.1"\nlocalPort = 18789\nremotePort = 18789\n
\n\n

第四步:启动frp客户端

\n\n

PowerShell执行(管理员权限):

\n\n
\n# 测试连接\n.\\frpc.exe -c frpc.toml\n\n# 无报错后,配置为Windows服务(实现开机自启)\n# 下载NSSM工具:https://nssm.cc/download\nnssm install frpc "C:\\frp\\frpc.exe" "-c C:\\frp\\frpc.toml"\nnssm start frpc\n
\n\n

第五步:验证穿透是否成功

\n\n
    \n
  • 外网访问:http://你的公网服务器IP:18789
  • \n
  • 如果能看到OpenClaw登录界面,说明穿透成功
  • \n
  • 检查frp服务端Dashboard:http://你的公网服务器IP:7500
  • \n
\n\n

实战方案2:cpolar第三方服务(5分钟快速验证)

\n\n

如果你没有公网服务器,或者只是想快速验证内网穿透的可行性,cpolar是最简单的选择。

\n\n

cpolar的优势和局限

\n\n

优势

\n
    \n
  • 免费版可用,无需信用卡
  • \n
  • 配置极简,图形化界面
  • \n
  • 自动生成公网域名(虽然每次重启会变)
  • \n
\n\n

局限

\n
    \n
  • 免费版隧道会在24小时后失效
  • \n
  • 域名随机生成,不适合生产环境
  • \n
  • 流量经过第三方服务器,隐私敏感场景慎用
  • \n
\n\n

cpolar配置步骤

\n\n

第一步:注册并下载cpolar

\n\n
    \n
  • 访问 cpolar官网 注册账号
  • \n
  • 下载Windows客户端并安装
  • \n
  • 获取你的认证token(在控制台的Auth页面)
  • \n
\n\n

第二步:配置cpolar隧道

\n\n
\n# 认证cpolar(第一次使用时)\ncpolar authtoken 你的token\n\n# 创建HTTP隧道,映射本地18789端口\ncpolar http 18789\n
\n\n

执行后会显示类似输出:

\n\n
\nForwarding  https://xxxx.cpolar.io -> localhost:18789\n

\n\n

第三步:测试访问

\n\n
    \n
  • 外网访问显示的 https://xxxx.cpolar.io 地址
  • \n
  • 如果看到OpenClaw界面,说明穿透成功
  • \n
\n\n

第四步(可选):配置为Windows服务

\n\n
\n# 配置cpolar为服务(开机自启)\ncpolar service install\n\n# 启动服务\ncpolar service start\n
\n\n

安全加固:穿透后必须做的3件事

\n\n

内网穿透后,你的OpenClaw本质上暴露在了公网上。安全配置不到位,等于把家门向互联网敞开

\n\n

1. 配置OpenClaw的allowedOrigins

\n\n

在OpenClaw的配置文件中,添加公网访问域名到允许列表:

\n\n
\n{\n  "gateway": {\n    "allowedOrigins": [\n      "https://你的域名或cpolar域名",\n      "http://localhost:18789"\n    ]\n  }\n}\n
\n\n

2. 启用HTTPS(生产环境必做)

\n\n

如果使用frp,建议在frp服务端前置Nginx,配置SSL证书:

\n\n
\n# Nginx配置示例\nserver {\n    listen 443 ssl;\n    server_name openclaw.你的域名.com;\n    \n    ssl_certificate /path/to/cert.pem;\n    ssl_certificate_key /path/to/key.pem;\n    \n    location / {\n        proxy_pass http://127.0.0.1:18789;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n    }\n}\n
\n\n

3. 配置访问认证(双层保护)

\n\n

除了OpenClaw自带的认证,建议在frp或Nginx层再加一层HTTP Basic Auth:

\n\n
\n# 安装apache2-utils(用于生成密码文件)\nsudo apt install apache2-utils\n\n# 生成密码文件\nhtpasswd -c /etc/nginx/.htpasswd openclaw_user\n\n# Nginx配置中加入认证\nlocation / {\n    auth_basic "Restricted Access";\n    auth_basic_user_file /etc/nginx/.htpasswd;\n    proxy_pass http://127.0.0.1:18789;\n}\n
\n\n

常见问题排查(我踩过的坑)

\n\n

问题1:frp客户端连接服务端失败

\n\n

现象login to server failed: EOF

\n\n

原因

\n
    \n
  • 防火墙未放行7000端口
  • \n
  • token配置不一致
  • \n
  • 服务端未正常启动
  • \n
\n\n

解决方案

\n
\n# 检查服务端状态\nsudo systemctl status frps\n\n# 检查端口监听\nsudo netstat -tulpn | grep 7000\n\n# 检查防火墙(阿里云还需检查安全组)\nsudo ufw status\nsudo ufw allow 7000/tcp\n
\n\n

问题2:穿透成功但访问超时

\n\n

现象:frp显示隧道建立成功,但浏览器访问超时

\n\n

原因:通常是localIP配置错误。如果OpenClaw运行在WSL2里,127.0.0.1可能指向错误。

\n\n

解决方案

\n
\n# 查看WSL2的实际IP\nwsl hostname -I\n\n# 修改frpc.toml中的localIP为WSL2的IP\nlocalIP = "172.x.x.x"\n
\n\n

问题3:cpolar免费版隧道频繁失效

\n\n

现象:每天都需要重新创建隧道,域名变化

\n\n

解决方案:升级cpolar付费版(保留固定域名),或者切换到frp自建方案。

\n\n

性能优化:让穿透后的OpenClaw更流畅

\n\n

内网穿透会引入额外的网络延迟。以下是我在实际部署中总结的优化技巧:

\n\n

1. 选择合适的服务器地域

\n\n

如果你的OpenClaw在上海,frp服务器选在上海或邻近区域,延迟可以降低20-40ms。

\n\n

2. 启用frp的压缩和加密

\n\n

frpc.toml中:

\n\n
\n[[proxies]]\nname = "openclaw-web"\ntype = "tcp"\nlocalIP = "127.0.0.1"\nlocalPort = 18789\nremotePort = 18789\nuseCompression = true\nuseEncryption = true\n
\n\n

3. 调整OpenClaw的超时配置

\n\n

穿透后的网络不稳定,建议适当增加超时时间:

\n\n
\n{\n  "gateway": {\n    "timeout": 60000\n  }\n}\n
\n\n

总结与建议

\n\n

经过上述配置,你的OpenClaw已经可以在公网安全访问了。回顾一下关键要点:

\n\n
    \n
  • 个人用户:先用cpolar免费版快速验证,确认需求后再考虑长期方案
  • \n
  • 技术用户:frp自建是最优选择,完全掌控,成本低
  • \n
  • 企业用户:考虑商业方案(花生壳/神卓互联),有SLA保障
  • \n
  • 安全永远是第一位的:HTTPS、访问认证、allowedOrigins,一个都不能少
  • \n
\n\n

内网穿透只是手段,核心目标是让你的OpenClaw真正成为"随时随地可及的私人AI助手"。

\n\n

如果你在配置过程中遇到问题,或者有更好的优化方案,欢迎在评论区交流。

\n\n
\n\n

相关阅读

\n\n\n

本文基于作者实际部署经验撰写,所有配置都在生产环境验证通过。转载请注明出处。

\n
版权声明

本文仅代表个人观点。
本文系AI辅助作者原创,未经许可,转载请保留原文链接。

发表评论