本篇讲介绍一下树莓派基本的网络配置,使其能够在公网正常访问。

http://harchiko.qiniudn.com/Pi_3_Model_B.png

烧录 micro sd 卡

具体操作可查看官方 https://www.raspberrypi.org/documentation/installation/installing-images/README.md,比较简单,不详述。

配置 IP 地址

烧录好之后插上 SD 卡,接好网线启动树莓派,看到树莓派灯正常亮系统应该就算启动完成了。

  1. 进入路由器后台, 打开 DHCP 服务,查看树莓派的 ip 地址,将其修改为固定 ip 地址后重启路由器 (我的为 192.168.0.169)。
  2. 使用 ssh pi@192.168.0.169登录树莓派(Mac/Linux 下直接使用 Terminal, Windows 下可使用 Xshell)

配置公网访问

路由器

  • DMZ 主机配置
    在路由器中,配置中找到 DMZ 主机选项,将其设置为树莓派的 ip。

SSH 配置

密码修改

 使用命令 `passwd pi` 修改 pi 的密码。建议密码修改强度足够强,因为这台主机会暴露在公网。

SSH 端口修改

 出于同样的安全考虑,修改 ssh 端口
  • 修改配置文件 vi /etc/ssh/sshd_config 将 ssh 端口修改为 xxxx(你希望的端口), 这里我设定的是 1213。
  • 重启 SSH 服务,sudo service ssh restart

查看本地 IP 是否能从公网访问

在国内,因为 ipv4 地址不够用或者一些其他原因,你所使用的 ip 可能是电信分配的局域网的 ip,这时候你就需要找电信客服说一下你需要公网 ip 让他们帮你改回来。

这里通过 telnet 服务看一下是否当前分配的是公网 ip

  1. 查看本机的公网 ip
    使用命令 curl ifconfig.me, 或者直接在百度中搜索 ip。
  2. 本地查看 SSH 服务端口号是否更改过来 telnet 192.168.0.169 1213
    (#xxxx 指的是端口号)
  3. 通过公网查看 通过第一步查看到的 ip 来从公网访问telnet xxx.xxx.xxx 1213
    (这里使用公网 ip)如果能够正常运行的话则证明此树莓派已经运行在公网。

这样 ssh 登录命令变为 ssh pi@xxx.xxx.xxx -p 1213 (指定端口)

将本地 ip 与域名绑定

因为家庭宽带的 ip 是不固定的,如果使用 ip 进行连接的话每次都要先获取到机器的当前 ip 才能进行 ssh 登录,这里我们将 ip 地址绑定到二级域名上。

按照此 repo: https://github.com/zhaochunqi/change_my_ip_on_dnspod 中 README 进行相应配置。

  1. clone 这个 repo, 在 Dnspod 中获取到 APIKEY,以及响应的二级域名需要的参数。
  2. 修改库中的 change_my_ip_on_dnspod.sh Shell脚本。
  3. 使用命令 chmod +x change_my_ip_on_dnspod.sh 添加脚本的可执行权限。
  4. 运行 ./change_my_ip_on_dnspod.sh 查看返回值, 得到如下图的结果即为成功。http://harchiko.qiniudn.com/Screen%20Shot%202016-04-18%20at%2012.13.26%20AM.png
  5. 登录树莓派系统 crontab -e在末尾添加
    1
    2
    # every 20 mins
    */20 * * * * ./path/to/change_ip_4_pi.sh

path/to/change_ip_4_pi.sh 替换为你的真实地址。

至此,你能从你刚刚绑定的二级域名直接访问到你的树莓派:

1
ssh pi@haha.mydomain.com -p 1213