继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

从互联网远程访问树莓派

Helenr
关注TA
已关注
手记 246
粉丝 14
获赞 47

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

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP