树莓派:漂洋过海来看你

  • 时间:
  • 浏览:1

作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。

给树莓派连上显示器和键盘鼠标,就上能 像使用一台电脑一样使用它了。但好多好多 过后,.我歌词 歌词 都都 儿是把体积小巧的树莓派当做一一有两个便携设备来使用的。这俩 过后,用户可不希望随身带着体积庞大的鼠标、键盘和显示器。将会能用背后的电脑直接连接树莓派,但会 用该电脑的输入输出设备来操纵树莓派电脑,就上能 省去好多好多 暂且要的麻烦。除此之外,树莓派在物联网情境下的应用,也离不开多样的远程连接土措施。

局域网SSH登陆

常见的家庭或办公网络不是以一一有两个WiFi路由器为中心的。这俩 局域网场景下,上能 很容易的用SSH的土措施来远程登陆树莓派。SSH是用于远程服务器管理的加密协议。SSH分为服务器和客户端两端。树莓派将作为服务器端,而同一局域网下的另一台电脑上能 作为客户端。客户端成功登陆过后,.我歌词 歌词 都都 儿上能 从客户端用命令行的土措施来远程操作服务器端。

首先,.我歌词 歌词 都都 儿也能 开启树莓派上的SSH服务器。树莓派将会预装好了SSH服务器,.我歌词 歌词 都都 儿只也能 进入树莓派的设置页面开启就上能 。从终端用命令行进入设置页面:

但会 在"5 Interfacing Options" -> "P2 SSH"中打开SSH服务器:

为了远程连接,.我歌词 歌词 都都 儿也能 知道树莓派的IP地址。在树莓派上,.我歌词 歌词 都都 儿上能 用ifconfig命令来找到树莓派的IP地址:

从ifconfig的输出中找到树莓派在局域网中的IP地址。比如ifconfig输出中给出了对应WiFi连接的wlan0端口地址为192.168.1.101。这俩 过后,就上能 用同一局域网下的一些电脑来登录树莓派了。.我歌词 歌词 都都 儿也能 用这台电脑上的SSH客户端,比如说用UNIX下的ssh命令:

输入用户pi的密码,就上能 远程登录到树莓派上。实在使用SSH客户端时,除了说明树莓派的IP地址,还也能 一一有两个端口号。在省略端口号时,客户端默认为端口22。在Windows下,上能 使用PuTTy另一一有两个的SSH客户端软件。

Bonjour

但在中间的过程中,.我歌词 歌词 都都 儿也能 从树莓派本地运行ifconfig来查找它的IP地址,给远程登陆增加了暂且要的麻烦。.我歌词 歌词 都都 儿上能 用局域网扫描工具来找到树莓派的IP地址。UNIX系统下提供了arp命令行工具,通过ARP协议来找到局域网下所有设备的MAC地址和对应的IP地址。此外,在不同的平台下不是好多好多 图形化的局域网扫描软件,累似 IPhone上的Fing、Mac OSX下的LanScan、跨平台的Angry IP Scanner,都上能 帮助你列出同一局域网下所有设备的MAC地址和对应的IP。此外,你还上能 登录路由器的管理页面。好多好多 路由器不是列出连接设备及其IP。当然,通过这俩 土措施得到的IP是一一有两个列表,也能 从中筛选出目标IP。将会局域网下设备较多,其过程还是比较痛苦。

更方便的,树莓派提供了对Bonjour的支持。Bonjour用于自动发现网络上的设备,上能 实现局域网上的自动域名解析。在同一局域网下,上能 用主机名.local的形式,找到对应的IP地址。将会树莓派的默认主机名是raspberrypi,但会 上能 用raspberrypi.local来登陆到树莓派:

将会局域网内有多个以raspberrypi为名的主机,如此Bonjour将依次把它们称呼为:

raspberrypi
raspberryipi-2
raspberryipi-3
...

为了彻底处里主机名的冲突,你还上能 重新命名树莓派的主机名。在raspi-config的设置页面中,取舍"7 Advanced Options"->"A2 Hostname",更改主机名再重新启动树莓派,就能以新的主机名来进行Bonjour寻址。也能 注意的是,Windows系统并如此自带对Bonjour的支持。我就通过下载安装iTunes或"Bonjour Print Services for Windows"来获得Bonjour功能。

Bonjour给设备了提供了一一有两个动态域名,用于对应该设备的IP地址。在Mac OSX下,我就用下面命令来查询背后的IP地址:

dns-sd -q raspberrypi.local

互联网SSH登陆

介绍了局域网和点对点清况 下的SSH登陆,.我歌词 歌词 都都 儿上能 把野心放大一些,尝试在互联网环境中远程登陆SSH。我下面用几种不同的土措施实现。

1)NAT端口映射

将会.我歌词 歌词 都都 儿能拿到树莓派在互联网上的公网IP地址,如此就上能 直接用一一有两个命令SSH到该IP地址。大问題是,现在大部分局域网络都用DHCP来给设备分配网内的私有IP,很将会上能 了网关才享有一一有两个公网IP地址。一些网关允许设置基于NAT的端口映射。如下图所示,一组公网IP和端口号,能对应唯一的私网IP和端口号。这俩 清况 下,.我歌词 歌词 都都 儿就能从外网连接到局域网中的树莓派:

.我歌词 歌词 都都 儿上能 利用这俩 机制来找到树莓派,比如说,通过设置网关,让公网的199.165.145.1:8999对应私网的10.0.0.1:22。这里的199.165.145.1是网关的公网IP。10.0.0.1是树莓派的私网IP。22是SSH协议的默认端口。这时在互联网上的一些电脑上,就上能 SSH连接到局域网中的树莓派:

ssh pi@199.165.145.1:8999

为了用该土措施,.我歌词 歌词 都都 儿的网关也能 允许相关的端口映射设置。而好多好多 网关出于安全考虑,完正不向外网开放累似 的端口映射。但会 ,这俩 土措施看似可行,但实践中会遇到好多好多 困难。

2)REMOT3.IT

树莓派官网提供了一种生活简便的土措施,即使用Weaved公司推出的REMOT3.IT。首如此在树莓派上安装相关的工具: 

sudo apt-get install weavedconnectd
sudo weavedinstaller

在安装过程中,REMOT3.IT会要求你输入REMOT3.IT网站的账户信息。树莓派上安装完成后,在REMOT3.IT网站登陆买车人的账户,就能看一遍树莓派设备。如下图所示,网站会提供用于在互联网上连接到该树莓派所需的地址和端口号。根据地址和端口号,你就上能 在任何一一有两个连接到互联网的电脑上,用SSH客户端访问该树莓派。这俩 服务很好用,只恨该网站不但会 限制树莓派数目,不是限制SSH连接的时间。我想要处里那此限制,就也能 缴费了。

3)SSH反向隧道

实在,累似 于REMOT3.IT的技术如此自行实现。.我歌词 歌词 都都 儿上能 用SSH反向隧道(reverse tunneling)技术,从外网远程登陆树莓派。首先,让树莓派主动向公网服务器的某个端口发起SSH连接,比如vameilab.com:8999,形成一一有两个SSH隧道。.我歌词 歌词 都都 歌词 儿使用互联网上的一些电脑,通过SSH连接到服务器的这俩 端口时,服务器会把通信内容接力到与树莓派的SSH隧道中,最终抵达树莓派。整个过程如下图所示。将会公网服务器的域名和IP地址都相对固定,.我歌词 歌词 都都 儿就让用为找上能 了树莓派的IP地址而头痛。

SSH反向隧道

了解原理过后,.我歌词 歌词 都都 儿也上能 自行实现一一有两个累似 的中继服务器。我就使用Amazon或阿里云的弹性云来架设中继服务器。你也能 在云的控制台中开放用于反向连接的端口,如8999。从树莓派上用SSH命令建立反向隧道:

ssh -R 8999:localhost:22 vamei@vameilab.com

中间的命令,从树莓派的22端口到vameilab.com的8999端口建立反向隧道。登陆时用的vamei是中继服务器上的一一有两个账户。反向隧道建立过后,你就上能 从互联网上直接登陆树莓派了:

ssh -p 8999 pi@vameilab.com

总结

这篇文章介绍了点对点、局域网、互联网一有两个层面的远程登陆。在这俩 有两个层面上,树莓派还有好多好多 种一些的远程登陆土措施。我会在未来继续探索,暂且断补充到这篇文章中。

欢迎阅读“骑着企鹅采树莓”系列文章