frp是什么
简单来说frp是一个反向代理程序,使你在内网中运行的程序可以暴露在公网环境中提供服务,支持 tcp, udp,http等协议
官方github链接: https://github.com/fatedier/frp
为什么需要frp,不直接使用云服务器
- 云服务器成本: 部分生存沙盒游戏需要较高的硬件配置. 以腾讯云为例,32G内存的服务器一年成本就要7K.换算成私人PC,足够买民用天花板级别的硬件配置了
- 操作系统兼容性问题: 比如你买了centos,又需要ubuntu,debian之类的系统,云服务器需要额外购买实例,否则需要进行虚拟化方向的拓展
2024年硬件价格,云服务器售价参考:




搭建过程
以搭建幻兽帕鲁为例,(本博客也是通过这种搭建的,博客本体部署在nas上)
搭建硬件: 内网机一台,云服务器一台
- 在云服务器启动frps端,配置端口,token等配置
- 在内网机启动frpc端,配置token,服务信息等参数
- 在内网机启动帕鲁服务器
- 愉快畅玩


游玩体验
- 云服务器在上海,直连延迟在30-40ms,用frp方案延迟会翻倍,但是几乎无丢包等表现
- 受限于云服务器4m公网下行带宽,部分操作[新玩家加入,地图内传送,复活]等行为,会触发大流量下发,局内玩家可能会出现卡顿
- 云服务器本身负载良好,cpu和内存无明显增长.

云服务器监控:

内网机监控:


frp同时支持配置web后台实时查看当前系统运行状态

frp工作流程
- server: 实际提供服务的机器, 本例中幻兽帕鲁实际运行的物理机
- client: 用户(浏览器,游戏客户端)
- 云服务器: 固定ip
- frps: 云服务器机器上的进程,提供请求转发
- frpc: server端的进程,负责与云服务器通信

frp的缺点
- 服务延迟翻倍: 流量路径由 client-云服务器 > client-云服务器-frpc, 理论上云服务器跟内网机物理距离越短越好
- 线路带宽为所有环节中的最小值: 比如云服务器公网下行带宽小,只有4M,线路整体流量都无法超过4M, 可以考虑额外购买弹性网卡等服务,腾讯云大概1G-0.8元
- 内网机耗电问题: 不过成本肯定比云服务器划算,尤其是高硬件规格的需求下,低成本甚至可以拿nas来做内网机,目前nas 3块硬盘待机也就30W左右