树莓派与DNSPod动态域名解析

所需条件

  • Raspberry Pi
  • TP-Link路由器
  • DNSPod帐户
  • 域名

配置路由器

进入路由器的DHCP服务器->静态地址分配菜单,为Raspberry Pi分配静态IP地址,例如:192.168.1.200

进入路由器的安全功能->远端WEB管理菜单,设置WEB管理端口为一个非80值,例如82

进入路由器的转发规则->DMZ主机菜单,将DMZ主机IP地址设置为Raspberry Pi的ip地址,然后启用保存。

设置DNSPod动态域名解析

首先登录DNSPod网页管理域名,将二级域名wwwA记录解析到路由器外网IP(可通过路由器管理首页查询,或者通过浏览ip138.com来获得)

注:一级域名请解析@的A记录。

下载DNSPod官方客户端Lite https://support.dnspod.cn/Support/api

解压后双击打开登录,从右侧信息列表中也可以看到本机最新IP,点击相应域名后的动态解析按钮,在动态解析设置中右键点击相应的动态记录启用即可,关闭DNSPod官方客户端Lite

设置Raspberry Pi

安装Web服务器软件(Nginx)

#apt-get install nginx
#/etc/init.d/nginx start

内网可以通过浏览`http://192.168.1.129"来检查Nginx是否正常运行。

浏览https://gist.githubusercontent.com/chuangbo/833369,下载动态域名解析脚本(pypod.py)

编辑pypod.py修改以下内容:

login_email="email", # DSNPod帐户邮箱
login_password="password", # DSNPod帐户密码
domain_id=100, # 域名id
record_id=100, # 记录id
sub_domain="www", # 子域名

其中域名id记录id可以通过以下命令获取:

curl -k https://dnsapi.cn/Domain.List -d "login_email=xxx&login_password=xxx"
curl -k https://dnsapi.cn/Record.List -d "login_email=xxx&login_password=xxx&domain_id=xxx"

提示:如果你使用了www子域名,则需要获取www的记录id,如果使用一级域名(@),则需要获取@的记录id。

编辑完pypod.py保存退出,使用以下命令运行:

#python pypod.py

现在可以通过域名来浏览Raspberry Pi上的Web内容了。

pypod.py开机运行

添加/usr/bin/python /home/pi/pypod.py/etc/rc.local