【內網穿透】利用開源的 FRP 簡單實現一個內網穿透效果

利用開源的 FRP 簡單實現一個內網穿透效果

frp 是一個可用於內網穿透的高性能的反向代理應用,支持 tcp, udp, http, https 協議。linux

frp 的做用git

1.利用處於內網或防火牆後的機器,對外網環境提供 http 或 https 服務。github

2.對於 http, https 服務支持基於域名的虛擬主機,支持自定義域名綁定,使多個域名能夠共用一個80端口。shell

3.利用處於內網或防火牆後的機器,對外網環境提供 tcp 和 udp 服務,例如在家裏經過 ssh 訪問處於公司內網環境內的主機。centos

以 Centos 7.6 爲例,咱們來實現一個簡單的內網機器到 公網 IP 的端口映射,使得內網的機器能夠在外部進行訪問。安全

須要一臺有公網 IP 的映射機器,咱們這裏用的是一臺 阿里雲的 centos 7.7服務器

下面進入正文:架構

  1. 下載編譯好的 release 版本 frp 文件。

根據對應的操做系統及架構,從 Release 頁面下載最新版本的程序。ssh

將 frps 及 frps.ini 放到具備公網 IP 的機器上。tcp

將 frpc 及 frpc.ini 放處處於內網環境的機器上。

centos64位下載amd64,寫這篇文章的時候,最新版本是0.29。因此執行:

wget github.com/fatedier/fr…

解壓:tar -xvf frp_0.29.0_linux_amd64.tar.gz

cd frp_0.29.0_linux_amd64

2.配置 Server 端(用來代理的 那臺 阿里雲公網 IP 服務器)

修改 frps.ini 文件,這裏使用了最簡化的配置:

frps.ini

[common] bind_port = 7000 注意:7000端口要開放,(下方有詳細解釋怎麼開放系統端口) 啓動 frps:

nohup ./frps -c ./frps.ini & 3.配置 Client 端(咱們的內網服務器)

修改 frpc.ini 文件,假設 frps 所在服務器的公網 IP 爲 x.x.x.x;

這裏是指將內網的22端口映射到公網的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

注意:公網服務器6000、7000端口要開放 (在阿里雲的機器,點擊「配置安全組」,在「配置規則」裏假如兩條安全組規則,)

image.png

同時,在 centos 的防火牆裏,咱們要開放這兩個端口設置成對外可訪問的。

分別執行這三條命令:

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 &

上面是吧公網服務器的6000端口映射到內網服務器的22端口,這樣就能夠隨時使用ssh鏈接內網服務器了。

  1. 咱們測試下,使用 xshell,利用公網 IP 來登陸。 [用戶名] : [密碼]@X.X.X.X:6000

image.png

成功了,咱們經過公網 IP 鏈接到了一臺內網的機器!

寫在末尾:此次只是簡單使用下,幾步就成功了。這個工具功能還很強大有待使用挖掘。若是你們跟着這篇教程作了以後還有問題,或沒法成功,歡迎下方評論留言,我會及時回覆~

相關文章
相關標籤/搜索