买的树莓派终于到了,迫不及待地折腾起来。第一步是让外网可以访问放在家里的树莓派,这样的话,树莓派就相当于一个在互联网上的主机,可以实现各种有意思的玩法。经过摸索,设置起来也不是太麻烦。另外,我用的是极路由,它本身自带的一些方便的插件,但理论上来说,别的路由器也可实现。以下是我的实现步骤:
将树莓派连接到路由器
这个没什么好说的,需要注意的一点是,为了防止路由器的DHCP可能改变树莓派的IP地址,建议设置一个静态IP,只要修改/etc/network/interfaces
文件即可,以下是我的设置,供参考,因为我用的是有线网络,所以改动的是eth0
,无线网络的话应该修改wlan0
。
1 | auto lo |
设置路由器
下面的需要用到极路由的两个插件:“超级端口转发”和“动态域名”
端口转发
这一步很关键,作用是将外网对路由器的请求映射到树莓派。这里使用的是极路由,打开“超级端口转发”插件,在DMZ主机的IP地址栏输入树莓派的IP,表示所有请求都转发到树莓派,这样就不用每个端口单独设定了,如下:
当然也可以单独指定端口,比如我下面只把22端口做转发:
动态域名
这是极路由提供的服务,就是给你一个唯一的二级域名,指向你的wan口IP,因为电信给你分配的IP是经常变动的,如果直接使用IP访问的话就需要经常去查询最新的IP有没有变。极路由提供的动态域名服务可以自己设定喜欢的二级域名,这个很不错,比如我的是maxhis.jios.org
,以后我访问这个域名就可以访问到我的树莓派了。
如果你没有使用极路由,这里推荐一篇定期获取当前出口IP的文章,稍微麻烦点,但是可用。
设置独立域名
如果你没有独立域名,这一步可以忽略。这一步其实很简单,就是建一个CNAME到刚才申请的动态域名(当然也可以是你拿到的IP地址)。下面是我在DNSPod上的设置:
添加ssh public key到树莓派
其实到上一步,我已经可以通过ssh username@pi.15tar.com
登陆我的树莓派了,但是每次都需要输入密码太麻烦,所以把我把电脑的ssh public key添加到树莓派。
怎么生成ssh key就不说了,下面的命令直接copy public key到树莓派:
1 | ssh-copy-id -i ~/.ssh/id_rsa.pub username@pi.15tar.com |
如果不出意外的话应该在树莓派的.ssh/authorized_key
下看到刚刚增加的key。至此,ssh登陆的时候已经不需要输入密码了。
需要说明一点的是,OS X下默认没有ssh-copy-id
,需要手动安装。
设置ssh别名
还是感觉每次登陆输入这么一长串东西感觉太麻烦,于是对ssh做一个别名,简化输入。
在~/.ssh/config
文件下新增下面部分就可以了:
1 | #Pi local |
大功告成,以后输入ssh pil
或ssh pir
就可以方便地访问树莓派了。