frp實作内網穿透
目标
通過外網通路内網裝置,本文中實作通過手機的移動流量,可以通路到樹莓派裝置
裝置準備
需要被通路的裝置(本文中使用Raspberry Pi`)、公網IP裝置(本文中使用阿裡雲 輕量應用伺服器)
軟體準備
frp

開源位址
https://github.com/fatedier/frp部署
選擇版本
首先下載下傳frp,進入
Release根據系統及cpu指令集選擇所需的版本,
例如我的Raspberry Pi CPU為博通 arm架構 作業系統為Linux發行版(Raspberry Pi 32bit)
是以我選擇的是 frp_x.xx.x_linux_arm.tar.gz Linux系統arm版本
然後使用
lscpu
檢視阿裡雲伺服器的cpu資訊,這裡我查詢到的是Intel(R) Xeon 英特爾的至強處理器,作業系統為Linux發行版(Ubuntu 18.04)
是以伺服器選擇的軟體版本是 frp_x.xx.x_linux_386.tar.gz Linux系統i386版本
然後将軟體包放到對應的裝置中
可以将軟體包下載下傳下來傳到伺服器 或者 Raspberry Pi 中
也可以直接在github上的軟體包直接右鍵複制下載下傳位址
通過
wget 檔案位址
的指令下載下傳到對應系統上,
解壓
在家目錄建立frp目錄
mkdir ~/frp
然後解壓軟體包
tar -zxvf 包名
例如我的是
tar -zxvf frp_0.34.1_linux_amd64.tar.gz
然後檢視目錄
ls
此時應該會看到一個與壓縮包同名的目錄
然後進入目錄
cd 目錄
再次檢視目錄
ls
目錄中會有
frps frps.ini frpc frpc.ini
等多個檔案,我們要用的的隻有
frps frps.ini frpc frpc.ini
這四個檔案
|── frps 服務端可執行程式
└── frps.ini 服務端配置檔案
└── frpc 用戶端可執行程式
└── frpc.ini 用戶端配置檔案
└── *等
然後根據裝置來選擇保留檔案,
伺服器需要選擇
frps和frps.ini
兩個檔案
執行
移動目前目錄下的
frps
檔案到
~
下的
frp
目錄中
mv ./frps ~/frp/
frps.ini
~
frp
mv ./frps.ini ~/frp/
内網裝置上也是同樣的步驟先建立一個
frp
目錄
mkdir ~/frp
tar -zxvf 包名
然後進入解壓目錄
cd 目錄名
此時内網裝置需要選擇用戶端程式 也就是
frpc 和 frpc.ini
同樣将兩個檔案移動到
frp
mv ./frpc ~/frp/
mv ./frpc.ini ~/frp/
服務端配置(公網裝置端)
使用vim/vi編輯器打開配置檔案(此處可查詢vim 使用指令 常用如
i 開啟插入模式 Esc進入指令模式 指令模式下 ZZ 儲存并退出
)
vim ~/frp/frps.ini
此時修改
7000
使用其它端口 也可以使用預設
7000
端口
此處修改端口為7001
修改後為下
[common]
bind_port = 7001 #此處為服務端需要開放給用戶端的端口
用戶端配置(内網裝置端)
vim ~/frp/frpc.ini
[common]
server_addr = x.x.x.x #此處為伺服器ip位址 也就是公網ip
server_port = 7001 #此處為服務端 設定的端口 由于上面我們改為了7001
[ssh]
type = tcp
local_ip = 127.0.0.1 #設定為127.0.0.1即可
local_port = 22
remote_port = 6000 #此處為通路時所需要的端口 需要記住 目前就使用預設了
運作服務
啟動服務端
在伺服器執行以下指令
~/frp/frps -c ~/frp/frps.ini
啟動用戶端
在内網裝置執行以下指令
~/frp/frpc -c ~/frp/frpc.ini
測試
打開其它外網裝置,進行連接配接測試 此處我使用安卓手機開啟流量測試ssh連接配接
ssh -p (remote_port設定的值也就是6000) 内網裝置使用者名@公網ip
回車後輸入的密碼是内網裝置密碼
例如我的就是
ssh -p 6000 [email protected]
設定背景運作
此時如果已經連接配接成功,說明配置沒有問題了,但是會發現如果終端關掉了,服務就停止了,
是以要設定背景運作
服務端執行
nohup ~/frp/frps -c ~/frp/frps.ini &
用戶端執行
nohup ~/frp/frpc -c ~/frp/frpc.ini &
exit
退出終端就可以使用了