frp的作用
利用處於內網或防火牆后的機器,對外網環境提供 http 或 https 服務。
對於 http, https 服務支持基於域名的虛擬主機,支持自定義域名綁定,使多個域名可以共用一個80端口。
利用處於內網或防火牆后的機器,對外網環境提供 tcp 和 udp 服務,例如在家里通過 ssh 訪問處於公司內網環境內的主機。
配置說明
-
實現功能
1、外網通過ssh訪問內網機器
2、自定義綁定域名訪問內網web服務 -
配置前准備
1、公網服務器1台
2、內網服務器1台(我這里演示的是linux環境,win10上面vmware安裝的centos7)
3、公網服務器綁定域名1個(實現二1中(1)功能不需要公網服務器綁定域名,二1中(2)功能必須需要公網服務器綁定域名)
4、內網服務器部署一個web服務,可以用tomcat模擬,這里就不演示了
安裝frp
1、公網服務器與內網服務器都需要下載frp進行安裝,公網服務器(服務端)配置關注步驟6,內網服務器(客戶端)關注步驟7
2、下載linux版本frp_0.13.0_linux_amd64.tar.gz 或用wget下載
下載鏈接地址
wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz
3、新建目錄mkdir -p /usr/local/frp,上傳frp_0.13.0_linux_amd64.tar.gz至linux服務器該目錄下
4、解壓tar -zxvf frp_0.13.0_linux_amd64.tar.gz
5、進入解壓目錄cd frp_0.13.0_linux_amd64,這里主要關注4個文件,分別是frpc、frpc.ini和frps、frps.ini,前者兩個文件是客戶端所關注文件,后者兩個文件是服務端所關注兩個文件
6、配置服務端(公網服務器),首先刪掉frpc、frpc.ini兩個文件,然后再進行配置,vi ./frps.ini
~~~xml
[common]
bind_port = 7000 #與客戶端綁定的進行通信的端口
vhost_http_port = 6081 #訪問客戶端web服務自定義的端口號
~~~
保存然后啟動服務
~~~xml
nohup ./frps -c ./frps.ini &
~~~
7、配置客戶端(內網服務器),首先刪掉frps、frps.ini兩個文件,然后再進行配置,vi ./frpc.ini
~~~xml
[common]
server_addr = 120.X.X.48 #自己公網服務器ip
server_port = 7000 #與服務端bind_port一致
#公網通過ssh訪問內部服務器
[ssh]
type = tcp #連接協議
local_ip = 192.168.0.1 #自己內網服務器ip
local_port = 22 #ssh默認端口號
remote_port = 6000 #自定義的訪問內部ssh端口號
#公網訪問內部web服務器以http方式
[web]
type = http #訪問協議
local_port = 8081 #內網web服務的端口號
custom_domains = repo.iwi.com #所綁定的公網服務器域名,一級、二級域名都可以
~~~
保存然后執行,后台啟動命令為
~~~xml
nohup ./frpc -c ./frpc.ini &
~~~
8、訪問方式
直接可以通過外網 + remote_port端口即可實現內外汪穿透訪問
舉例: 公網IP服務器地址(120.X.X.48) + 端口(6000),即可訪問到內網 192.168.0.1 :22 服務器