frp 采用 C/S 模式,将服务端部署在具有公网 IP 的机器上,客户端部署在内网或防火墙内的机器上,通过访问暴露在服务器上的端口,反向代理到处于内网的服务。 在此基础上,frp 支持 TCP, UDP, HTTP, HTTPS 等多种协议,提供了加密、压缩,身份认证,代理限速,负载均衡等众多能力。
GitHub地址:https://github.com/fatedier/frp
frp版本下载:https://github.com/fatedier/frp/releases
官方文档:https://gofrp.org/docs/

准备工作:

下载对应版本的frp软件,如下图:下载frp公网转发工具

配置云服务器供应商后台端口:

准备一台具备公网的服务器:以阿里云服务器为例,并开通阿里云所有端口,方便使用,当然你也可以根据需求开通对应的端口,我们为了方便使用建议开通所有端口,如下图:配置开放公网服务器端口

配置服务端(以Linux机器为例):

将frps服务端软件放在具有公网的服务器内,例如阿里云服务器,如下图,frps服务端软件
上一步骤中的文件,放在如下图位置,位置也可以自己随便放服务端配置
frps.ini文件详细配置如下截图或代码块,当然你也可以参考官方文档进行更多,更详细的配置:在这里插入图片描述
[common]
# 服务端控制面板访问账号和密码,不设置则默认admin
# 注意以及几个是我随便填写的,请根据自己的实际情况,自行修改。
dashboard_user = admin
dashboard_pwd = admin111
# 连接令牌
token = admin111
# 路由地址
subdomain_host = frp.xxx.com

###########下列配置默认即可,无需改动###############
#穿透监听端口与地址(0.0.0.0表示允许任何地址)
bind_addr = 0.0.0.0
bind_port = 7000
# udp协议监听端口
bind_udp_port = 7001
#udp协议支持kcp模式。kcp的运行端口,不设置表示禁用。可以与'bind_port'端口一致
kcp_bind_port = 7000
#虚拟主机穿透监听端口(指http与https的访问端口)
vhost_http_port = 80
vhost_https_port = 443
#服务端控制面板访问端口
dashboard_addr = 0.0.0.0
dashboard_port = 7500
# frp日志记录路径
#log_file = ./frps.log
# 日志记录级别(trace, debug, info, warn, error)
log_level = info
# 日志记录滚动天数
log_max_days = 3
# 客户端与服务端连接心跳检测
heartbeat_timeout = 90
# 允许客户端使用的穿透端口,不设置则全部允许
#allow_ports = 8000-9000
# 穿透服务允许的连接数
max_pool_count = 100000
# 单个客户端允许建立的穿透服务,0为不限制
max_ports_per_client = 0
# 连接超时
authentication_timeout = 0
# tcp流多路复用(可以理解为优化传输) 
tcp_mux = true
启用命令如下图或代码块:在这里插入图片描述
pkill -f frps
nohup /root/frp/frps -c/root/frp/frps.ini &

在这里插入图片描述

进入目录命令并且启动命令:

java cd /root/frp
./run.sh

将启动命令配置为开机启动项 在这里插入图片描述

到这里,服务端就配置完了

配置客户端(以Linux机器为例):

在这里插入图片描述

#[common为公共配置区域必须存在]
[common]
# 与服务端连接令牌
token = admin111
# 客户端标识,自己自定义,英文拼音或数字
user = 27
#服务端的访问地址(可用ip或者域名,根据实际情况,我以IP为例)。
server_addr = 47.92.88.555

####################此处为common的默认配置区域无需修改###################
#服务端用于穿透的端口,与服务端保持一致。
server_port = 7000
# 日志记录路径
#log_file = ./frpc.log
# 日志记录级别(trace, debug, info, warn, error)
log_level = info
# 日志记录滚动天数
log_max_days = 3
# frpc客户端管理界面
admin_addr = 127.0.0.1
admin_port = 7400
admin_user = admin
admin_pwd = admin111
# 连接池
pool_count = 5
# tcp数据流多路复用,默认开启,服务端客户端需要保持一致
#tcp_mux = true
# 失败重连
login_fail_exit = false
# 服务端与客户端通信协议,支持tcp\upd
protocol = tcp
# dns服务选用
# dns_server = 8.8.8.8
#客户端向服务端心跳检查间隔与超时时间
heartbeat_interval = 10
heartbeat_timeout = 90
##############以上为客户端服务的公共信息配置区域############
 
###############具体的穿透服务功能启用(表示你要使用frp的那个功能)##############
###############【baota】##############
[baota]
type = tcp
local_ip = 192.168.31.27
local_port = 34460
remote_port = 34460
###############【HTTP】##############
[web1]
type = http
local_ip = 192.168.31.27
local_port = 80
custom_domains = mall.xxxx.com

[web2]
type = http
local_ip = 192.168.31.27
local_port = 80
custom_domains = mall.xxxx.com

[web3]
type = https
local_ip = 192.168.31.27
local_port = 443
custom_domains = mall.xxxx.com

[Nacos]
type = tcp
local_ip = 192.168.31.27
local_port = 8848
remote_port = 8850

在这里插入图片描述
启动命令及配置开机启动项

pkill -f frpc
nohup /root/frp/frpc -c/root/frp/frpc.ini &

在这里插入图片描述

进入目录命令并且启动命令:

java cd /root/frp
./run.sh

完事了,可以试试了,已经可以访问了

Logo

更多推荐