Featured image of post Unifi DDNS支持DNSPod

Unifi DDNS支持DNSPod

Unifi的USG自身的DDNS不支持dnspod,这让原本在腾讯云申请的几个域名得不到利用,但我们可以有其它办法…

背景

家里的内网一些服务希望在外部可以访问,它需要在路由上动态注册自己的IP到某个域名,此即所谓的DDNS(Dynamic DNS)[https://en.wikipedia.org/wiki/Dynamic_DNS]。然而新入手的USG作为主路由,其所支持的如下: 如何让我们托管在dnspod.cn上的域名可以使用DDNS呢?

机制

unifi在pppoe拨号成功后,会调用起/etc/ppp/ip-up.d下的脚本,所以我们只要在对应目录下放置更新dnspod的脚本即可。(PS:网上的一些定时触发刷新ddns的方式,不如依赖于此oncall机制优雅)

步骤

  1. 在github上找到一个纯shell的ddns脚本并且支持dnspod。使用方法参看其介绍,很简单,不赘述。注意使用dnspod需要申请API Token等。

  2. 将上面脚本文件拷贝到/etc/ppp/ip-up.d并设置执行权限,如脚本名叫update-dnspod

1
chmod 777 update-dnspod
  1. 我们可以在USG的终端重新拨号看看是否能正常上报。
1
2
3
4
disconnect interface pppoe0  # 断开pppoe
connect interface  pppoe0    # 连接pppoe

show interfaces pppoe  # 查看当前获得的最新公网IP

这时可以去云厂商的DNS解析中查看,应该已经刷新记录了。