FRP内网穿透公网访问本地私有AI问答系统
如果你在本地部署了一套私有AI问答系统(比如通过Ollama+OpenWebUI),想从公司电脑或手机上远程使用,但家庭宽带没有固定公网IP?
FRP(Fast Reverse Proxy)可以帮你把内网服务安全暴露到公网。
本文手把手教你配置FRP,实现公网访问本地私有AI问答系统,零基础也能照做。
准备工作:一台公网服务器和FRP软件
你需要准备:
- 一台有公网IP的云服务器(最低配置1核1G即可,操作系统建议Ubuntu 22.04或CentOS 7+)
- 本地已运行AI问答系统的计算机(Windows / Linux / Mac皆可)
- 在FRP GitHub Releases下载对应系统的压缩包(服务端用linux_amd64,客户端按本地系统选)
假设你的云服务器公网IP为 1.2.3.4,本地AI服务运行在 192.168.1.100:3000(OpenWebUI默认端口)。
第一步:在公网服务器上部署FRP服务端
上传下载好的 frps 二进制文件和 frps.toml 配置文件到服务器(例如放于 /opt/frp/)。
编辑 frps.toml:
bindPort = 7000
# 可选的dashboard,方便监控
dashboardPort = 7500
dashboardUser = "admin"
dashboardPwd = "yourpassword"
启动服务端:
chmod +x /opt/frp/frps
/opt/frp/frps -c /opt/frp/frps.toml &
建议使用 systemd 实现开机自启,配置文件参考:
[Unit]
Description=FRP Server
After=network.target
[Service]
ExecStart=/opt/frp/frps -c /opt/frp/frps.toml
Restart=always
[Install]
WantedBy=multi-user.target
保存到 /etc/systemd/system/frps.service,然后执行 systemctl enable --now frps。
第二步:在本地AI机器上配置FRP客户端
将对应系统的 frpc 和 frpc.toml 放到本地(例如 C:\frp 或 /home/user/frp)。
编辑 frpc.toml:
serverAddr = "1.2.3.4"
serverPort = 7000
[[proxies]]
name = "ai-webui"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3000
remotePort = 8000
注意:如果AI系统提供的是API服务(如Ollama默认11434端口),需将localPort改为实际端口。若需要同时映射API和Web界面,可添加多个[[proxies]]配置。
启动客户端:
# Linux/Mac
./frpc -c ./frpc.toml &
# Windows(在命令行中执行)
frpc.exe -c frpc.toml
同样建议设置为系统服务(Windows可用计划任务或注册表)。
第三步:验证远程访问是否成功
先检查云服务器安全组/防火墙是否放行了 8000 和 7000 端口。
在本地机器上确认AI服务正常运行(访问 http://127.0.0.1:3000)。
从任意外网设备(如手机4G网络)浏览器访问 http://1.2.3.4:8000,如果出现OpenWebUI的登录界面,说明映射成功。
也可以通过命令行快速测试:
curl -I http://1.2.3.4:8000
返回 HTTP 200 则正常。
常见问题与避坑
- 服务端连接被拒绝:检查云服务器安全组入站规则是否开放
7000和8000端口;本地防火墙是否允许frpc出站。 - 客户端频繁断开:在客户端配置中添加
loginFailExit = false,并设置transport.heartbeatInterval和transport.heartbeatTimeout(默认已支持)。推荐使用 systemd 的Restart=always。 - 端口冲突:如果
8000已被占用,更换remotePort为其他值(如8001),并对应修改安全组规则。 - 安全问题:建议仅映射必要的端口,并在服务端启用认证(
auth.method和auth.token),客户端配置相同的auth.token防止未授权代理。
按照上述步骤,你就能通过 FRP 内网穿透实现公网访问本地私有AI问答系统。
如果在配置中遇到其他报错,优先检查日志文件(服务端 frps.log、客户端 frpc.log),多数问题都能在日志中找到线索。