无公网IP解决方案:OpenClaw内网穿透访问千问3.5-27B

1. 问题背景与挑战

去年我在公司内网部署千问3.5-27B模型时遇到一个典型困境:开发机没有公网IP,但需要让OpenClaw从外部访问这个本地模型。更麻烦的是,公司网络策略禁止直接端口映射,传统DDNS方案完全失效。

这种情况在金融、医疗等行业尤其常见——模型部署在内网GPU服务器,但自动化工具运行在办公网络,两者处于不同安全域。经过两周的反复试验,最终通过内网穿透方案实现了稳定访问。下面分享我的具体实践路径。

2. 技术选型与方案设计

2.1 穿透工具对比

测试了三种主流方案:

  • Ngrok:免费版限制连接数和带宽,TCP隧道需要付费
  • FRP:开源可控,支持自定义中转服务器
  • Cloudflare Tunnel:配置简单但依赖境外网络

最终选择FRP作为核心方案,因其具备:

  1. 自主搭建中转服务器的灵活性
  2. 支持TCP/HTTP双协议穿透
  3. 可配置多级安全验证

2.2 网络拓扑设计

实际部署采用分层架构:

[OpenClaw本地Agent] ←→ [FRP客户端(内网)] ←→ [FRP服务端(云主机)] ←→ [外部调用端]

关键点在于:

  • FRP服务端部署在具有公网IP的云主机(实测1核1G配置足够)
  • 内网服务器仅需出站连接到FRP服务端
  • 所有入站请求通过服务端中转

3. 具体实施步骤

3.1 FRP服务端配置

在云主机(Ubuntu 22.04)上的操作:

# 下载FRP
wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz
tar -zxvf frp_0.52.3_linux_amd64.tar.gz

# 编辑服务端配置
vim frps.ini

关键配置项:

[common]
bind_port = 7000
authentication_method = token
token = your_secure_token_here

启动服务:

./frps -c frps.ini

3.2 内网客户端配置

在模型服务器上的操作:

[common]
server_addr = your_server_ip
server_port = 7000
token = your_secure_token_here

[qwen-api]
type = tcp
local_ip = 127.0.0.1
local_port = 8000
remote_port = 27800

这个配置将内网的8000端口映射到服务端的27800端口。启动客户端:

./frpc -c frpc.ini

3.3 OpenClaw对接配置

修改~/.openclaw/openclaw.json中的模型配置:

{
  "models": {
    "providers": {
      "qwen-remote": {
        "baseUrl": "http://frp_server_ip:27800",
        "apiKey": "your_api_key",
        "api": "openai-completions"
      }
    }
  }
}

4. 安全加固措施

4.1 网络层防护

  • 在云主机安全组设置入站规则,仅开放FRP服务端口(7000)和业务端口(27800)
  • 配置iptables限制源IP访问:
    iptables -A INPUT -p tcp --dport 27800 -s your_office_ip -j ACCEPT
    iptables -A INPUT -p tcp --dport 27800 -j DROP
    

4.2 应用层验证

在FRP服务端启用Token验证的基础上,额外在模型API层添加:

  • Basic Auth认证
  • 请求频率限制(Nginx实现)

5. 实测效果与稳定性

经过一个月生产环境验证:

  • 平均延迟:本地调用12ms → 穿透后89ms
  • 吞吐量:单连接稳定支持15RPS
  • 断线恢复:FRP自动重连机制可在网络波动后10秒内恢复

典型问题处理经验:

  1. MTU问题:公司网络限制MTU为1400,需在FRP客户端添加mtu = 1400参数
  2. 长连接保持:调整tcp_keepalive参数避免NAT超时
  3. 日志排查:FRP客户端日志级别设为debug可定位大部分连接问题

6. 替代方案对比

当无法自主搭建FRP服务端时,可考虑:

  • Ngrok付费版:年费$60,适合临时测试
  • ZeroTier:P2P穿透,但需要安装客户端
  • SSH反向隧道:配置简单但稳定性较差

7. 个人实践建议

这套方案最适合以下场景:

  • 企业内网与办公网隔离环境
  • 需要7×24小时稳定访问
  • 对传输安全有较高要求

如果只是临时测试,建议优先使用Ngrok免费版。但要注意其TCP隧道会随机更换端口,需要在OpenClaw配置中动态更新地址。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐