之前已經介紹過遠端登入樹莓派,主要講的是區域網環境下通過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 user1@publicip.org
然後會跳轉登入至雲主機,此處可以檢視剛才建立的反向隧道的情況。
~$ 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 pi@publicip.org
該方法只能作為臨時訪問措施,如果想要通過反向隧道實現持久穩定訪問,可以設定通過設定後臺服務或通過autossh進行設定。
下期預告
下期我們將介紹通過內網穿透的方式遠端訪問區域網樹莓派,嘮這個我就不困啦。
歡迎關注我的公眾號,持續更新中~~~