從互聯網遠程訪問樹莓派

之前已經介紹過遠程登錄樹莓派,主要講的是局域網環境下通過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進行設置。

下期預告

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

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