從網際網路遠端訪問樹莓派

就是為了好玩 發表於 2021-05-09

之前已經介紹過遠端登入樹莓派,主要講的是區域網環境下通過SSH訪問樹莓派。通過網際網路環境下遠端訪問區域網內的樹莓派的方法,從實現角度上主要分為NAT埠對映、反向代理、內網穿透。本期我將介紹埠對映和SSH反向代理。

1.NAT埠對映

該種方法是通過拿到區域網上的公網IP,通過設定區域網閘道器NAT埠對映來實現從外網對樹莓派的直接訪問。本方法比較侷限,主要是目前比較難獲得公網IP,尤其是家庭自用的情況下,當然也可以聯絡你的寬頻運營商獲得固定公網IP。只能說這是一種方法,從實現上來說比較直接這裡我就不多介紹了,有公網IP直接666

2.SSH反向代理

SSH可以實現內網的登入,同樣可以利用該技術實現SSH反向隧道,實現從外網登入樹莓派。該方法的前提是你要有一臺具有公網IP的伺服器。

首先,讓樹莓派主動向具有公網IP的伺服器的某個埠發起SSH連線,比如publicip.org:9999,形成一個SSH隧道。當我們使用網際網路上的其他電腦,通過SSH連線到伺服器的這一埠時,伺服器會把通訊內容接力到與樹莓派的SSH隧道中,最終實現遠端訪問樹莓派。

之前我們已經介紹過申請一臺亞馬遜的雲主機,可以使用該主機來實現SSH反向代理服務。

(1)在雲主機上需要修改sshd_config配置檔案。

$ sudo nano /etc/ssh/sshd_config 
[sudo] password for haifeng: 
$ sudo service sshd reload

(2)在樹莓派上建立通道,這裡user1是雲主機的登入使用者名稱,publicip.org是雲主機的域名或者公網IP,10009是雲主機上開放的埠,也是你用來形成SSH反向隧道的埠。命令回車後會提示輸入密碼登入,輸入密碼登入即可。

ssh -R 10009:localhost:22 [email protected]

然後會跳轉登入至雲主機,此處可以檢視剛才建立的反向隧道的情況。

~$ netstat -anp | grep 10009
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:10009           0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::10009                :::*                    LISTEN      -                   

該執行視窗不允許關閉,關閉後該隧道也隨之關閉。

(3)然後在其他電腦上可以通過該隧道進行遠端登入了。

~$ ssh -p 10009 [email protected]

該方法只能作為臨時訪問措施,如果想要通過反向隧道實現持久穩定訪問,可以設定通過設定後臺服務或通過autossh進行設定。

下期預告

下期我們將介紹通過內網穿透的方式遠端訪問區域網樹莓派,嘮這個我就不困啦

從網際網路遠端訪問樹莓派

歡迎關注我的公眾號,持續更新中~~~

從網際網路遠端訪問樹莓派