【笔记】Frp学习笔记

前言

frp is a fast reverse proxy that allows you to expose a local server located behind a NAT or firewall to the Internet. It currently supports TCP and UDP, as well as HTTP and HTTPS protocols, enabling requests to be forwarded to internal services via domain name.(Github

下载依赖

1
2
3
wget https://github.com/fatedier/frp/releases/download/v0.55.1/frp_0.55.1_linux_amd64.tar.gz
tar -zxvf frp_0.55.1_linux_amd64.tar.gz
cd frp_0.55.1_linux_amd64.tar

部署服务端

修改配置文件

bindPort:frp服务端监听端口
vhostHTTPPort:http穿透监听端口,如果穿透的服务不是http协议,则无需配置
vhostHTTPSPort:https穿透监听端口,如果穿透的服务不是https协议,则无需配置
webServer:frp服务端Web后台管理页面配置,如果不需要Web管理页面无需peizhi

webServer.addr:监听的ip地址
webServer.port:监听的端口号
webServer.user:访问者用户名
webServer.password:访问者密码

frps.toml
1
2
3
4
5
6
7
8
bindPort = 7000
vhostHTTPPort = 8080
vhostHTTPSPort = 8081

webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin"

启动服务端

1
./frps -c ./frps.toml

访问Web后台管理页面(可选)

部署客户端

修改配置文件

配置连接服务端的

serverAddr:服务端域名或IP地址
7000:服务端的监听端口号

name:自定义配置名称
type:配置代理类型
localIP:配置穿透的局域网内服务的IP地址
localPort:配置穿透的局域网内服务的端口号
customDomains:配置域名映射或IP地址

1
2
3
4
5
6
7
8
9
serverAddr = "<ip>"
serverPort = 7000

[[proxies]]
name = "web"
type = "http"
localIP = "127.0.0.1"
localPort = 80
customDomains = ["<ip>"]

启动客户端(穿透后被访问的服务)

1
./frps -c ./frps.toml

公网访问穿透的服务

  • 可以通过访问<ip>:8080的方式访问内网Web服务
  • 可以通过访问<ip>:<port>的方式访问内网其他服务

完成

参考文献

腾讯云开发者社区——网络安全自修室
CSDN——scottchenrui2017
fatedier/frp