一、概述
FRP是一款基于golang、开源的跨平台内网穿透东西,支撑http、https、tcp、udp等协议,同时也支撑tls、白名单等安全装备,具有较高的安全性。FRP的原理是运用反向署理技术将公网恳求转发至内网服务器上,并将内网服务器的呼应再次转发至公网恳求者。在完成内网穿透时,FRP能够将公网与内网之间的隔离打破,使得公网用户能够直接拜访内网服务器上的资源,从而完成长途拜访和办理。
Github地址:github.com/fatedier/fr…
官方中文文档:gofrp.org/zh-cn/docs/…
二、前期预备
1. 域名(可选)
需求已存案的域名,绑定域名后能够通过对应的域名进行拜访。若不运用域名,也能够运用公网ip进行拜访。
2. 具有公网ip的服务器(必需)
需求将FRP的服务端部署在具有公网ip的服务器做中转。
能够购买云厂商入门级云服务器,新用户几十块一年。
三、建立服务端(云服务器)
1. 服务端FRP应用程序下载
能够通过wget下载,也能够登录GitHub进入FRP库房的release进行对应版别下载。
此处下载版别为0.52.3
wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz
下载好之后,直接解压,并进入对应目录:
$ tar -axvf frp_0.52.3_linux_amd64.tar.gz
$ cd frp_0.52.3_linux_amd64
能够看到以下文件:
ubuntu@VM-12-8-ubuntu:~/www/frp/frp_0.52.3_linux_amd64$ ll
total 30008
drwxr-xr-x 2 ubuntu ubuntu 4096 Dec 11 15:36 ./
drwxrwxr-x 3 ubuntu ubuntu 4096 Dec 11 14:10 ../
-rwxr-xr-x 1 ubuntu ubuntu 13905920 Oct 24 10:56 frpc*
-rw-r--r-- 1 ubuntu ubuntu 167 Dec 11 14:19 frpc.toml
-rwxr-xr-x 1 ubuntu ubuntu 16789504 Oct 24 10:56 frps*
-rw-r--r-- 1 ubuntu ubuntu 206 Dec 11 15:36 frps.toml
-rw-r--r-- 1 ubuntu ubuntu 11358 Oct 24 10:57 LICENSE
其中:frpc和frpc.toml为FRP客户端的可执行文件和装备文件,frps和frps.toml为FRP服务端的可执行文件和装备文件。
2. 服务端装备文件编写
此处仅展现根底装备,更多装备请查看文档。
vim frps.toml
#frps服务监听的本机端口
bindPort = 57000
#frps服务web界面装备
webServer.addr = "0.0.0.0"
webServer.port = 57001
webServer.user = "admin"
webServer.password = "admin123"
# frpc客户端衔接鉴权token,默以为token形式,可选oidc
auth.token="b652ecc32bb9"
#日志打印装备
log.to = "./log"
log.level = "info"
log.maxDays = 7
3. 服务端发动
发动前,能够运用frps的校验命名检查装备文件是否有错。
$ ./frps verify -c ./frps.toml
frps: the configuration file ./frps.toml syntax is ok
发动服务:
./frps -c ./frps.toml
$ ./frps -c ./frps.toml
2023/12/11 15:36:05 [I] [root.go:102] frps uses config file: ./frps.toml
2023/12/11 15:36:05 [I] [service.go:200] frps tcp listen on 0.0.0.0:57000
2023/12/11 15:36:05 [I] [service.go:312] Dashboard listen on 0.0.0.0:57001
2023/12/11 15:36:05 [I] [root.go:111] frps started successfully
frps started successfully即服务端发动成功。
4. 拜访web ui 进行验证
浏览器拜访:[公网ip]:57001
四、建立客户端(内网机器)
此处选择的内网机器为linux。
如若需求装备为window体系的,能够下载对应的window客户端,装备文件办法共同。
1. 客户端FRP应用程序下载
此处下载同服务端。客户端运用的可执行文件为frpc
2. 客户端装备文件编写
vim frpc.toml
#token需求与服务端的token共同
auth.token = "b652ecc32bb9"
# 服务端的公网ip
serverAddr = "xx.xx.xx.xx"
# 服务端的监听端口
serverPort = 57000
[[proxies]]
# 名称 需求唯一
name = "test-tcp"
# 类型tcp
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
#拜访服务端被转到本机当前装备的对应端口
#比如此处是57002,那外网拜访服务端公网ip:57002则会被转发拜访本装备127.0.0.1:22端口
remotePort = 57002
3. 客户端发动
$ ./frpc -c ./frpc.toml
2023/12/11 08:22:33 [I] [root.go:139] start frpc service for config file [./frpc.toml]
2023/12/11 08:22:34 [I] [service.go:299] [caa9ce2572ebf026] login to server success, get run id [caa9ce2572ebf026]
2023/12/11 08:22:34 [I] [proxy_manager.go:156] [caa9ce2572ebf026] proxy added: [test-tcp]
2023/12/11 08:22:34 [I] [control.go:173] [caa9ce2572ebf026] [test-tcp] start proxy success
[test-tcp] start proxy success 发动成功
4. 运用xshell衔接拜访验证
输入内网机器的用户名和暗码
衔接成功:
至此,FRP简单装备内网穿透已完成。
可参考装备文档进行个性化装备,满意自己的运用。
五、结语
本文只示例了运用公网ip进行装备,FRP也支撑运用域名及二级域名进行装备。




