FRP 項(xiàng)目地址:https://github.com/fatedier/frp
frp是一種快速反向代理,可幫助您將NAT或防火墻后面的本地服務(wù)器公開到Internet。到目前為止,它支持TCP和UDP以及HTTP和HTTPS協(xié)議,在這些協(xié)議中,請求可以通過域名轉(zhuǎn)發(fā)到內(nèi)部服務(wù)。
1、下載frp資源

2、目錄簡介
以CentOS系統(tǒng)為例,創(chuàng)建一個文件夾將下載好的壓縮包(frp_0.33.0_linux_amd64.tar.gz)解壓得到目錄中以下文件。
-rwxrwxr-x 1 1000 mysql 10629120 Apr 27 16:59 frpc #客戶端啟動
-rw-rw-r-- 1 1000 mysql 7575 Apr 27 17:06 frpc_full.ini
-rw-rw-r-- 1 1000 mysql 126 Apr 27 17:06 frpc.ini #客戶端配置文件
-rwxrwxr-x 1 1000 mysql 12976128 Apr 27 16:59 frps #服務(wù)端啟動
-rw-rw-r-- 1 1000 mysql 4639 Apr 27 17:06 frps_full.ini
-rw-rw-r-- 1 1000 mysql 49 Jul 8 10:43 frps.ini #服務(wù)端啟動
-rw-rw-r-- 1 1000 mysql 11358 Apr 27 17:06 LICENSE
drwxrwxr-x 2 1000 mysql 4096 Apr 27 17:06 systemd
3、案例一:通過SSH訪問LAN中的計(jì)算機(jī)
1.配置服務(wù)器端
修改服務(wù)器上的frps.ini文件,并設(shè)置bind_port
[common]
bind_port = 7000
啟動服務(wù)器端
./frps -c ./frps.ini
2.配置客戶端
修改服務(wù)器上的frps.ini文件,并設(shè)置bind_port
- server_addr:服務(wù)器端地址
- server_port:服務(wù)器端端口號
- local_ip:本地地址
- local_port:本地ssh連接端口號
- remote_port:服務(wù)器端映射端口號,需要在服務(wù)器端開啟
[common]
server_addr = 23.23.23.23
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 7001
啟動客戶端
./frpc -c ./frpc.ini
3.測試
從服務(wù)器端服務(wù)器通過SSH到客戶端服務(wù)器,如下所示:
x.x.x.x :服務(wù)器端ip
ssh -oPort=7001 root@x.x.x.x
3、案例二:通過穿透外網(wǎng)訪問內(nèi)網(wǎng)中的tomcat項(xiàng)目
1.配置服務(wù)器端
修改服務(wù)器上的frps.ini文件,并設(shè)置bind_port
[common]
bind_port = 7000
vhost_http_port = 8080
啟動服務(wù)器端
./frps -c ./frps.ini
2.配置客戶端
修改服務(wù)器上的frps.ini文件,并設(shè)置bind_port
- server_addr:服務(wù)器端地址
- server_port:服務(wù)器端端口號
- local_ip:本地地址
- local_port:本地ssh連接端口號
- remote_port:服務(wù)器端映射端口號,需要在服務(wù)器端開啟
[common]
server_addr = 服務(wù)器端ip
server_port = 7000
[web]
type = http
local_port = 8080
custom_domains = 可以是服務(wù)器端ip也可以是服務(wù)器端ip解析的域名
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 7001
啟動客戶端
./frpc -c ./frpc.ini
3.測試
訪問內(nèi)網(wǎng)tomcat,如下所示:
ip/域名:8080
4、案例三:frp的其它好用功能
1.訪問加密
由于每一個客戶端都使用frps的端口,只要別人知道你的域名或者url都能訪問你的服務(wù),但是某些服務(wù)是私密的或者只想讓限定的用戶訪問。
frp 通過 HTTP Basic Auth 來保護(hù)我們的 web 服務(wù),用戶可以通過用戶名和密碼才能訪問到服務(wù)。
該功能目前僅限于 http 類型的代理,需要在 frpc 的代理配置中添加用戶名和密碼的設(shè)置。
[web]
type = http
local_port = 8080
custom_domains = 可以是服務(wù)器端ip也可以是服務(wù)器端ip解析的域名
http_user = admin
http_pwd = admin
5、案例四:Admin UI
Admin UI 可以幫助用戶通過瀏覽器來查詢和管理客戶端的 proxy 狀態(tài)和配置。
需要在 frpc.ini 中指定 admin 服務(wù)使用的端口,即可開啟此功能:
[common]
admin_addr = 內(nèi)網(wǎng)機(jī)器ip
admin_port = 7400
admin_user = admin
admin_pwd = admin
打開瀏覽器通過 http://ip:7400 訪問 Admin UI,用戶名密碼默認(rèn)為 admin。
如果想要在外網(wǎng)環(huán)境訪問 Admin UI,將 7400 端口映射出去即可。