原文http://code.csdn.net/news/2819878/5

本文的美女作者: Lauren Orsini是一个专业记者、业余程序员和全职宅女,她住在饱受交通之苦的Arlington, VA。

从SSH到端口转发,这些先进的技术将让你的树莓派开发更简单。

当你可以在命令行输入命令时,你就不再是一个新手在做一些 新手的设置了。虽然进度不快,但是你的确正在通过你的方式去学习使用这物超所值的、只有信用卡大小的计算机去满足一些DIY想法,这就是树莓派。

然而,从基础跨越到中级还是存在较大距离。当你从“设置你的派”的教程转而学习“创建一个媒体服务器”时,项目开始前的需求就会有一点点挑战。许多中级的Pi教程,包括ReadWrite的一些文章,都会假设你已经对树莓派设置好了一些东西。

并非每一个项目都需要找个教程里的所有建议,但是知道这些步骤可以使项目更顺利地贴合需求。

当你准备脱离小白行列时,做一些树莓派教程的预先准备工作对你非常有用。

1) 使用SSH登录

SSH意思是 Secure Shell,它是一种加密网络协议,用于安全地在计算机与树莓派之间传输你的数据。项目中也许需要你通过你的计算机的命令行控制树莓派,而不是通过给树莓派连接显示器和键盘来控制。

现在SSH已经预先安装在树莓派系统 Raspbian中了,所以如果你安装的是最新版本或较新版本的树莓派都是支持SSH使用的。

要使用SSH,第一,你需要知道你的树莓派的IP地址,在你的树莓派中输入以下命令:

sudo ifconfig

会显示出三个段落。你的IP地址将会在第一段或者第三段显示,这主要看你的树莓派是通过线缆还是通过WIFI适配器连接网络的。如果是通过线缆连接,那请查看第一段,在“eth0”那行开始显示。如果是通过wifi链接,将在第三段“wlan0”开头的地方显示。

无论通过哪种方式,你将会看到以“inet addr”开头后面跟着像192.168.2.2这样类型的IP地址,这是我们在这篇文章中经常引用到的一种默认IP地址格式。

现在你有一个可以连接树莓派与你的电脑的IP地址了,如果你使用的是Mac,你已经有了内置的SSH,启动你的终端应用并输入:

ssh pi@192.168.2.2

连接之后将会要求输入密码,默认情况下,密码一般是“respberry”.如果你修改了默认密码,请输入你的新密码。这样,您将登入了树莓派系统。

如果你在一台PC,还需要附加的一个步骤。

下载并运行  PuTTY 或者其它支持Windows系统的SSH客户端。输入你的IP地址在如上截图中的输入框中。保持默认端口为22不变。然后安心回车,PuTTY将会提示你输入用户名和密码。输入之后,就可以开始在你的树莓派里远程工作了。

2) 使用远程桌面连接到你的树莓派

使用SSH去从命令行远程控制你的Pi是极好的,但是如果你想通过图形界面去管理你的Pi怎么办呢?幸运的是MAC和PC都已经内建了这种方式。

在你的树莓派中的命令行(是的,你可以通过SSH来操作),输入:

<a href="apt://xrdp"></a><a href="apt://xrdp">sudo apt-get install xrdp</a> 

xdrp是一种在可以在后台运行的计算机 守护进程,并支持Mac和PC上的微软远程桌面客户端。当树莓派中安装好xrdp之后,你的MAC或者PC就可以通过客户端登录到树莓派中了。

找到你的电脑中一个叫远程桌面的客户端。它本身并不是隐藏起来的,但没有放到应用程序的文件夹中。

出现上述提示时输入你的IP地址。接下来会弹出xrdp窗口,提示你输入用户名和密码。

如果进展顺利,你的树莓派桌面就会在你的电脑屏幕上的窗口里面显示出来了。

3) 给你的树莓派设置一个家庭网络的静态地址

在之前(第一步)找到的树莓派的IP地址现在是可以连接的,但是不能保证你的路由器会一直给你的树莓派分配一个永久固定的IP地址。这意味着在你网段中的其它计算机无法知道树莓派被分配了什么IP地址。那么如何来给树莓派分配静态的IP地址而不是每隔几天就在树莓派上执行“sudo ifconfig”命令,或者糟糕到每隔几个小时一次?

显然,我们要从“ifconfig”命令开始,所以输入:

sudo ifconfig

拿出笔和纸做准备,记录下面的三个IP地址。(#后面的代码是注释,实际不会显示.):

inet addr: 192.168.2.2 # 树莓派的当前IP地址
Bcast: 192.168.0.255 # 地址广播范围
Mask: 255.255.255.0 # 子网掩码

此外,你还需要知道另外2个信息。请输入以下命令获取网关和目的地址(译注:实际上我们只需要知道默认网关的IP就行了)。

netstat -nr

接下来,去查看你路由器上的配置。(如何进行这一步主要取决于你用什么路由器,所以还是查看下说明书吧)找出你的设备通过DHCP设置了哪段ip地址。有些地址是不能使用的,因为DHCP协议中已经分配使用了。所以要选择没有被使用的,例如,192.168.2.2。你的路由器也许可以让你保留一个未使用的IP地址,固定分配给像树莓派这样的本地设备。(如果你的路由器是Belkin,那大概就是这样)如果是这样的,那就不用看下面的部分了。

如果不能固定分配,你需要让树莓派知道它的新的ip地址。我们通过nano编辑器来编辑树莓派中相关的文件。

sudo nano /etc/network/interfaces

将“iface eth0 inet dhcp”这一段修改成“iface eth0 inet static”,也就是将动态获取IP修改成静态IP。

接下来输入如下,将下列X取代成你之前所记下来的地址信息。最上面的地址是我们将要把DHCP中没有使用的IP地址分配作为树莓派的静态IP地址。

address 192.168.2.2
netmask XXX.XXX.XXX.X
network XXX.XXX.X.X
broadcast XXX.XXX.X.X
gateway XXX.XXX.X.X

使用“sudo reboot”的命令重启树莓派系统后,在命令行再次输入“ifconfig”,我们刚刚新设置的静态IP设置就会呈现。

4) 端口转发至树莓派

一些树莓派程序可能需要你转发一个特定的网络端口号到你的树莓派。端口是信息在互联网传送的虚拟路径。有时候你需要转发一个端口来使像树莓派这样计算机可以被互联网访问,即使它在路由器后面。这种情况有点像拨电话分机号一样。

端口转发能够用于像 树莓派网页服务器,树莓派的VOIP或者简单的点对点下载。有超过65000个端口可供选择,你可以分配不同的端口给不同的树莓派项目用来进行通信。

某些端口默认情况下代表着特定的应用。例如80端口默认为HTML页面,21端口默认代表FTP传输,1194端口默认用于设置VPN服务器。所以大多数情况下,你应该选择默认的端口提供服务。

设置端口转发的方法完全取决于你的路由器,于是很难创建一个固定的关于设置端口转发教程。你只能阅读你路由器的说明书来定义端口和转发了。

下面链接了几个主流路由器厂商的端口转发教程。

  • Belkin
  • Netgear
  • Linksys

5) 在互联网上给你的树莓派设置静态地址

再次声明,如果你的运营商给了你一个静态IP,你就不需要看这个部分了。

我们已经给树莓派设置了一个静态的内部IP地址,这意味着在你的内部网络中总是能够连到你的树莓派。但是如果程序需要树莓派连接到互联网呢?如果你想要在你的树莓派上搭建一个Web服务器,在你网络之外的人们需要知道你的树莓派在哪里,这意味着我们要来设置一个像静态IP的公开地址。

我之所以说“看起来像”是因为我们已经设置了一个伪静态IP地址。通常,你所在的运营商将会不断变换分配给你的地址。所以每一次有人连接到你的树莓派时,我们就要写个脚本说:“树莓派已经搬家了,让我带你去新的地址吧! ”

我们可以通过 DDNS(即动态DNS)来实现,它实时维护名字解析,并通过 DDClient程序通知DDNS修改指向到你的树莓派。

首先需要注册一个类似 DNS Dynamic的动态主机服务。根据指示并创建新的名称服务器类似Yourserver.dnsdynamic.com.

接下来进入树莓派中的命令行,使用下面命令来安装DDNS客户端:

<a href="apt://ddclient"></a><a href="apt://ddclient">sudo apt-get install ddclient</a>

我们需要编辑DDNS客户端配置,使用新的名称服务器:

sudo nano /etc/ddclient/ddclient.conf 

每种服务配置都会有略微的不同,但是DDNS的网站会告诉你需要在配置文件中修改的内容。一个标准的DDNS配置,举个栗子,如 DDNS配置,可以直接复制粘贴。

你的运营商不会因为你的这个文件而停止更新给你分配的IP地址,因此我们在脚本的最前面设置一个守护进程执行的频度,以确保及时检查IP地址是否已经更改。

daemon=600
# check every 600 seconds

这里设置的是每10分钟检查一次,这是一个不错的选择。如果你设置成每秒钟检查一次,你的动态服务器恐怕不干,因为这样对它来说是一种轰炸。记得按下ctrl+x保存并退出配置文件。

接下来,输入:

ddclient

如上输入程序的名称就可以运行了。当你的树莓派开着的时候就会持续运行了。如果你重启树莓派,键入 “ddclient”就会重新开始运行了。

现在你的树莓派已经被装修一番,可以迎接更高级的教程了,请从中获得更多乐趣吧!


英文原文: Readwrite译者: disylee 校对: wxy

本文由 LCTT原创翻译, Linux中国荣誉推出。

技术宅女5步教你玩转树莓派相关推荐

  1. 一步一步教你玩转.NET Framework的配置文件app.config (转载)

    一步一步教你玩转.NET Framework的配置文件app.config 在一般的项目中,为了使你的代码更加灵活,更方便调整,减少不必要的hard code,我们都在config中添加许多配置信息, ...

  2. 4步教你玩转可视化大屏设计|内附实际操作

    小编上次写了篇大屏数据可视化的文章<大屏做成这样,领导不重视你都难!>,围绕布局排版.配色.点缀以及动态效果等方面,阐述了帆软的一些经验,文章中酷炫的大屏效果引起了很大反响,非常多热心的用 ...

  3. 微信小程序python_用python一步一步教你玩微信小程序【跳一跳】

    12月28日,微信上线了小游戏「跳一跳」,瞬间成了全民游戏,如何牢牢占据排行榜的第一位呢?用Python帮助你,Python真的无所不能. 作为技术出身的我们,是不是想用技术改变排名呢? 注意:本文适 ...

  4. 618 大促运营必看!4 步教你玩转商品运营

    618 大促是电商活动类型中非常典型的一类活动,这类活动一般借势而为,活动商品类目丰富,覆盖目标人群广泛.为了帮助活动运营同学基于数字化营销手段,对用户进行精准营销,从而最大程度上实现用户的活跃召回, ...

  5. python玩微信小程序游戏_用python一步一步教你玩微信小程序【跳一跳】

    12月28日,微信上线了小游戏「跳一跳」,瞬间成了全民游戏,如何牢牢占据排行榜的第一位呢?用Python帮助你,Python真的无所不能. 作为技术出身的我们,是不是想用技术改变排名呢? 注意:本文适 ...

  6. python玩微信小程序游戏_016 用python一步一步教你玩微信小程序【跳一跳】

    12月28日,微信上线了小游戏「跳一跳」,瞬间成了全民游戏,如何牢牢占据排行榜的第一位呢?用Python帮助你,Python真的无所不能. 作为技术出身的我们,是不是想用技术改变排名呢? 注意:本文适 ...

  7. 职场IT老手教你3步教你玩转可视化大屏设计,让领导眼前一亮!

    我是制造企业的IT中心的研发人员,平常工作就是配合业务部门出出报表,选型一些商业软件,并在内部负责实施运维.最近领导出去参观了一些数字化转型比较领先的工厂和制造企业,回来就甩给我几张图,问能不能我们也 ...

  8. 从安卓8.0到android n,只需三步! 教你玩转安卓平板屏幕校色

    校色对于摄影爱好者以及从事设计制图的专业人士而言,为了更好的处理作品,因此需要一个色彩饱和度和精准度都非常优秀的显示器.不过这些专业用户有时会外出拜访客户或者将自己的作品与同行们互相交流,这时肯定不会 ...

  9. 【华为云技术分享】六步教你玩转DevOps上华为云DevCloud实践

    摘要:在"DevOps能力之屋(Capabilities House of DevOps)"中,华为云DevCloud提出(工程方法+最佳实践+生态)×工具平台=DevOps能力. ...

最新文章

  1. [SCOI2009]生日礼物
  2. Java集合Set,List和Map等
  3. 微软开源 Scalar,提升操作巨型 Git 仓库的速度
  4. javascript 时间类型 Date
  5. 16R-在数组中查找目标值
  6. 机器学习算法之手撕SVM-线性(理论)
  7. Java 基本数据类型总结
  8. QT信号与槽机制与事件机制的区别
  9. SUSE Linux 网络配置
  10. 雅虎、领英接连退出中国,开发者:GitHub 也会受到影响吗?
  11. 什么邮箱的归档功能好用?
  12. 自定义QT标题栏和背景·边框
  13. 国内景色最震撼的9座雪山
  14. 《卡耐基成功学》阅读笔记
  15. 行走的励志君——选择和努力哪个更重要
  16. GIS开发入坑(一)--GeoServer发布DEM地形图
  17. c语言任伟,任 伟
  18. 手机app客户端软件制作成本
  19. 录制视频没有声音怎么回事?很可能忘了勾选这个选项
  20. 2.3   文 法 和 语 言 的 形 式 定义

热门文章

  1. 【百度小程序】细数百度小程序踩的坑
  2. How to deal with the Diehards ?
  3. oracle 数据库修改数据类型,保留原来数据
  4. 互联网保险O2O平台微服务架构设计
  5. cordova插件cordova-plugin-file实现本地文件访问
  6. 使用Rails和Dragonfly上传文件
  7. 百度定位sdk的api使用时获取地址信息为null的原因
  8. B. Serval and Inversion Magic
  9. 正则表达式-RegexBuddy工具
  10. c语言 int大端转小端,C++将整型数据转换成大端或小端存储顺序