从互联网远程访问树莓派

之前已经介绍过远程登录树莓派,主要讲的是局域网环境下通过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进行设置。

下期预告

下期我们将介绍通过内网穿透的方式远程访问局域网树莓派,唠这个我就不困啦

欢迎关注我的公众号,持续更新中~~~

posted @ 2021-05-09 11:30  就是为了好玩  阅读(851)  评论(0编辑  收藏  举报