一、前言

​ 简单介绍一下,frp主要有两个部分,客户端(frpc)和服务端(frps),服务端需要部署在具有公网ip的机器上(也就是我们自己买的云服务器),客户端就是我们需要进行穿透的电脑(本地机器)。

二、服务端配置

​ 首先需要在服务端下载frp并解压。输入命令arch查看处理器架构,根据此去github下载对应的frp版本,然后下载解压完就行。

​ 这里我们只需要修改frps.ini文件的配置就可以了,其他与frpc相关的文件都可删去。由于只需要进行Web服务的穿透访问,这里只配置Web,其他配置按需百度添加即可,重点是成功搭建并运行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[common]
#frp监听的端口,即与本地机器建立通信的端口,默认是7000,可以改成其他的(不建议动)
bind_port = 7000
#该端口就是以后访问web服务需要用到的端口,可自定义
vhost_http_port = 3000
#授权码,建议不要太简单。这个token之后在客户端会用到
#注意:不要再token后面加#注释进行注释,也会被算上token内容,导致认证失败!写注释最好单独一行
token = 123456

#frp管理后台端口,请按自己需求更改,这个东西并不是一定要,这里还是提一下
dashboard_ _port = 7508
#frp管理后台用户名和密码,请改成自己的
dashboard_user =
dashboard_pwd =
enable_prometheus = true

配置好后就可以启动了

1
nohup ./frps -c ./frps.ini &

这里可以用systemctl执行,附上配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=frps daemon
After=syslog.target network.target
Wants=network.target

[Service]
Type=simple
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
Restart= always
RestartSec=1min
ExecStop=/usr/bin/killall frps

[Install]
WantedBy=multi-user.target

三、客户端配置

​ 和服务端一样,下载解压。。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[common]
#服务器的ip地址
server_addr =
#服务器监听的端口,即frps.ini里的bind_port
server_port = 7000
#授权码
token =

#配置http服务,可用于第三方接口(java开发、小程序开发等)等远程调试
[web]
#服务类型
type = http
#需要被穿透的本地ip,不用改,相当于localhost
local_ip = 127.0.0.1
#本地项目运行服务提供的端口,根据项目自定义
local_port = 3000
#web域名
custom_domains =
#远程服务器监听web服务的端口,需要即frps.ini里的vhost_http_port
remote_port = 3000

客户端的话,以windows系统为例,在cmd终端cd进frp目录,执行

1
.\frpc.exe -c frpc.ini

也可以将执行命令打成bat脚本,这里也附上代码

1
2
3
4
5
6
7
8
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM
D:
cd Tools\frp
.\frpc.exe -c frpc.ini