
1.下载frp源码包
#根据对应的操作系统及架构,从 Release 页面下载最新版本的程序
https://github.com/fatedier/frp/releases
2.frp参数大全
服务端frps.ini参数大全:
[common] #必须要的,标识头。
bind_addr = 0.0.0.0 #必须要的,服务器IP,0.0.0.0为服务器全局所有IP可用,假如你的服务器有多个IP则可以这样做,或者填写为指定其中的一个服务器IP,支持IPV6.
bind_port = 7000 #必须要的FRP通讯端口,用于和客户端内网穿透传输数据的端口,可自定义。
kcp_bind_port = 7000 #用于KCP协议UDP通讯端口,也可以和“bind_port”共用同一端口,如果没有设置,则kcp在frps中被禁用,可自定义。
bind_udp_port = 7001 #UDP通讯端口,以帮助使UDP打洞穿透NAT,可自定义。
token = aaa #连接认证密钥,客户端连接到本服务端的登录验证密钥,可自定义。
vhost_http_port = 80 #如果你想支持http,必须指定http端口监听,指定端口为http网页协议,可自定义。
vhost_https_port = 443 #如果你想支持https,必须指定https端口监听,指定端口为https网页协议,可自定义。
privilege_allow_ports = 2000-3000,3001,3003,4000-50000 #限制只能使用服务端的指定端口,只允许客户端绑定你列出的端口,如果你什么都不设置的话,不会有任何限制。可自定义。
max_pool_count = 5 #每个内网穿透服务限制最大连接池上限,避免大量资源占用。可自定义。
dashboard_addr = 0.0.0.0 #绑定服务端IP,0.0.0.0为服务器全局所有IP可用,假如你的服务器有多个IP则可以这样做,或者填写为指定其中的一个服务器IP,支持IPV6。
dashboard_port = 7500 #WEB端口,访问WEB服务端IP:端口,可自定义。
dashboard_user = admin #用户名,自定义WEB管理用户名,如果没有设置,默认值是admin。
dashboard_pwd = admin #登录密码,自定义WEB管理密码,如果没有设置,默认值是admin。
log_file = /etc/frp/log/frps.log #日志存放路径
log_level = info #日志记录类别,可选:trace, debug, info, warn, error。
log_max_days = 7 #最多保存多少天日志
客户端frpc.ini参数大全:
[name] #必须要的,名字必须不一样,建立每个穿透服务,都需要命名一个此服务的名称,不能和其他已建立的相同。
type = tcp #穿透协议类型,可选:tcp,udp,http,https,stcp,xtcp,你要穿透什么应用要搞清楚,此应用是用什么协议的。
local_ip = 127.0.0.1 #本地监听IP,可以是本地的局域网IP,也可以是本机的127.0.0.1 IP。
local_port = 22 #本地监听端口,用于监听本地设备需要穿透的端口,比如我要穿透到本机的SSH端口,而SSH端口为22,则这样理解。
remote_port = 6001 #远程监听端口,用于frps服务端的,分配建立穿透到内网对应应用的公网端口
token = aaa #连接认证密钥,客户端连接到本服务端的登录验证密钥。
use_encryption = false #穿透通讯加密,可选:false,true。
use_compression = false #穿透通讯压缩,可选:false,true。
http_user = admin #自定义用户名,为HTTP协议,添加HTTP用户名
http_pwd = admin #自定义密码,为HTTP协议,添加HTTP密码安全认证
3.服务端配置
#上传frp源码包
[root@web01 ~]# ll /opt/frp_0.25.3_linux_amd64.tar.gz
-rw-r--r-- 1 root root 8147809 12月 2 09:32 /opt/frp_0.25.3_linux_amd64.tar.gz
#解压
[root@web01 ~]# cd /opt/
[root@web01 /opt]# tar xf frp_0.25.3_linux_amd64.tar.gz
[root@web01 /opt]# cd frp_0.25.3_linux_amd64/
[root@web01 /opt/frp_0.25.3_linux_amd64]# ll
总用量 21064
-rwxr-xr-x 1 root root 10400928 8月 14 10:15 frpc
-rw-r--r-- 1 root root 6450 8月 14 10:15 frpc_full.ini
-rw-r--r-- 1 root root 355 8月 14 10:18 frpc.ini
-rwxr-xr-x 1 root root 11129280 8月 14 10:15 frps
-rw-r--r-- 1 root root 2199 8月 14 10:15 frps_full.ini
-rw-r--r-- 1 root root 218 8月 14 10:15 frps.ini
-rw-r--r-- 1 root root 11358 8月 14 10:15 LICENSE
drwxrwxr-x 2 root root 88 8月 14 10:15 systemd
#删除不必要的客户端文件
[root@web01 /opt/frp_0.25.3_linux_amd64]# rm -rf frpc frpc.ini
#服务端frps.ini配置
[root@web01 /opt/frp_0.25.3_linux_amd64]# cat frps.ini
[common]
bind_addr = 0.0.0.0
bind_port = 7000
bind_udp_port = 7001
kcp_bind_port = 7000
dashboard_addr = 0.0.0.0
dashboard_port = 7500
token = lx123
tcp_mux = true
#启动frps服务端(可以后台启动,也可以使用screen)
[root@web01 /opt/frp_0.25.3_linux_amd64]# ./frps -c frps.ini
#后台启动
[root@web01 /opt/frp_0.25.3_linux_amd64]# nohup ./frps -c frps.ini &
[1] 21289
[root@web01 /opt/frp_0.25.3_linux_amd64]# nohup: 忽略输入并把输出追加到"nohup.out"
4.客户端配置
#上传,解压,删除默认两个frps服务端文件
[root@test /opt/frp_0.25.3_linux_amd64]# rm -rf frps frps.ini
[root@test /opt/frp_0.25.3_linux_amd64]# ll
总用量 10192
-rwxr-xr-x 1 root root 10400928 8月 14 10:15 frpc
-rw-r--r-- 1 root root 6450 8月 14 10:15 frpc_full.ini
-rw-r--r-- 1 root root 345 12月 2 11:05 frpc.ini
-rw-r--r-- 1 root root 2199 8月 14 10:15 frps_full.ini
-rw-r--r-- 1 root root 11358 8月 14 10:15 LICENSE
drwxrwxr-x 2 root root 84 8月 14 10:15 systemd
#客户端frpc.ini配置
[root@test /opt/frp_0.25.3_linux_amd64]# cat frpc.ini
[common]
server_addr = 192.168.1.126
server_port = 7000
token = lx123
tcp_mux = true
protocol = tcp
[ccc]
type = tcp
local_ip = 127.0.0.1
local_port = 1111
remote_port = 1111
use_encryption = true
use_compression = true
[ddd]
type = tcp
local_ip = 127.0.0.1
local_port = 2222
remote_port = 2222
use_encryption = false
use_compression = false
#启动frpc客户端(可以后台启动,也可以使用screen)
[root@test /opt/frp_0.25.3_linux_amd64]# ./frpc -c frpc.ini
#后台启动
[root@test /opt/frp_0.25.3_linux_amd64]# nohup ./frpc -c frpc.ini &
[1] 11403
[root@test /opt/frp_0.25.3_linux_amd64]# nohup: 忽略输入并把输出追加到"nohup.out"
5.服务端查看是否端口转发成功
[root@web01 /opt/frp_0.25.3_linux_amd64]# netstat -lntp |grep frps
tcp6 0 0 :::1111 :::* LISTEN 21289/./frps
tcp6 0 0 :::7000 :::* LISTEN 21289/./frps
tcp6 0 0 :::7500 :::* LISTEN 21289/./frps
tcp6 0 0 :::2222 :::* LISTEN 21289/./frps
6.多服务端转发同一个客户端(相当于复制一份frpc.ini文件然后-c启动即可)
#客户端复制一份frpc.ini
[root@test /opt/frp_0.25.3_linux_amd64]# cp frpc.ini frpc1.ini
#客户端frpc1.ini配置
[root@test /opt/frp_0.25.3_linux_amd64]# cat frpc1.ini
[common]
server_addr = 192.168.1.142
server_port = 7000
token = lx142
tcp_mux = true
protocol = tcp
[aaa]
type = tcp
local_ip = 127.0.0.1
local_port = 3333
remote_port = 3333
use_encryption = true
use_compression = true
[bbb]
type = tcp
local_ip = 127.0.0.1
local_port = 4444
remote_port = 4444
use_encryption = false
use_compression = false
#启动frpc1.ini客户端
[root@test /opt/frp_0.25.3_linux_amd64]# ./frpc -c frpc1.ini
#后台启动
[root@test /opt/frp_0.25.3_linux_amd64]# nohup ./frpc -c frpc1.ini &
[1] 11505
[root@test /opt/frp_0.25.3_linux_amd64]# nohup: 忽略输入并把输出追加到"nohup.out"
#服务端查看是否成功
[root@test ~]# netstat -lntp |grep frps
tcp6 0 0 :::7500 :::* LISTEN 31628/./frps
tcp6 0 0 :::7000 :::* LISTEN 31628/./frps
tcp6 0 0 :::4444 :::* LISTEN 31628/./frps
tcp6 0 0 :::3333 :::* LISTEN 31628/./frps