利用開源的 FRP 簡單實現(xiàn)一個內(nèi)網(wǎng)穿透效果
frp 是一個可用于內(nèi)網(wǎng)穿透的高性能的反向代理應用,支持 tcp, udp, http, https 協(xié)議。
frp 的作用
1.利用處于內(nèi)網(wǎng)或防火墻后的機器,對外網(wǎng)環(huán)境提供 http 或 https 服務。
2.對于 http, https 服務支持基于域名的虛擬主機,支持自定義域名綁定,使多個域名可以共用一個80端口。
3.利用處于內(nèi)網(wǎng)或防火墻后的機器,對外網(wǎng)環(huán)境提供 tcp 和 udp 服務,例如在家里通過 ssh 訪問處于公司內(nèi)網(wǎng)環(huán)境內(nèi)的主機。
以 Centos 7.6 為例,我們來實現(xiàn)一個簡單的內(nèi)網(wǎng)機器到 公網(wǎng) IP 的端口映射,使得內(nèi)網(wǎng)的機器可以在外部進行訪問。
需要一臺有公網(wǎng) IP 的映射機器,我們這里用的是一臺 阿里云的 centos 7.7
下面進入正文:
下載編譯好的 release 版本 frp 文件。
根據(jù)對應的操作系統(tǒng)及架構(gòu),從 Release 頁面下載最新版本的程序。
將 frps 及 frps.ini 放到具有公網(wǎng) IP 的機器上。
將 frpc 及 frpc.ini 放到處于內(nèi)網(wǎng)環(huán)境的機器上。
centos64位下載amd64,寫這篇文章的時候,最新版本是0.29。所以執(zhí)行:
解壓:tar -xvf frp_0.29.0_linux_amd64.tar.gz
cd frp_0.29.0_linux_amd64
2.配置 Server 端(用來代理的 那臺 阿里云公網(wǎng) IP 服務器)
修改 frps.ini 文件,這里使用了最簡化的配置:
frps.ini
[common]
bind_port = 7000
注意:7000端口要開放,(下方有詳細解釋怎么開放系統(tǒng)端口)
啟動 frps:
nohup ./frps -c ./frps.ini &
3.配置 Client 端(我們的內(nèi)網(wǎng)服務器)
修改 frpc.ini 文件,假設 frps 所在服務器的公網(wǎng) IP 為 x.x.x.x;
這里是指將內(nèi)網(wǎng)的22端口映射到公網(wǎng)的6000端口上
frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
注意:公網(wǎng)服務器6000、7000端口要開放? (在阿里云的機器,點擊“配置安全組”,在“配置規(guī)則”里假如兩條安全組規(guī)則,)
image.png
同時,在 centos 的防火墻里,我們要開放這兩個端口設置成對外可訪問的。
分別執(zhí)行這三條命令:
firewall-cmd --zone=public --add-port=6000/tcp --permanent? ? ? ? # 開放 6000 端口
firewall-cmd --zone=public --add-port=7000/tcp --permanent? ? ? ? # 開放 7000 端口
firewall-cmd --reload? ? ? ? # 重載防火墻設置
啟動 frpc:
nohup ./frpc -c ./frpc.ini &
上面是吧公網(wǎng)服務器的6000端口映射到內(nèi)網(wǎng)服務器的22端口,這樣就可以隨時使用ssh連接內(nèi)網(wǎng)服務器了。
我們測試下,使用 xshell,利用公網(wǎng) IP 來登錄。 [用戶名] : [密碼]@X.X.X.X:6000
image.png
成功了,我們通過公網(wǎng) IP 連接到了一臺內(nèi)網(wǎng)的機器!
寫在末尾:這次只是簡單使用下,幾步就成功了。這個工具功能還很強大有待使用挖掘。如果大家跟著這篇教程做了之后還有問題,或無法成功,歡迎下方評論留言,我會及時回復~
作者:OneCodeMonkey
鏈接:https://juejin.im/post/5d9a093f6fb9a04de30c6e82
來源:掘金
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。