准备工作

搭建一个完整的frp服务链,我们需要

VPS一台(也可以是具有公网IP的实体机)

访问目标设备(就是你最终要访问的设备)

简单的Linux基础(会用cp等几个简单命令即可)

满足以上条件即可进行

原理图

原理图

服务端设置

SSH连接到VPS之后运行如下命令查看处理器架构,根据架构下载不同版本的frp

arch

查看结果,如果是“X86_64“即可选择”amd64”,
运行如下命令,根据架构不同,选择相应版本并进行下载

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

然后解压

tar -zxvf frp_0.44.0_linux_amd64.tar.gz

进入root/frp_0.44.0_linux_amd64,找到文件 frps.ini 并修改成

[common]
bind_port = 6000
vhost_http_port = 909
dashboard_user = admin
dashboard_pwd = admin
token=123456 #请自行修改

“bind_port” 表示用于客户端和服务端连接的端口,这个端口号我们之后在配置客户端的时候要用到。
“dashboard_port” 是服务端仪表板的端口,若使用6000端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:6000 (其中x.x.x.x为VPS的IP)查看frp服务运行信息。
“token” 是用于客户端和服务端连接的口令,请自行设置并记录,稍后会用到。
“dashboard_user”“dashboard_pwd” 表示打开仪表板页面登录的用户名和密码,自行设置即可。
“vhost_http_port”“vhost_https_port” 用于反向代理HTTP主机时使用。

运行服务端

./frps -c frps.ini

后台运行

nohup ./frps -c frps.ini >/dev/null 2>&1 &

客户端设置

与服务端相同,下载frp-解压
进入root/frp_0.44.0_linux_amd64,找到文件 frpc.ini 并修改成

[common]
server_addr = 服务端IP
server_port = 6000
token = 123456

[ssh]
type = tcp
local_ip = 127.0.0.1 
local_port = 5700 
remote_port = 909

“server_addr” 为服务端IP地址,填入即可。
“server_port” 为服务器端口,填入你设置的端口号即可,如果未改变就是6000
“token” 是你在服务器上设置的连接口令。
“local_ip” 是你在本地端IP。
“[xxx]” 表示一个规则名称,自己定义,便于查询即可。
“type” 表示转发的协议类型,有TCP和UDP等选项可以选择,如有需要请自行查询frp手册。
“local_port” 是本地应用的端口号,按照实际应用工作在本机的端口号填写即可。
“remote_port” 是该条规则在服务端开放的端口号,自己填写并记录即可。

运行本地端

./frpc -c frpc.ini

后台运行

nohup ./frpc -c frpc.ini >/dev/null 2>&1 &