Frp - 一种内网穿透技术。
内网穿透 - 就是通过其他公网 IP 来访问本地没有公网 IP 网络环境的一个技术。

准备工作
一台有公网 IP 的服务器

服务器端配置:
登录服务器 下载自己服务器对应版本 Frp

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

使用 tar 指令解压 tar.gz 文件

tar -zxvf frp_0.12.0_linux_amd64.tar.gz

进入 frp 目录

cd frp_0.12.0_linux_amd64

配置服务器端文件

vi frps.ini

编辑配置文件

[common]
bind_port = 7000
vhost_http_port = 8080
dashboard_port = 7500
dashboard_user = 用户名
dashboard_pwd = 密码
max_pool_count = 5
authentication_timeout = 900

subdomain_host = lekee.cc

[ssh]
listen_port = 6000
auth_token = 和客服端 token 对应

参数详情

[common] 必填的
bind_port Frp 服务端口(可自定义)
vhost_http_port http 访问端口(可自定义)
dashboard_port dashboard 界面端口
dashboard_user 登录 dashboard 用户名
dashboard_pwd 登录 dashboard 密码
max_pool_count 最大连接池数量
authentication_timeout 超时验证时间
subdomain_host 自定义二级域名

[ssh]
listen_port ssh 访问端口
auth_token 用户身份认证

保存上面配置文件,启动 frp 服务器

./frps -c ./frps.ini

客户端配置与服务端一样 首先需要下载Frp 只不过编辑的配置文件不同

编辑 frpc.ini 文件(客户端配置文件)

vi frpc.ini

编辑配置文件如下

[common]
server_addr = ip
server_port = 7000
auth_token = 和服务器端对应
pool_count = 1

[ssh]
type = tcp
local_ip = 客户端局域网ip或127.0.0.1都可以
local_port = 22
remote_port = 6000

[web]
type = http
local_port = 80
subdomain = web 

参数详情

[common] 必填的
server_addr 服务器端公网
server_port frp 服务端口,和服务器端 bind_port 一致
auth_token 和前面服务器端 [ssh] auth_token 一致
pool_count 连接池数量

[ssh]
type 服务类型(tcp、http、https、udp)
local_ip 本地局域网内网 ip
local_port 服务器 开启 ssh 服务端口号,默认 22
remote_port 服务器端 ssh 端口,和服务器端 [ssh] listen_port 配置一致

[web]  web Station 服务,没用可以不用设置
type = http 类型为 http
local_port = 80 web 服务端口
subdomain = web 二级域名
使用自定义二级域名的时候,域名要解析到服务器 IP

保存,运行。

./frpc -c ./frpc.ini

下面是后台运行的方法
服务器端

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

客户端

nohup ./frpc -c ./frpc.ini &