FRP多隧道分流访问AI网关与站点后台管理的完整配置指南
FRP多隧道分流访问AI网关与站点后台管理,本质上是在同一台内网服务器上同时建立多个FRP代理通道,让AI网关和站点后台管理分别通过不同域名或端口对外提供服务。
本文面向零基础用户,从服务端、客户端配置到验证排错,提供一套可直接照做的操作流程。
为什么需要把AI网关和后台管理分开隧道
很多用户会把AI网关(比如中转API服务)和站点后台管理系统部署在同一台内网机器上。
如果所有服务都走同一个代理,容易出现入口混乱、端口冲突,甚至后台管理被外部随意访问的问题。
使用FRP多隧道分流后,可以达到三个效果:AI网关对外提供HTTP服务,站点后台管理也走HTTP,但两者绑定不同域名;
公网服务器只开放一个FRP端口和HTTP入口,内部服务不直接暴露;
后台管理可以通过额外访问控制限制来源IP或使用更复杂路径。
开始前需要准备什么
实际操作前先确认以下条件,避免中途卡壳:
- 一台有公网IP的云服务器,用于运行FRP服务端,建议系统为CentOS 7+或Ubuntu 20.04+。
- 一台内网服务器,运行AI网关和站点后台管理,能访问公网。
- 两个域名(如
ai.example.com和admin.example.com),并解析到公网服务器IP;如果不想用域名,也可以用不同端口分流。 - FRP最新版安装包,服务端和客户端版本尽量保持一致,避免协议不兼容。
第一步:配置FRP服务端(公网服务器)
登录公网服务器,下载对应架构的FRP压缩包并解压。
新版FRP使用 frps.toml 作为配置文件,下面是一份适合多隧道分流的服务端配置:
# frps.toml
bindPort = 7000 # FRP通信端口
auth.method = "token"
auth.token = "your-strong-token"
# 开启HTTP虚拟端口,用于域名方式访问
type = "http"
vhostHTTPPort = 8080
# 如需要查看面板,可单独配置,但生产环境建议关闭
webServer.addr = "127.0.0.1"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin123"
保存后启动:
./frps -c frps.toml
注意在云安全组和系统防火墙中放行 7000 和 8080 端口。
如果使用systemd管理,可参考官方文档。
第二步:配置FRP客户端(内网服务器)
在内网服务器上解压FRP,编辑 frpc.toml,核心是定义两个代理隧道。
假设AI网关本地监听 8081,站点后台管理监听 8082。
# frpc.toml
serverAddr = "你的公网服务器IP"
serverPort = 7000
auth.token = "your-strong-token"
[[proxies]]
name = "ai-gateway"
type = "http"
localIP = "127.0.0.1"
localPort = 8081
customDomains = ["ai.example.com"] # 注意域名必须解析到公网服务器
[[proxies]]
name = "admin-site"
type = "http"
localIP = "127.0.0.1"
localPort = 8082
customDomains = ["admin.example.com"]
启动客户端:
./frpc -c frpc.toml
看到类似 start proxy success 的日志,说明隧道已经建立。
此时通过 http://ai.example.com:8080 访问AI网关,通过 http://admin.example.com:8080 访问站点后台。
如果你不想用域名,也可以把两个代理都设为 tcp 类型,分别使用 remotePort = 9001 和 9002,访问时用不同端口区分。
第三步:多隧道分流避坑指南
实际部署中,以下问题最容易出现,建议提前规避:
- Token不一致:服务端和客户端的
token必须完全一致,否则连接会被拒绝,日志中会出现auth相关报错。 - 端口冲突:
bindPort、vhostHTTPPort、remotePort都不能与其他进程重复。用netstat -tlnp检查端口占用。 - 域名解析未生效:域名必须解析到公网服务器IP,否则无法通过域名访问。测试可用
ping或dig。 - 后台应用不认Host头:某些站后台系统需要绑定域名,否则返回 502 或跳转异常。此时要在站点配置中把
admin.example.com加入允许的服务器名,或在反向代理层传递正确的Host头。 - 服务端和客户端版本跨度大:建议都从官方GitHub下载同一版本,减少兼容性问题。
第四步:验证分流是否生效
启动服务后,从外网分别访问两个地址,确认AI网关和站点后台互不干扰。
还可以在客户端查看实时日志,确认两个代理都处于成功状态:
./frpc -c frpc.toml
正常会输出:
2025/xx/xx 12:00:01 [I] [proxy/manager.go] start proxy success, name [ai-gateway]
2025/xx/xx 12:00:01 [I] [proxy/manager.go] start proxy success, name [admin-site]
如果只想让后台管理更安全,可以在 admin-site 代理中增加 metadatas 或配合公网服务器防火墙,仅允许公司IP访问 admin.example.com。
这样既保留AI网关的开放能力,又把后台管理保护起来。
如果你正在处理FRP多隧道分流访问AI网关与站点后台管理,建议先按本文步骤完整执行,再根据自己的环境做微调。
遇到异常时优先检查配置文件中的端口、域名和Token,多数问题都能在这三处解决。