使用lanproxy搭建屬於本身的內網穿透平臺

項目背景

公司目前有一些接入到4G網絡的樹莓派,須要經過遠程shell鏈接對其進行管理和平常維護。可是這些設備沒有固定的公網ip,因此須要經過內網穿透來解決。java

準備工做

  • 須要進行穿透的樹莓派*N(咱們安裝的是ubuntu 20系統,如下操做命令均基於此係統)
  • 一臺具備公網IP/域名的服務器,系統不限(咱們使用的是阿里雲windows server)
  • lanproxy

架構原理

這裏大概講一下過程,不少細節須要看後續步驟才能理解

大致流程:linux

  1. 首先咱們在阿里雲開啓內網穿透lanproxy服務端,監聽8000端口
  2. 在阿里雲上lanproxy控制檯中,爲一個樹莓派建立密鑰(啓動客戶端的時候須要用到這個密鑰)而且指定一個對外端口10000
  3. 客戶端(樹莓派)啓動lanproxy客戶端,鏈接到阿里雲8000端口,雙方創建長鏈接
  4. 經過xshell鏈接到阿里雲10000端口,便可成功鏈接到該樹莓派。

注意事項:git

  • 以上說起的全部端口基於咱們公司實際項目填寫,實際配置過程當中能夠隨意填寫。
  • 以上用到的服務器(阿里雲)端口要在防火牆中開放,不然沒法使用

架構圖:
image.pnggithub

PS:有的小夥伴可能會問,全部樹莓派都鏈接到同一個阿里雲端口,那麼服務端是靠什麼來進行路由轉發的呢?答案是密鑰,這裏會在下邊的教程中說起。shell

部署過程

1.安裝服務端

下載服務端–下載地址
連接裏邊有好多文件,注意別弄混了,服務端的文件名爲:proxy-server-0.1.zip
將壓縮包解壓以後,首先打開conf/config.properties文件,內容以下:ubuntu

server.bind=0.0.0.0
#客戶端的鏈接端口
server.port=4900     

server.ssl.enable=true
server.ssl.bind=0.0.0.0
server.ssl.port=4993
server.ssl.jksPath=test.jks
server.ssl.keyStorePassword=123456
server.ssl.keyManagerPassword=123456
server.ssl.needsClientAuth=false

config.server.bind=0.0.0.0
#服務端後臺界面端口號
config.server.port=8090
#後臺帳號
config.admin.username=admin
#後臺密碼
config.admin.password=admin

其中有兩行特別容易混淆的地方須要單獨說明windows

server.port=4900     
config.server.port=8090

其中server.port是服務端與被穿透設備通訊時用到的端口(架構圖中沒有畫出這個對應的端口),也就是我在上邊架構圖中畫的8000端口。
config.server.port是指服務端後臺界面端口,咱們部署完後,經過 localhost:8090便可訪問這個界面。
遠程端口(就是我上邊提到的10000、1000一、10002)不在配置文件中配置,須要去後臺界面中配置!安全

以上內容能夠根據須要修改。ssl部分由於咱們項目中沒有用到,故不作講解。服務器

啓動服務端須要java運行環境,沒有的須要自行安裝一下!網絡

配置完後,使用bin/目錄下的具體sh或bat文件啓動項目。經過locathost:8090(若是你改端口了,就用自定義的端口)訪問後臺,而後按照以下圖示操做。
image.png
image.png
image.png
到此爲止,咱們安裝好了lanproxy客戶端,而且配置了一臺客戶端的密鑰和穿透端口。須要注意的是,以上用到的端口都須要在防火牆中對外開放(我用的阿里雲,須要在阿里雲後臺配置安全組策略)。

接下來咱們須要配置客戶端。

2.安裝客戶端

首先我準備了一臺裝有ubuntu 20的樹莓派(無桌面)。lanproxy準備了用go編譯號的客戶端,使用起來十分方便。點擊下載客戶端

下載連接中, lanproxy-client-*開頭的都是客戶端,須要根據本身的系統選擇對應的版本。樹莓派是arm架構的,因此我下載的是lanproxy-client-linux-arm.tar.gz,若是是使用桌面cpu的服務器(英特爾或amd),則須要下載lanproxy-client-linux-amd64-20190523.tar.gz或 lanproxy-client-linux-386-20190523.tar.gz(分別對應64位和32位機器)

使用樹莓派獲取壓縮包並解壓後,使用命令後臺啓動程序

sudo nohup client_linux_arm7 -s 服務端IP或域名 -p 服務端端口  -k 密鑰 &

其中「服務端端口」指的就是剛纔配置文件中「server.port」字段指定的端口號

3.測試

客戶端啓動後,登陸lanprox控制檯,在‘客戶端管理’界面便可查看到設備的在線狀態。

使用xshell進行鏈接,輸入公網的ip和端口號,則能夠直接鏈接到樹莓派裏邊了。

優化

樹莓派添加客戶端開機自啓功能

待完成

服務器添加服務端開機自啓功能

待完成

相關文章
相關標籤/搜索