之前已經介紹過遠程登錄樹莓派,主要講的是局域網環境下通過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進行設置。
下期預告
下期我們將介紹通過內網穿透的方式遠程訪問局域網樹莓派,嘮這個我就不困啦。
歡迎關注我的公眾號,持續更新中~~~
