参考文档:

https://www.cnblogs.com/xujingyang/p/9244674.html

https://www.jianshu.com/p/1a30d9ec1775

https://www.xiejiahe.com/blog/detail/5cd768c02bbcb67b4a5f3edf

https://www.cnblogs.com/sanduzxcvbnm/p/8509150.html

https://www.cnblogs.com/shook/p/12790532.html

https://java-er.com/blog/frp-udp-ssh/

必须要有一台公网服务器作为服务端,并为其绑定一个域名

本文所用的

*********************************** 服务端(公网服务器)搭建步骤

https://github.com/fatedier/frp/releases 这里可以查看最新版本和获取下载地址。

 1### 解压:
 2$ tar -zxf frp_0.39.1_linux_amd64.tar.gz -C /app
 3$ cd /app/frp_0.39.1_linux_amd64/
 4
 5
 6
 7### 备份:
 8$ cp frps.ini frps.ini.backup
 9
10
11
12### 编辑配置文件(更多配置查看frps_full.ini):
13$ vim frps.ini
14### 完整内容如下:
15[common]
16#服务器监听端口(与客户端进行通信的端口)
17bind_port = 7181
18#token效验,随便写
19privilege_token = loveYan@801
20#管理页面访问端口、用户名、密码
21dashboard_port = 7182
22dashboard_user = admin
23dashboard_pwd = loveYan@801
24#对网穿透http端口(需要确保端口未被占用)
25vhost_http_port = 80
26#对网穿透https端口(需要确保端口未被占用)
27
28vhost_https_port = 443
29
30
31
32### 启动frp服务端:
33### 方法一:终端启动(不推荐;断开与服务器的连接后,frp停止运行)
34
35./frps -c frps.ini
36### 方法二:后台启动
37nohup /app/frp_0.39.1_linux_amd64/frps -c /app/frp_0.39.1_linux_amd64/frps.ini >> /app/frp_0.39.1_linux_amd64/frps.log 2>&1 &

下载地址和上面服务端的下载地址一致。

但是必须确保客户端版本与服务器端版本对应,不然会连接不上。

 1### 解压:
 2$ tar -zxf frp_0.39.1_linux_amd64.tar.gz -C /app
 3$ cd /app/frp_0.39.1_linux_amd64/
 4
 5
 6
 7### 备份:
 8$ cp frpc.ini frpc.ini.backup
 9
10
11
12### 编辑配置文件(更多配置查看frpc_full.ini):
13$ vim frpc.ini
14### 完整内容如下:
15[common]
16#服务器地址
17server_addr = 81.71.88.222
18#与服务端绑定的进行通信的端口
19server_port = 7181
20# 与服务端配置信息 privilege_token 相同
21privilege_token = loveYan@801
22# 开启 TLS 协议加密(客户端启动时如果出现:login to server failed: EOF,加上此配置)
23tls_enable = true
24
25# ssh 设置
26[ssh]
27type = tcp
28local_ip = 127.0.0.1
29local_port = 22
30remote_port = 7752
31custom_domains = zcily.top
32
33# http 设置:中括号中的名字可任意指定
34[http]
35type = http
36local_ip = 127.0.0.1
37local_port = 80
38remote_port = 80
39custom_domains = zcily.top
40
41# https 设置:中括号中的名字可任意指定
42[https]
43type = https
44local_ip = 127.0.0.1
45local_port = 443
46remote_port = 443
47custom_domains = zcily.top
48# 下面的配置不是必须的;完全可以在nginx中配置跳转、以及指定https证书
49plugin = https2http
50plugin_local_addr = 127.0.0.1:80
51plugin_crt_path = /app/nginx-1.20.2/conf/zcily.top_bundle.crt
52plugin_key_path = /app/nginx-1.20.2/conf/zcily.top.key
53plugin_host_header_rewrite = 127.0.0.1
54plugin_header_X-From-Where = frp
55
56
57
58
59### 启动frp客户端:
60
61### 方法一:终端启动(不推荐;断开与服务器的连接后,frp停止运行)
62./frpc -c frpc.ini
63### 方法二:后台启动
64nohup /app/frp_0.39.1_linux_amd64/frpc -c /app/frp_0.39.1_linux_amd64/frpc.ini >> /app/frp_0.39.1_linux_amd64/frpc.log 2>&1 &

说明:

custom_domains 可以是域名,也可以是IP地址