沒有公網(wǎng)IP是一件很不方便的事情儒飒,尤其是在國(guó)內(nèi)的網(wǎng)絡(luò)環(huán)境。例如在校園網(wǎng)情況下想要使用遠(yuǎn)程桌面檩奠,只能使用第三方遠(yuǎn)程桌面軟件桩了。為了解決這個(gè)問題,則需要內(nèi)網(wǎng)穿透埠戳。
What is frp?
frp 是一個(gè)專注于內(nèi)網(wǎng)穿透的高性能的反向代理應(yīng)用井誉,支持 TCP、UDP整胃、HTTP颗圣、HTTPS 等多種協(xié)議∑ㄊ梗可以將內(nèi)網(wǎng)服務(wù)以安全在岂、便捷的方式通過(guò)具有公網(wǎng) IP 節(jié)點(diǎn)的中轉(zhuǎn)暴露到公網(wǎng)。
準(zhǔn)備工作
在使用frp之前蛮寂,需要一臺(tái)有公網(wǎng)IP的服務(wù)器蔽午,一臺(tái)需要實(shí)現(xiàn)內(nèi)網(wǎng)穿透的機(jī)器客戶端。
另外如果需要搭建web服務(wù)穿透酬蹋,最好好要有域名及老。
frp軟件包下載地址為:https://github.com/fatedier/frp/releases
根據(jù)自己的系統(tǒng)選擇合適抽莱、穩(wěn)定的版本。特別注意骄恶,服務(wù)器和客戶端使用的frp版本要一致岸蜗。
服務(wù)器
下載frp
wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz
tar命令解壓
tar -zxv
使用cd指令進(jìn)入解壓出來(lái)的文件夾,里面包括了服務(wù)器端和客戶端程序叠蝇,以及配置文件實(shí)例等
cd frp_0.36.2_linux_amd64/
ls
編輯配置文件
vi frps.ini
frp運(yùn)行時(shí)占用的端口的需要防火墻允許,frp才能正常運(yùn)行年缎。防火墻端口配置可參考CentOS 7防火墻 - 簡(jiǎn)書
[common]
#frp監(jiān)聽端口
bind_port = 7000
#鑒權(quán)令牌
token = 123123
#web代理占用端口
vhost_http_port = 8080
#開啟儀表盤悔捶,也就是web后臺(tái)管理
dashboard_port = 7700
dsshboard_user = username
dashboard_pwd = 123456
[common]bind_port = 7000部分是必須有的配置,為了安全起見单芜,token也必須配置一下蜕该。保存配置文件后,就可以啟動(dòng)了洲鸠。
./frps -c ./frps.ini
到此為止堂淡,服務(wù)器端就配置好了。
客戶端
下載frp扒腕,前面一系列的操作和服務(wù)器端一樣
wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz
tar -zxv
cd frp_0.36.2_linux_amd64/
編輯客戶端配置文件
vi frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
token = 123123
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
[web]
type = http
local_port = 80 #本地web監(jiān)聽端口
custom_domains = xxx.com
[desktop]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
#remote_port:個(gè)人使用端口绢淀,不能重復(fù)
remote_port = 1892
保存配置,輸入以下指令運(yùn)行frp客戶端瘾腰。
./frpc -c ./frpc.ini
此時(shí)在服務(wù)端會(huì)看到"start proxy sucess"字樣皆的,即連接成功。
可以通過(guò)服務(wù)器ip:6000和客戶端建立ssh連接蹋盆。
win可以通過(guò)服務(wù)器ip:1892進(jìn)行遠(yuǎn)程桌面费薄。
web服務(wù)可以通過(guò)xxx.com:8080訪問。
服務(wù)器ip:7700可以在web瀏覽器對(duì)frp進(jìn)行監(jiān)控栖雾。
如果連接失敗楞抡,大部分可能是防火墻原因,一定要記得開放對(duì)應(yīng)端口析藕。
后續(xù)frp管理
此時(shí)如果斷開與服務(wù)端或者客戶端的SSH連接(比如關(guān)掉了Xshell)也就中止了frp的運(yùn)行召廷。讓服務(wù)端的frp和客戶端的frp在后臺(tái)運(yùn)行,方法很多噪径,這里直接使用nohup指令柱恤。
服務(wù)器:
nohup ./frps -c ./frps.ini &
客戶端:
nohup ./frpc -c ./frpc.ini &
小結(jié)
frp的配置還是比較簡(jiǎn)單,一些特性功能可直接參考官方文檔 | frp