通过DNSpod在Raspberry Pi 3b+ 快速搭建动态域名解析(DDNS)

最近入坑树莓派,想在上面折腾shadowsocks和LNMP的建站,因为是直接连在自己家里的运营商网络上,没有固定IP,所以首要刚需就是绑定一个固定域名进行动态域名解析。查阅了一些资料,总结出一套10分钟大法,简单高效,分享给大家。

本文是基于网上各个方案的提炼和总结,参考了如下来源:

  1. 利用DNSpod的api自动更新解析地址的.sh文件(来源
  2. 利用DNSpod建立token和ID的方式(来源
  3. 利用Raspbian的定期任务更新动态IP(来源
  4. sudo运行.sh文件报错: unexpected operator的解决方案(来源

整体思路介绍:

  1. 将已有域名的DNS解析服务器更换为DNSpod,方便之后利用DNSpod的API更新子域名IP
  2. 更换到DNSpod之后,新建一条A记录,作为树莓派的固定域名。例如你有一个顶级域名abc.com,那么可以新建一条子域名ddns.abc.com作为A记录,同时这个子域名也是之后访问树莓派的地址
  3. 在DNSpod申请token和对应的ID,具体过程见来源2
  4. ssh进入树莓派,下载来源1中的自动解析命令行文件,下载的命令为:sudo wget https://raw.githubusercontent.com/lixuy/dnspod-ddns-with-bashshell/master/dnspod_ddns.sh
  5. 用编辑器打开dnspod_ddns.sh文件,修改四个参数,分别是API_ID、API_Token、Domain、Host。具体这四个参数如何填写,请参考来源1。简单举例来说,API token和API ID分别对应步骤3申请的token结果,domain对应的你自己的顶级域名(不需要有www,例如你有一个www.abc.com的域名,这里的domain填abc.com就好),host是子域名(例如ddns.abc.com的话,host对应的是ddns)
  6. 用bash ./xxx.sh的方式运行步骤4下载的命令行文件,方法可参考来源4
  7. 如果顺利更新成功,命令行会有提示,此时进入DNSpod后台管理,ddns.abc.com的ip地址应该已经是树莓派的公网地址了
  8. 参考来源3,把该命令行加入到自动执行文件中,自动更新IP
  9. 最后在树莓派加入的路由器中设置端口转发,开启相应的服务。例如:假设树莓派的内网地址是192.168.1.2,则1)路由器设置外部端口2222转发至192.168.1.2的22端口,则用ssh pi@ddns.abc.com -p 2222命令可以直接进入树莓派terminal;2)路由器外部端口80或者443转发至树莓派的对应端口,则可以开启http/https访问,换句话说:可以挂个网站。关于网站,推荐使用LNMP一键功能搭建,具体教程可自行搜索;3)路由器上将192.168.1.2设置DMZ,实现大部分功能的穿透

希望对大家有帮助