FRP多隧道分流AI中转、NAS存储、站点后台访问
FRP多隧道分流,就是在一台有公网IP的服务器上运行FRP服务端,再用内网一台机器上的FRP客户端,把AI中转服务、NAS存储管理界面、站点后台分别映射到公网的不同端口或域名。
这样你只需要维护一个客户端进程,就能同时让三个内网服务被外网访问,彼此之间互不干扰。
本文会从准备条件、服务端配置、客户端配置、常见报错到验证方法,带你完整走一遍。
配置前先确认三件事
第一,准备一台有公网IP的服务器(VPS或云主机),用来运行FRP服务端,并放行需要用到的端口。
第二,准备一台内网机器运行FRP客户端,这台机器通常就是你的NAS、AI中转服务器或站点所在主机。
如果三个服务不在同一台机器,需要在客户端配置里用对应的局域网IP。
第三,规划好端口。
例如:
- AI中转服务:内网端口
8080,映射到公网8081 - NAS存储管理界面:内网端口
5000,映射到公网8082 - 站点后台:内网端口
8888,映射到公网8083
端口可以按需调整,但公网端口尽量不要用默认端口,避免被扫描。
服务端配置:让 frps 支持多隧道
服务端只需要一个 frps.ini 文件。
FRP 本身支持多个隧道,不需要额外开启什么开关,只要在 [common] 里设置好连接端口和认证信息即可。
[common]
bind_port = 7000
token = 你的自定义密码
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin123
其中 bind_port 是FRP客户端连接服务端的端口,token 用来校验客户端身份。dashboard_port 是可视化监控面板,方便你看到每条隧道的连接状态。
把配置保存后,在服务端执行:
./frps -c frps.ini
如果看到 start frps success 类似提示,说明服务端启动正常。
注意在云服务器控制台和安全组里放行 7000、7500 以及待会要用的 8081、8082、8083 端口。
客户端配置:AI中转、NAS存储、站点后台各走一条隧道
客户端配置文件 frpc.ini 的核心思路是:在 [common] 里指定服务端地址和 token,再为每个内网服务单独写一段代理配置。
下面是一份可直接参考的示例。
[common]
server_addr = 你的服务器公网IP
server_port = 7000
token = 你的自定义密码
[ai-relay]
type = tcp
local_ip = 127.0.0.1
local_port = 8080
remote_port = 8081
[nas-web]
type = tcp
local_ip = 192.168.1.100
local_port = 5000
remote_port = 8082
[site-admin]
type = tcp
local_ip = 127.0.0.1
local_port = 8888
remote_port = 8083
[ai-relay]对应AI中转服务,本地监听127.0.0.1:8080,公网访问服务器IP:8081。[nas-web]对应NAS存储管理界面,如果你的NAS在另一台机器上,local_ip填NAS的局域网地址,比如192.168.1.100。[site-admin]对应站点后台,这里假设后台运行在同一台客户端的8888端口。
保存后启动客户端:
./frpc -c frpc.ini
看到 start frpc success 并且日志中三个代理都显示 start proxy success,说明三条隧道已经建立。
启动顺序、防火墙与高频报错避坑
实际部署时,最容易踩的坑有四个:
端口被占用
如果 remote_port 在服务端已经被其他程序占用,FRP会直接报错。
先用 netstat -tlnp | grep 8081 检查公网端口是否空闲,或者换个端口重试。
token不一致
服务端和客户端的 token 必须完全一致,否则客户端会提示 auth token error。
注意不要有多余空格。
防火墙没有放行
即使FRP启动正常,如果云服务商安全组没有放行对应端口,外部依然无法访问。
重点检查安全组和系统防火墙,例如:
firewall-cmd --list-ports
服务端和客户端版本差距过大
FRP新旧版本协议可能不兼容。
建议服务端和客户端使用同一版本,或者至少保持大版本一致。
另外,如果三个内网服务不在同一台机器上,客户端配置中 local_ip 不能都写 127.0.0.1,要改成对应服务的局域网IP,否则会出现连接拒绝。
验证分流是否生效:日志与访问测试
配置完成后,按下面两步验证。
先看服务端日志。
在服务端终端执行:
./frps -c frps.ini
客户端连接后,会看到类似这样的输出:
[ai-relay] tcp proxy listen port [8081]
[nas-web] tcp proxy listen port [8082]
[site-admin] tcp proxy listen port [8083]
三条代理都监听成功,说明多隧道分流已经建立。
然后从外网分别访问:
http://服务器IP:8081应该进入AI中转服务界面http://服务器IP:8082应该打开NAS存储管理登录页http://服务器IP:8083应该看到站点后台入口
如果某个服务打不开,优先检查该服务本身是否在监听,以及 local_ip、local_port 是否填写正确。
你也可以在客户端执行 ./frpc status 查看每条隧道的实时状态。
如果你正在处理 FRP多隧道分流AI中转、NAS存储、站点后台访问,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑部分,通常都能找到原因。