Frp(Fast Reverse Proxy)是一个用于内网穿透反向代理应用,支持TCP、UDP等多种协议,可以将内网服务通过具有公网IP节点的服务器连接到公网,实际应用于本地服务器、树莓派建站等项目
前言
前几期我们对树莓派进行了简单配置,但是仍没有将其投入到实际应用中。树莓派4b版性能强大,且运行功率较小,已经可以将其当成一个小型服务器使用了。因此本期内容就是为树莓派搭建个私人的Frp内网穿透服务器,以便于在树莓派上完成建站等项目。本次我们采用了64位系统的raspbian,在社区测试中,64位系统虽然功能尚未完善,但是其性能已经超出了官方原版32位系统很多,正合适用来配置小型服务器。
服务器选购
搭建Frp服务器时,一般使用各个大厂的学生机即可,推荐购买轻量应用服务器,1核2GB内存5M带宽的性能足够网站应用使用了,一般各个大厂的学生机每个月都是9块左右。虽然每个月限制1000GB流量,但是一般小型服务器除了音视频推流之外一般也用不完的。
阿里云学生机:https://developer.aliyun.com/plan/grow-up
腾讯云学生机:https://cloud.tencent.com/act/campus?from=12631
华为云学生机:https://developer.huaweicloud.com/campus?productType=KC1_1&timeType=1&domainItemData=
百度云学生机:https://cloud.baidu.com/campaign/campus-2018/index.html?unifrom=eventpage
注:阿里云的学生机取消入口,只能通过各种活动或者类似于开发者成长计划获取“学生机”;
华为云学生机为鲲鹏云,使用arm架构CPU,开发环境不同,请斟酌选择;
百度云学生机带宽较低,看个人选择;
其他厂商可能也有类似活动,本章暂未列出
购买服务器后安装系统等操作可以直接参考服务商文档,本章不再列出
安装&配置Frp
Frp的官方github开源页,里面可以下载到最新版本:https://github.com/fatedier/frp
Linux服务器配置Frp
1、通过ssh连接到服务器
2、先点击上面的链接前往github页面,找到右侧的Release,点击最新的版本,会看到很多个Frp版本
3、确认自己的服务器架构后(一般都是64位x86架构),在合适的版本上右击复制下载链接,一般情况下选择frp_xx.xx.xx_linux_amd64.tar.gz即可
4、在ssh输入 wget 复制的链接
并回车即可开始下载,如:wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz
5、下载完后解压tar -zxvf frp_0.36.2_linux_amd64.tar.gz
(后面为下载的文件名,如不同请自行替换)
6、简化文件夹名称mv frp_0.36.2_linux_amd64 frp
重命名为frp文件夹,并进入文件夹cd frp
7、编辑Frp服务端的配置文件nano frps.ini
(frps为服务端,frpc为客户端),如无特殊需要保持默认配置即可,修改完点击键盘上Ctrl+o保存,再点Ctrl+x退出
8、现在服务端的搭建临近尾声,输入sudo ./frps -c ./frps.ini
即可运行,按下Ctrl+c停止运行
9、在服务器上使用守护进程systemctl:
在/lib/systemd/system文件夹下创建frps.service
Sudo vim frps.service
输入如下内容并保存退出
[Unit]
Description=frp service
After=network.target
[Service]
TimeoutStartSec=30
ExecStart=#frp完整路径#/frps -c #frp完整路径#/frps.ini
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target
示例:
10、启动Frp服务:systemctl start frps
,输入systemctl即可查看进程frps正在运行;
设置frps开机启动:systemctl enable frps
windows系统配置frps
在win可视化界面,操作会变得非常简便
1、在服务器内打开浏览器前往https://github.com/fatedier/frp
下载最新版本,选择amd64版本下载
2、解压后双击打开frps.ini配置文件,修改端口并保存
3、在文件夹地址栏输入cmd并回车,输入frps -c frps.ini
即可运行frp服务器
4、要想设置frps服务器开机启动,只需要在地址栏输入C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
并进入,新建frps.bat并右键进入修改
5、修改bat文件,将以下内容复制进去:路径\frps.exe -c 路径\frps.ini
即可实现开机启动,如:
服务器端口配置
在配置完frps后,仍需要去服务端网页后台的安全组处开放相应端口,如默认端口为7000,安全组需要添加tcp协议的7000端口;同时还需要再添加一个tcp协议的端口,作为映射出来的端口
Frp客户端配置
Linux系统客户端(树莓派为例)
按照前面服务端的方法下载frp到树莓派上并解压,这次将会用到压缩包内的frpc...
由于树莓派是arm架构,且本文使用的是树莓派的64位架构系统,因此在github我们下载frp_x.x.x_linux_arm64.tar.gz
,下载、解压方法同服务端
1、先进入frp文件夹内cd frp
2、配置frpc.ini的相关信息nano frpc.ini
[common]
server_addr = 服务器的公网地址,比如1.1.1.1
server_port = 服务器frp的端口
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22 #22端口在linux里是ssh连接用的,设置为22端口可以通过frp进行远程ssh连接树莓派
remote_port = 6000 #要映射的端口,比如在ssh软件内输入连接 1.1.1.1:6000 即可连接到ssh的22端口
3、保存并退出,输入./frpc -c ./frpc.ini
即可连接到frp服务器
服务端:
客户端:
如果连接超时,请检查:
服务器网页端控制台有没有放行端口、是否服务器有防火墙或者宝塔等面板二次阻拦、配置文件是否一致、服务器时间是否正确
win系统客户端
下载同上,然后解压后修改frpc.ini配置文件并保存
文件夹地址栏输入cmd回车,打开cmd后输入frpc.exe -c frpc.ini
即可
Frp实际应用
Frp到此已经搭建完成了,之后我们就可以挂上frp做一些小项目了...
1、安装宝塔面板建站(64位系统):wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
2、NAS个人网盘:https://shumeipai.nxez.com/2018/11/01/a-raspberry-pi-nas-that-really-look-like-a-nas.html
3、MC游戏服务器(性能较低,联机用,仅java版):https://shumeipai.nxez.com/2013/11/21/how-to-run-low-cost-minecraft-on-a-raspberry-pi-for-block-building-on-the-cheap.html
4、安装远程桌面云办公:https://shumeipai.nxez.com/2013/10/06/windows-remote-desktop-connection-raspberry-pi.html
5、... ...