公司目前有一些接入到4G網絡的樹莓派,須要經過遠程shell鏈接對其進行管理和平常維護。可是這些設備沒有固定的公網ip,因此須要經過內網穿透來解決。java
這裏大概講一下過程,不少細節須要看後續步驟才能理解
大致流程:linux
注意事項:git
架構圖:github
PS:有的小夥伴可能會問,全部樹莓派都鏈接到同一個阿里雲端口,那麼服務端是靠什麼來進行路由轉發的呢?答案是密鑰,這裏會在下邊的教程中說起。shell
下載服務端–下載地址
連接裏邊有好多文件,注意別弄混了,服務端的文件名爲: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(若是你改端口了,就用自定義的端口)訪問後臺,而後按照以下圖示操做。
到此爲止,咱們安裝好了lanproxy客戶端,而且配置了一臺客戶端的密鑰和穿透端口。須要注意的是,以上用到的端口都須要在防火牆中對外開放(我用的阿里雲,須要在阿里雲後臺配置安全組策略)。
接下來咱們須要配置客戶端。
首先我準備了一臺裝有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」字段指定的端口號
客戶端啓動後,登陸lanprox控制檯,在‘客戶端管理’界面便可查看到設備的在線狀態。
使用xshell進行鏈接,輸入公網的ip和端口號,則能夠直接鏈接到樹莓派裏邊了。
待完成
待完成