frp对http协议应用
前言
frp是一个开源的项目, 可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。
github地址:https://github.com/fatedier/frp
此处对http的应用做一个简单的记录,使用frp-v0.20.0版本进行介绍
1.软件下载地址
https://github.com/fatedier/frp/releases?after=v0.25.1
2.服务端配置
linux下配置,需要有一个公网的服务器,假如公网ip为 xxx.xxx.xxx.xxx
下载软件:frp_0.20.0_linux_amd64.tar.gz
解压:tar -zxvf frp_0.20.0_linux_amd64.tar.gz
cd frp_0.20.0_linux_amd64
启动服务端:
./frps --bind_port=7000 --vhost_http_port=8080
其中:
--bind_port 为frp服务端口
--vhost_http_port为http服务端口
3.客户端配置
3.1 windows下配置
下载软件:frp_0.20.0_windows_amd64.zip
解压:进入frp_0.20.0_windows_amd64目录
编辑:
frpc.ini 文件
[common] server_addr = xxx.xxx.xxx.xxx server_port = 7000 [web01] type = http local_port = 7758 custom_domains = xxx.xxx.xxx.xxx
说明:
server_addr : frp的服务地址
server_port : frp的服务端口
web01:代理名称,随意命名
type : 协议类型,此处为http
local_port : 代理的本地端口
custom_domains : 代理的地址,可以使用域名
3.2 启动客户端
打开cmd 命令窗口
执行:frpc.exe -c frpc.ini
3.3 访问方法
使用custom_domains 指定的地址或者域名,端口为服务端的--vhost_http_port 指定的端口,此处为8080, 访问后就相当于访问到了本地的端口 7758
此处为: xxx.xxx.xxx.xxx:8080
代理方式相当于: xxx.xxx.xxx.xxx:8080 --> 127.0.0.1:7758
4.建立多个反向代理
这里的服务端和客户端是一对一的,所以需要重新建立服务端,指定不同的frp端口和http的端口
4.1 服务端
./frps --bind_port=7001 --vhost_http_port=8081
4.2 客户端
从frpc.ini复制一个frpc1.ini,内容如下:
[common] server_addr = xxx.xxx.xxx.xxx server_port = 7001 [web02] type = http local_port = 7759 custom_domains = xxx.xxx.xxx.xxx
启动:frpc.exe -c frpc1.ini
访问:xxx.xxx.xxx.xxx:8081
代理方式相当于: xxx.xxx.xxx.xxx:8081 --> 127.0.0.1:7759