? 利用`frp`實(shí)現(xiàn)樹(shù)莓派的公網(wǎng)映射(讓外網(wǎng)訪問(wèn)本地局域網(wǎng)里的樹(shù)莓派)

一直就想試試把本地電腦公開(kāi)到公網(wǎng)實(shí)現(xiàn)自己做服務(wù)器的感覺(jué),有了樹(shù)莓派后更有這種想法。于是就動(dòng)手試試。

聽(tīng)說(shuō)目前兩種方法比較流行:ngrokfrp。但是ngrok是收費(fèi)的且復(fù)雜,frp則完全開(kāi)源免費(fèi)且簡(jiǎn)單易用,所以這里來(lái)嘗試下。

大概思路就是:自己先有一臺(tái)公網(wǎng)的服務(wù)器(我是在AWS或DigitalOcean租的),然后讓本地的樹(shù)莓派與公網(wǎng)服務(wù)器通過(guò)frp程序達(dá)成一種映射連接,這樣別人訪問(wèn)公網(wǎng)服務(wù)器ip的某個(gè)端口時(shí),就會(huì)自動(dòng)轉(zhuǎn)向來(lái)訪問(wèn)本地的樹(shù)莓派了。

做法是:分別在服務(wù)器和本地樹(shù)莓派上下載frp程序,當(dāng)然要根據(jù)兩者自己的系統(tǒng)平臺(tái)下載不同版本。然后在服務(wù)器運(yùn)行frps,即frp-server,在本地運(yùn)行frpc,即frp-client。并且在配置文件里約定好,服務(wù)器的哪個(gè)端口映射到本地的哪個(gè)端口。雙方都運(yùn)行后,就可以正常通過(guò)外網(wǎng)訪問(wèn)了。

難度

這個(gè)服務(wù)的環(huán)境、啟動(dòng)、安裝等簡(jiǎn)單到讓人發(fā)指,唯一的難度就在于服務(wù)器上和本地上兩個(gè).ini配置文件。
配置文件搞明白了,就什么都明白了。有一點(diǎn)不明白,就全不明白。。。

參考文章。
官方下載地址。其中,服務(wù)器如果是Ubuntu或Debian系的,就選擇linux_amd64.tar.gzlinux_386.tar.gz結(jié)尾的,一個(gè)是64位一個(gè)是32位。本地樹(shù)莓派如果是樹(shù)莓派系統(tǒng),則選擇linux_arm.tar.gz結(jié)尾的。

第一:服務(wù)器上安裝配置frp

#下載frp:
wget https://github.com/fatedier/frp/releases/download/v0.16.0/frp_0.16.0_linux_amd64.tar.gz
#解壓:
tar -xzvf frp_0.16.0_linux_amd64.tar.gz
#進(jìn)入目錄:
cd frp_0.16.0_linux_amd64
#修改服務(wù)器端配置文件:
vim frps.ini

#將內(nèi)容全部替換為如下:
# frps.ini
[common]
bind_addr = 0.0.0.0
bind_port = 7000
vhost_http_port = 8000
vhost_https_port = 8001
dashboard_port = 7500
privilege_token = 123456
dashboard_user = ubuntu
dashboard_pwd = 123
log_file = ./frps.log
log_level = info
log_max_days = 3
max_pool_count = 5
authentication_timeout = 900
tcp_mux = true

保存退出后,
就可以在當(dāng)前目錄通過(guò)sudo ./frps -c frps.ini啟動(dòng)服務(wù)器端的這項(xiàng)服務(wù)了。

測(cè)試:
隨便找個(gè)瀏覽器,輸入服務(wù)器的IP和剛剛設(shè)置的后臺(tái)管理端口號(hào),就可以訪問(wèn)了。比如我的服務(wù)器IP是13.250.64.172,那么就輸入:http://13.250.64.172:7500
然后就可以看到如下:

image
image

然后按照剛才設(shè)置的賬號(hào)密碼:admin, admin就能登錄到,顯示如下圖:
image
image

第二:本地樹(shù)莓派裝frp

本地配置要比服務(wù)器配置難很多,經(jīng)常出問(wèn)題。尤其是我的機(jī)器只要一設(shè)置ssh,就會(huì)出錯(cuò)。
基本配置如下:

[common]
server_addr = 服務(wù)器IP地址
server_port = 7000
privilege_token = 123456

log_file = ./frpc.log
log_level = info
log_max_days = 3
pool_count = 5
tcp_mux = true

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 2200

[web]
type = http
local_port = 80
custom_domains = 服務(wù)器IP地址或服務(wù)器的域名(仔細(xì)填寫(xiě),這是連接的主要方式)

保存退出后,在frp的文件夾執(zhí)行:sudo ./frp -c frpc.ini,就能啟動(dòng)了。

現(xiàn)在,保證服務(wù)器端和客戶端的兩個(gè)服務(wù)都在同時(shí)運(yùn)行時(shí),我們就可以使用了。

連接好后,用這個(gè)命令連接ssh:

$ ssh ClientUser@ServerIP -p 2200
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容