[Linux-Frp]快速搭建自己的Frp服务器

412 阅读4分钟

这是我参与8月更文挑战的第29天,活动详情查看:8月更文挑战

一、前言

大概半个月前,我使用旧手机搭建了一个私人网盘服务( 见 上篇 下篇

对于局域网内,手机的4G内存和CPU还是十分给力的,上传下载速度能达到每秒5兆的水平(由于是手机开的虚拟环境进行跑的,性能其实还未完全发挥出来,手机还能同时开个qq啥的)。

但是,之前实现外网穿透的方式是使用免费的frp服务,在这两周的使用感觉十分心累。

首先,使用免费frp速度波动极大,慢的时候比百度网盘还慢。

其次,中更为致命的是,改服务极其不稳定,连接经常断开,导致连接不上,有时候急需存储文件,但是连接不上服务器就很绝望。

这次两天,有幸低价淘到了一个1核2G带宽为1M为期三年的服务器,同时网络计费方式是按带宽计费,无论花多少流量都是一个价钱。刚好用来搭建frp服务器,不仅可以转发之前的私人网盘,而且有了公网IP之前一直搁置的物联网计划也可以再次立项(有机会的话另外写博分享)。

二、搭建服务端

1、下载一键安装脚本

使用SSH连接到用于做frp服务端的服务器(带公网IP的云服务器)。

运行下列指令,下载安装脚本。

wget --no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/frps/install-frps.sh -O ./install-frps.sh

2、运行脚本

chmod +x ./install-frps.sh
./install-frps.sh install

在运行脚本前,要给予脚本运行权限,否则脚本将无权限进行后续安装,导致安装失败。

运行脚本会自动下载最新版本的frp工具,稍微等待一段时间其下载完成,我们就可以开始进行配置了。

3、配置

下面是几个比较重要的参数:

  • Please input frps bind_port [1-65535](Default Server Port: 5443):      
    • 服务端口,客户端将通过该端口建立连接frp连接
    • 这里我填的是7000
  • Please input frps dashboard_port [1-65535](Default dashboard_port: 6443): 
    • frp控制台端口,可以看到frp当前状态
    • 我填的是8000
  • Please input frps vhost_http_port [1-65535](Default vhost_http_port: 80):  
    • http服务的穿透端口
    • 默认是80,但是我安装了nginx占用了80端口,故改用8080端口
  • Please input frps vhost_https_port [1-65535](Default vhost_https_port: 443): 
    • https服务的穿透端口
    • 同上,找一个未占用的其他端口
  • Please input privilege_token (Default: JKuwSNKnxcaJItyoxzsdkl):
    • 通信密码
    • 这个要保密
  • Please input frps max_pool_count [1-200](Default max_pool_count: 50):     
    • 连接池上限
    • 我设为了5(暂时没那么多设备)

剩下的配置是日志方面的设置,看个人需求进行配置(全默认也是可以的)。

确认配置后,会输出下列信息:

image.png

然后frp服务就启动了。

三、连接frp服务

其实这个在上次那篇文章中已经讲过了,在结尾部分:下篇

大部分操作都可以在三、外网穿透中看到,我们只需要改两个地方:

[common]
server_addr = <你的服务器公网IP或域名>
server_port = <用于frp服务的端口号,按我上面来填的是7000>
token = <上面填的密码>

[http]
type = http
local_ip = 127.0.0.1
local_port = 80
remote_port = 8001

要注意的是remote_port是指定服务端开放一个端口,供外部访问。

我填写的是8001端口,到时候就可以通过IP:8001来访问客户端服务器(网盘),我这里还用nginx做了一个反向代理,转到了80端口,由于每个人需求不一样,这里就不细说了。

另外一个需要注意的地方是,对于nextcloud需要开放允许访问的IP地址或socket,因此按照上次那篇文章介绍的,把frp服务端IP加上。

四、!重要!开放安全组

由于各大平台的云服务器都有一个端口安全组保障服务器安全,如果没有进行配置,一半只有80、443、22这些常用端口会开放,因此,要根据需求开放端口,我这里就额外开放了7000,8000,8001等端口。

由于不同平台操作安全组的方法都不一样,一一展开的话篇幅较长,操作细节部分可以参考其他文章,这里就不细说了。