一:frp簡介
frp 是什么?
frp 采用 Golang 編寫,支持跨平臺,僅需下載對應平臺的二進制文件即可執行,沒有額外依賴。
frp 是一個專注于內網穿透的高性能的反向代理應用,支持 TCP、UDP、HTTP、HTTPS 等多種協議??梢詫染W服務以安全、便捷的方式通過具有公網 IP 節點的中轉暴露到公網。
市面上一些主流的內網穿透工具有:Ngrok,Natapp,花生殼,Ssh、autossh,Frp,Lanproxy,Spike。
這里介紹使用frp工具。
Ngrok可參考我另一篇文章:搭建ngrok服務器,實現內網穿透服務
二:安裝frp
1:準備
一臺公網服務器(配置無要求網絡穩定就行),服務器端,如公網IP:123.32.12.32。
內網客戶端(準備要穿透出去的設備),客戶端,如內網IP:192.168.152.103。
2:下載解壓安裝包
gitlab地址:https://github.com/fatedier/frp,可以在 https://github.com/fatedier/frp/releases 頁面中下載到最新版本的客戶端和服務端二進制文件,所有文件被打包在一個壓縮包中。
找到自己Linux合適的版本,下載,主流Linux版本基本上都是amd64。
#下載wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz#解壓tar -zxvf frp_0.44.0_linux_amd64.tar.gz#進入目錄cd frp_0.44.0_linux_amd64/
進入文件夾,有兩個名稱文件frpc(c結尾代表client)和frps(s結尾代表server),分別是服務端程序和服務端配置程序。
需要將frpc拷貝至客戶端,即內網服務器,或者在客戶端直接下載也可以,客戶端只需要使用frpc文件即可。
root@ubuntu:~/frp_0.44.0_linux_amd64# lsfrpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE
三:配置服務器端和客戶端,及啟動
1:配置服務器端
這里是為服務端配置frp 只關注frps和frps.ini即可,原始最簡單配置為。
cat frps.ini
[common]#隧道通道,服務器和客戶端通過此端口通訊bind_port = 7000
最簡單也可以直接使用,先不配置其他測試使用先。
2:配置客戶端
只關注frpc和frpc.ini即可,修改frpc.ini。
vim frpc.ini
原始配置已經有ssh的端口配置,所以修改server_addr為服務器IP即可。
[common]server_addr = 123.32.12.32server_port = 7000[ssh]type = tcp#本機IPlocal_ip = 127.0.0.1#本機需要映射的端口22local_port = 22#遠程服務器映射的端口為6000remote_port = 6000
3:分別啟動服務器端和客戶端
注:服務器,如有防火墻,請開啟7000端口和有需要的端口。
服務器運行啟動:
./frps -c frps.ini
客戶端運行啟動:
./frpc -c frpc.ini
可以看到提示,都已經啟動成功
測試ssh連接,這里用第三方工具xshell測試。
連接IP 為公網IP地址,端口為6000端口。
連接登錄,即可登錄到內網的192.168.152.103機器。
最簡單的ssh端口映射就完成了。
四:升級配置
原始配置簡單,但是如果需要其他功能,可自行添加,如下:
1:服務器端配置
vim frps.ini
修改如下
[common]bind_port = 7000#http服務端口vhost_http_port = 8088#https服務端口vhost_https_port = 8443# dashboard網頁管理界面,以及設置賬戶密碼(非必須,未配置則直接進入)dashboard_port = 7500dashboard_user = admindashboard_pwd = admin#客戶端需要設置一樣的token值才能鑒權通過token = 12345678
2:客戶端配置
vim frpc.ini
修改如下:
[common]server_addr = 123.32.12.32server_port = 7000#token和服務器一致token = 12345678[ssh]type = tcp#本機IPlocal_ip = 127.0.0.1#本機需要映射的端口22local_port = 22#遠程服務器映射的端口為6000remote_port = 6000[web]type = http#本地http服務端口,默認80,按需配置local_port = 80# 綁定域名,注:配置http,必須需要域名,否則報錯。如沒有,可采用普通的tcp模式映射。custom_domains = xxx[ftp]type = tcplocal_ip = 127.0.0.1#本機需要映射的端口21local_port = 21#遠程服務器映射的端口為1121remote_port = 1121
3:啟動測試
分別啟動客戶端和服務器端
./frps -c frps.ini
客戶端運行啟動:
./frpc -c frpc.ini
瀏覽器打開web管理界面,http://123.32.12.32:7500/,輸入賬戶密碼,可查看端口映射相關情況。
同時訪問:http://123.32.12.32:8088,即可訪問跳轉到到內網192.168.152.103機器的http服務。
如果內網有ftp服務,用公網123.32.12.32的1121端口,即可訪問內網的ftp。
其他更多參數參考中文文檔:https://gofrp.org/docs/
4:后臺啟動
當然對于正式環境,可以配置后臺啟動,并保存日志輸出到相關文件。
服務端:
nohup ./frps -c frps.ini > /var/log/frp.log 2>&1 &
客戶端:
nohup ./frpc -c frpc.ini > /var/log/frp.log 2>&1 &
到此,frp服務器搭建完成。
linux搭建內網穿透 linux搭建frp服務器
還沒有評論,來說兩句吧...