20分钟搭建一个自用的DDNS服务

08年的时候,在学校,花了点时间做了个ddns服务,不知道现在是否还活着,ddns.bitunion.org。 当时的方案,powerdns + mysql + php ui,php ui是自己做的,简单地做了个校内邮箱的校验,使用了个简单的token机制来更新记录。 这回,有个需求是需要做一个ttl < 10的ddns服务,之前所有域名都在dns.he.net上,最小ttl限制到了300,这样以来,更新的延迟特定场景下不够用。 自用DDNS的需求里,域名不会被广泛知晓并使用,否则NS服务器的压力会是个问题。 方案还是一样,powerdns + mysql,写了个最简单的http接口页面给ddclient用。 服务器是 ubuntu 17.04,公网IP 1.2.3.4. 目标域名 xxx.ddns.sskaje.me 安装软件 按下列命令安装必备软件,全默认

配置powerdns 考虑到现在的linux服务器,本地53端口经常被占用,所以需要修改 /etc/powerdns/pdns.conf,指定监听的IP

配置zone和records 在sskaje.me的域名服务器上,添加NS记录 ddns.sskaje.me,指向IP 1.2.3.4。考虑到未来可能改IP,可以加一个A记录 ddns1.sskaje.me,指向 1.2.3.4,这样ddns.sskaje.me的NS设置成 ddns1.sskaje.me。 创建zone

更正SOA记录

添加 xxx.ddns.sskaje.me,设置ttl=10

简单的更新脚本 DynDNS的更新接口参数类似:

认证使用 http basic auth 完成的。 所以一个简单的服务端脚本

Incoming search terms:ubnt … Continue reading “20分钟搭建一个自用的DDNS服务”

TunnelBroker for EdgeRouter Lite

创建隧道 在北京联通这种不给IPv6网络的ISP下生存,总有走v6翻墙的欲望。 免费的Tunnel服务很多,最出名莫过HE.net的TunnelBroker 首先申请一个Tunnel。 访问:

注册登录之后,创建并输入当前路由公网IP “YOUR.ROUTER.INTERNET.IP”。 创建成功后会被跳转到

XXXXX的部分是一串数字,所谓的Tunnel ID. 在这个页面上选择第二个标签页 “Example Configurations” 选择 “Vyatta / Ubiquiti EdgeMAX” 文本框会自动生成如下配置:

remote-ip是创建时选择的远端服务器IP,local-ip是本地当前的出口IP。 鉴于ISP给的IP都是动态的,所以local-ip改成如下‘0.0.0.0’。 如果之前有配置过tunnel,需要重新配置,则先删除既有的:

下面开始命令配置tunnel

Router Advert 配置完tunnel,就得配局域网内的配置了,毕竟只有路由能上v6是不够的

如果你本地的DNS规则有过配置,radvd-options 的配置一定要把ipv6地址设成路由器的v6地址 实践证明,我之前折腾了好久的dhcpv6没用,但是配置也可以贴出来

自动更新IP 之前一片EdgeRouter Lite相关的配置文章里,我把He.net提供的DDNS配置好了。Dynamic DNS on HE.net, HE.net Dynamic DNS on Ubiquiti Router. 脚本更新 首先按如下路径生成ddns专用的key

尝试过好多次,EdgeRouter Lite无法通过配置参数添加多个同类型的ddns配置。所以先提供一个简单粗暴的方法。 参考 https://forums.he.net/index.php?topic=1994.0 的说明,有如下的客户端语法: … Continue reading “TunnelBroker for EdgeRouter Lite”