前情
FRP是一种内网穿透技术,一般应用于以下场景:
- 公网服务器资源有限,部分资源需要本地部署,供外网访问
- 第三方服务(微信支付)需要绑定回调接口,本地测试不便
实战
FRPS部署
FRP分为frps和frpc,为服务端-客户端架构,首先我们先在公网服务器上部署frps。
通常我们可以使用两种方式,一种是使用Docker,一种是去官网下载tar包。
首先介绍Docker下载去下载:
bash
docker pull fatedier/frps:v0.60.0
拉取frps镜像。
编写frps.toml配置文件
ini
[common]
bind_port = 8000
dashboard_port = 8001
dashboard_user = admin
dashboard_pwd = admin
token = your_token
将文件放入conf文件夹下,然后在conf文件夹同级编写docker-compose.yml文件
yaml
# 命令执行 docker-compose -f docker-compose.yml up -d
version: '3.9'
services:
frps:
image: fatedier/frps:v0.60.0
hostname: frps
container_name: frps
volumes:
- "./config/frps.toml:/frps.toml"
command:
- "-c"
- "/frps.toml"
network_mode: "host"
最后执行:
docker-compose -f docker-compose.yml up -d
进入:http://your_addr:8001 即可进入dashbord
FPRC部署
参考FRPS的部署,不难想到可以通过docker下载再部署:
bash
docker pull fatedier/frpc:v0.60.0
但是实际情况下发现,docker下载不了该镜像,哪怕是更改了版本也是如此(也可能是本人的问题)
所以关于FRPC本人是通过官网下载再上传至服务器的:
这里需要注意!一定要下载和本地系统适配的版本,例如windows。
由于本人还用于内网穿透本地虚拟机上的服务,所以还要下载对应的linux版本,大家的非mac电脑应该都是x86版本,x86的后缀是386。
本人翻阅了相关release后,最新的x86版本为:frp_0.51.3_linux_386.tar.gz
大家根据自己的系统下载即可。
然后编写相关frpc.ini文件,这是本人的,大家参考着部署就好啦:
ini
[common]
server_addr = "your_addr"
server_port = 8000
token = "gaoyifeng"
[ssh]
remote_port = 9000
type = "tcp"
local_ip = "127.0.0.1"
local_port = 22
[nginx-alone]
remote_port = 80
type = "tcp"
local_ip = "127.0.0.1"
local_port = 9002
[redis-alone]
remote_port = 6379
type = "tcp"
local_ip = "127.0.0.1"
local_port = 6380
[mysql8-alone]
remote_port = 3306
type = "tcp"
local_ip = "127.0.0.1"
local_port = 3306
[mysql5.7-alone]
remote_port = 3308
type = "tcp"
local_ip = "127.0.0.1"
local_port = 3307
[nacos2-alone-1]
remote_port = 8848
type = "tcp"
local_ip = "127.0.0.1"
local_port = 8848
[nacos2-alone-2]
remote_port = 9848
type = "tcp"
local_ip = "127.0.0.1"
local_port = 9848
[nacos2-alone-3]
remote_port = 9849
type = "tcp"
local_ip = "127.0.0.1"
local_port = 9849
最后通过命令:./frpc -c frpc.ini运行即可。运行完成后可去frps的控制台观察执行情况。