由于现在IPv4地址的短缺,在国内不可能每个设备都会分配到一个公网IP,因此从公网中访问自己的私有设备向来是一件难事儿。本次带大家了解一下frp内网穿透的服务端教学,让你也能够部署一个内网穿透服务。

FRP简介

通俗的说,frp是一个反向代理软件,它不仅轻量且功能很强大,可以使处于内网或防火墙后的设备对外界提供服务,它支持HTTP、TCP、UDP等众多协议。本文使用的版本为v0.32.1做为演示教程。

服务器相关

服务器相关:
1.因为frp的原理是利用服务端(所准备的具有公网IP的服务器)进行转发,因而服务器的速度直接决定了之后连接的质量,请根据自己的需要选择相应主机配置。
2.博主使用的是阿里云学生机,CentOS 7 系统,自用足够了。frp客户端和服务端本身同时均支持Linux和Windows,且配置方法一样,请根据实际环境自行测试。

FRP服务端部署

本文使用的是阿里云的服务器,CentOS 7 系统,故在frp服务端使用的是此版本:

我们首先远程登录到服务器,本文将frp服务端文件存放在/usr/local/目录下作为演示,具体使用时可以视自己的需求忽略此步骤或自定义安装在其它目录:

1.使用wget命令将frp软件压缩包下载下来:

wget https://github.com/fatedier/frp/releases/download/v0.32.1/frp_0.32.1_linux_amd64.tar.gz

 

2.然后将文件解压:

tar -zxvf frp_0.32.1_linux_amd64.tar.gz 

3.此处可以将frp_0.32.1_linux_amd64文件夹改名为frp,方便操作使用:

mv frp_0.32.1_linux_amd64 frp

4.接下来我们编辑frps.ini文件

vim frps.ini

文件应有下面的格式:

[common] bind_port = 7000

token = 12345678

vhost_http_port 7001

vhost_https_port 7002

dashboard_port = 7500

dashboard_user = admin

dashboard_pwd = admin

其中:
bind_port 为服务器端端口
token 为客户端与服务器端的连接设置一个验证
vhost_http_port 客户端访问的http端口
vhost_https_port 客户端访问的https端口
dashboard_port 为frps登录面板端口
dashboard_user 为frps登陆面板的用户名
dashboard_pwd 为frps登陆面板的密码

输入完成后按Esc键,输入wq保存并退出。

6.用cat命令查看文件内容已成功保存

7.接下来输入命令运行frps服务端:

./frps -c ./frps.ini

看到success字样表示已运行成功:

8.此时我们可以使用浏览器访问http://ip地址:7500,网页上输入自己设定的账号密码即可登录frps服务端查看相关信息:

设置开机启动

上面的教程在frps运行后你一旦退出Terminal或使用了Ctrl+C命令,那么你的frps服务端也就停止运行了,此处教大家如何设置开机自启动。

1.添加systemd配置文件:

vim /usr/lib/systemd/system/frp.service

2.编辑文件内容如下(ExecStart的内容请根据自己frp安装目录修改):

[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=simple
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit

[Install]
WantedBy=multi-user.target

3.设置frp开机启动:

systemctl daemon-reload
systemctl enable frp

4.启动frp(终止frp把start改为stop即可):

systemctl start frp

5.查看frp是否启动:

ps aux | grep frps

显示的内容如下则表示启动成功: