用云服务器搭建自己的Frp服务

树莓派 · 2021-04-03 · 387 人浏览

Frp(Fast Reverse Proxy)是一个用于内网穿透反向代理应用,支持TCP、UDP等多种协议,可以将内网服务通过具有公网IP节点的服务器连接到公网,实际应用于本地服务器、树莓派建站等项目
77548-p3tu90g232.png

前言

前几期我们对树莓派进行了简单配置,但是仍没有将其投入到实际应用中。树莓派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版本
28538-depjpszrxdl.png

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退出
47178-ulfoi0kbko.png

8、现在服务端的搭建临近尾声,输入sudo ./frps -c ./frps.ini即可运行,按下Ctrl+c停止运行
88992-d7wiuayzico.png

9、在服务器上使用守护进程systemctl:
在/lib/systemd/system文件夹下创建frps.service
29393-mf48abmi0z.png
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

示例:76097-39y69ni9vf6.png

10、启动Frp服务:systemctl start frps,输入systemctl即可查看进程frps正在运行;
设置frps开机启动:systemctl enable frps
31816-vuapf5e7ba.png


windows系统配置frps

在win可视化界面,操作会变得非常简便

1、在服务器内打开浏览器前往https://github.com/fatedier/frp下载最新版本,选择amd64版本下载
42893-ng6obzr12t.png

2、解压后双击打开frps.ini配置文件,修改端口并保存
61714-b0duifi2jzj.png

3、在文件夹地址栏输入cmd并回车,输入frps -c frps.ini即可运行frp服务器
76643-pt9lxjcktrg.png

4、要想设置frps服务器开机启动,只需要在地址栏输入C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp并进入,新建frps.bat并右键进入修改

5、修改bat文件,将以下内容复制进去:路径\frps.exe -c 路径\frps.ini即可实现开机启动,如:
96799-7dgbsd8wdsb.png

服务器端口配置

在配置完frps后,仍需要去服务端网页后台的安全组处开放相应端口,如默认端口为7000,安全组需要添加tcp协议的7000端口;同时还需要再添加一个tcp协议的端口,作为映射出来的端口
62685-hccu3kmwnpu.png


Frp客户端配置

Linux系统客户端(树莓派为例)

按照前面服务端的方法下载frp到树莓派上并解压,这次将会用到压缩包内的frpc...
由于树莓派是arm架构,且本文使用的是树莓派的64位架构系统,因此在github我们下载frp_x.x.x_linux_arm64.tar.gz,下载、解压方法同服务端

84099-gvo7ftrhe8e.png

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服务器

服务端:84453-3xpdpv7ha3a.png

客户端:20223-c5ur739npxa.png

如果连接超时,请检查:
服务器网页端控制台有没有放行端口、是否服务器有防火墙或者宝塔等面板二次阻拦、配置文件是否一致、服务器时间是否正确

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、... ...


本篇文章到此结束,需要更多内容请持续关注本博客!

Theme Jasmine by Kent Liao
皖公网安备34122202000364号