前言
什么是反向代理?简单来说就是客户端发送的请求通过代理服务器转发给指定服务器,我们只需要知道代理服务器而不需要关心代理服务器最后会发请求发给谁。而frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,并且支持 tcp, http, https 等协议类型,且web 服务支持根据域名进行路由转发。
一、下载并配置外网(服务端)的frp
1.1 下载服务端frp库
linux版下载链接:
https://pan.baidu.com/s/1t0z20sVTD5lY9f-IP7OOzA
提取码:33vy
通过xfrp把包上传到home目录解压即可
tar -zxvf frp_0.33.0_linux_amd64.tar.gz
或者执行命令:
mwget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
1.2 进入到解压目录
我当前存放的目录是home
cd /home/frp_0.33.0_linux_amd64
1.3 打开配置的文件
vi frps.ini
将下列内容进行修改
[common]
# frp监听的端口,默认是7000,可以改成其他的端口
bind_port = 7000
# 授权码,改成更为复杂的
token = qwertyuiop123
# http监听端口
vhost_http_port = 7600
# frp管理后台端口,请按自己需求更改
dashboard_port = 7500
# frp管理后台用户名和密码,请改成自己的
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true
1.4 服务端启动
./frps -c ./frps.ini
可永久启动frp
sudo nohup /home/frp_0.33.0_linux_amd64/frps -c /home/frp_0.33.0_linux_amd64/frps.ini &
查询端口号7000可查看frp服务是否启动
lsof -i :7000
注意要开放7000、7500、7600端口!!!
1.5 打开frp管理界面
访问地址 服务器ip:后台端口,输入自已设定的用户与密码即可登录
如:http://43.108.168.88:7500,用户名与密码分别是刚在frps.ini上设置的dashboard_user和dashboard_pwd
到这步就代表内网穿透已完成了一半!!!
二、下载并配置内网(客户端)的frp
2.1 下载服务端frp库
linux版下载链接:
https://pan.baidu.com/s/1t0z20sVTD5lY9f-IP7OOzA
提取码:33vy
通过xfrp把包上传到home目录解压即可
tar -zxvf frp_0.33.0_linux_amd64.tar.gz
或者执行命令:
mwget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
2.2 进入到解压目录
我当前存放的目录是home
cd /home/frp_0.33.0_linux_amd64
2.3 打开配置的文件
vi frpc.ini (注意客户端的是frpc)
将下列内容进行修改
[common]
tls_enable=true
server_addr = 服务器的ip地址
# 与frps.ini的bind_port一致
server_port = 7000
# 与frps.ini的token一致
token = qwertyuiop123
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
# 自定义,在使用ssh连接时的端口号
remote_port = 6000
[web01]
type = http
# 本地 web server 端口
local_ip = 127.0.0.1
# 项目的端口号(内网)
local_port = 8080
# 二级域名名称
custom_domains = app.xxx.net
# locations = 访问的路径名。必须跟项目名前缀一致如 /xxx/sss/接口名
locations = /xxx/sss
[web02]
type = http
# 本地 web server 端口
local_ip = 127.0.0.1
# 项目的端口号(内网)
local_port = 8081
# 二级域名名称
custom_domains = app.xxx.net
# locations = 访问的路径名。必须跟项目名前缀一致如 /aaa/接口名
locations = /aaa
2.4 客户端启动
./frpc -c ./frpc.ini
可永久启动frp
sudo nohup /home/frp_0.33.0_linux_amd64/frpc -c /home/frp_0.33.0_linux_amd64/frpc.ini &
如果没有报错就是启动成功
注意防火墙开放端口!!!
三 调试
访问方式 http://二级域名:http监听端口/项目名
访问 http://app.xxx.net:7600/xxx/sss 就会跳转到内网对应的8080端口
访问 http://app.xxx.net:7600/aaa 就会跳转到内网对应的8081端口