安装frp本来以为只是一件小事,但是没想到由于版本不同,文档极为混乱。
所以,这里特地整理一套自己的安装流程,以供参考。
正文
安装流程有很多,我看了很多文档,基本上五花八门,说什么的都有。
有的是手动命令行安装,有的是面板安装,有的是借用第三方的工具,有的是自己搭建的跳板。
但是无论哪一种,只要是折腾到nas这块,我猜大家基本上都是私人性质的事情,所以肯定是放在自己的服务器上更放心一些。
需求分析
我个人算是电影迷,经常会收集一些影片放在电脑上,但是后来随着收藏量的增加,我只能用nas放在老家,方便在外工作时候观看。
我一开始是用第三方的内网穿透来做外部访问的,但是时间久了,可能会遇到如下问题。
- 节点收费过高,而我平时使用率并不高。
- 节点不稳定,有时候带宽波动,访问效果不是很理想。
- 节点提供商会跑路,这个在早期有不少案例,只能自认倒霉,现在好了不少,个人比较推荐樱花FRP
以上三个问题都是之前的经历,考虑到这些不稳定因素,我只能说狗屁如来,不如我自己来。
FRP是什么?
FRP(Fast Reverse Proxy)是一种高性能的反向代理工具,用于将内网服务暴露到公网,通常用于穿透内网限制,实现远程访问。它的核心功能是通过一个公网服务器(FRP 服务端)中转流量,使得外部用户可以访问内网中的设备或服务(如 SSH、Web、游戏服务器等)。
FRP 的核心概念
- 服务端(Server)
- 部署在具有公网 IP 的服务器上(如云服务器)。
- 负责接收外部请求,并将流量转发到内网的客户端。
- 客户端(Client)
- 运行在内网环境中(如家庭 NAS、公司内网电脑)。
- 主动连接服务端,建立隧道,将内网服务映射到公网。
FRP 的典型用途
- 远程访问内网服务,如 SSH、RDP、Web 服务(本地开发的网站)、NAS 管理等。
- 绕过 NAT/防火墙限制,解决运营商封锁端口或没有公网 IP 的问题。
- 游戏联机或私有云服务,将本地游戏服务器或私有云(如 Nextcloud)暴露到公网。
安装准备
硬件上,我们需要有如下物品
- 一台境内服务器,推荐5M以上,国内节点带宽基本都是稳定的,国外节点带宽大多是共享带宽,有时候会很慢
- 一台家用nas,洗白的最好(因为我个人是白群晖)
关于服务器,我个人推荐5Mbps以上,我个人是用腾讯云活动的服务器,
在完成上述准备内容之后,我们就可以开始安装了,大致流程其实很简单。
- 在服务器上安装frps,开放端口,填好配置后,供外部访问
- 在你需要穿透的内网上,安装frpc,填写好配置,供frps使用
- 自行检测确认,外部是否可以访问
服务器上的操作
我想大多数人应该用的都是相对便宜的Linux服务器,很多人在早期会用命令行安装。
但考虑到我们大多数对于命令行使用不熟练,而且很多文档对于命令行的记录都可能有疏忽,进而影响安装。
所以,我们这里可以直接安装一些面板工具来简化操作。
个人这里推荐使用1panel,相对于其他的服务器管理工具,这面板工具轻量好用,不怎么占用资源,而且面板看着更加现代化。
安装管理面板
1 | curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh |
安装FRPS
安装完成之后,我们进入目录/opt/1panel/apps/frps/frps/data/frps.toml
,做一下配置
这里记得,引号不要用中文引号,或者单引号,如果配置上没引号就别写引号,这都是我自己试出来的问题。
如果你安装不上去,可能是你的frps的版本不对,我这里的frps的版本是0.62.1
,后续若是FPRS的版本升级,可能配置会有所修改。
1 | bindAddr = "0.0.0.0" |
上述的配置可以直接复制粘贴进配置项里边。
如果不清楚,我们这里稍微解释一下。
1 | bindAddr = "0.0.0.0" // 所有的服务器都可以配置 |
开放防火墙端口
关于防火墙端口开放,这个我一开始看过不少人要用命令行去操作,但是在现在这个有云服务商的情况下,实际上不需要这么麻烦。
譬如,腾讯云服务器,只需要打卡服务器管理,点击到防火墙选项,简单配置一下即可。
又或者你可以直接用腾讯云提供的小程序:腾讯云助手,这个在手机上就可以直接简单的配置防火墙了。
我们需要做的,就是把上述涉及到的端口都打开。
端口 | 作用 |
---|---|
7000 | frps用来连接本地应用的端口,可以理解为入口 |
7500 | frps的管理界面的端口,可以选择不开,但是这样你就看不到管理界面了 |
8096 | 代理emby的端口,可以理解为,出口 |
本地的操作
我这里是nas,所以直接用nas举例子,
同上,这里我先放一下我的配置。
不过,这里我改动了一下IP,大家不要顺着这个IP去找我的服务器了,为了自己的服务器不被爆破,我得有这点戒心。
1 | serverAddr = "47.156.23.99" |
这里,我们也照例解释一下上述配置的意思,顺便我们扩展一下,如果需要代理多个应用要怎么做。
1 | // 代理服务器的配置 |
访问测试
最后,我们需要进行访问测试:个人的ip地址:端口
,这里我们以上述内容为例子。
1 | 47.156.23.99:8096 |
通常情况,我们应该可以在外部访问到自己的内部应用了。
这里访问速度的快慢,主要取决于我们购买的服务器的上行带宽,所以尽可能选个带宽高点的服务器,这很重要。
如果你要选那种2M带宽左右的垃圾服务器,很大概率会遭罪的,指望那个带宽,大概率看不了影片。
结语
这个安装过程其实并不麻烦,但是市面上靠谱的文档实在是太少了,导致我在安装过程中出了不少问题。
前前后后折腾了大概得有10小时以上,我才把整个流程走通,可以说,糟糕的文档的在安装过程中“功不可没”。
找了好几个文档,靠谱的也就是下边参考中的一份CSDN的博客,真是遭罪。