简易的,简单又实用的动态域名管理系统

写在前面。谢谢 WordPress 主人 John 提供的空间,让我写下这个笔记。
———————
我在家的宽带上自建了台服务器。可是宽带拨号上网,IP不固定。想在网上找个免费的动态域名,注册极为麻烦,还要绑手机。放弃了。
想到自己有个域名,也有个VPS主机 (固定IP)。不如自己搞个动态域名用把。
———————-
自己的域名,比如 “testtest.info”,VPS主机的IP,”比如 1.2.3.4″。
去域名解析控制台,添加一条二级域名的NS记录,指向自己的VPS主机。
因为NS记录不能直接写IP。所以实际要添加两条记录。
比如:
dd.testtest.info.   ns   mydns.testtest.info
mydns.testtest.info.   A   1.2.3.4

这样就可以用三级域名做自己的动态域名了。
比如:www.dd.testtest.info
lala.dd.testtest.info
———————
VPS主机,我装的是CentOS7。系统安装好之后。
yum  install  bind-chroot  bind-utils   # bind老是出漏洞,装个chroot版感觉安全点。
修改配置文件 /etc/named.conf
options  {
listen-on port 53 { 127.0.0.1; any; };
listen-on-v6 port 53 { ::1; any; };
allow-query { localhost; any; };
recursion no; /* 关闭了所有的axfr,如要allow-recursion生效,必须为yes */
allow-recursion { localhost; };
allow-transfer { localhost; };
};
# 以上条目,原来有的保留。不相同的就修改。原来没有的就添加。

添加一个zone,在 /etc/named.rfc1912.zones 文件最后,添加:
zone “dd.testtest.info” IN {
type master;
file “dynamic/named.dd.testtest.info”;
allow-update { localhost; };
};
// 要求 named 对 dynamic/ 目录有写权限
// nsupdate 时会生成 named.dd.testtest.info.jnl
// named.service stop 时会改写 named.dd.testtest.info 文件

创建zone的初始解析文件, /var/named/dynamic/named.dd.testtest.info
如果 /var/named/dynamic目录不存在,就先启动一下 service  named-chroot  start
$TTL   600
@   IN  SOA   mydns.testtest.info.    email.invalid (1234  86400  3600  604800  10800)
@   NS    mydns.testtest.info.
@   A   1.2.3.4

service   named-chroot   stop;
service   named-chroot   start;
systemctl   enable   named-chroot;
#检查防火墙开放了 udp/53 的访问。
iptables   -A   INPUT   -p  udp   –dport  53   -j  ACCEPT   #一般查询用
iptables   -A   INPUT   -p  tcp   –dport  53   -j  ACCEPT    # axfr 用
———————-
下载: my-ddns-by-osn-20180824.tar.gz
解压,按照里头的 readme.php 的说明文件配置。就可以用了。
大致步骤是,
* 在MySQL中创建数据库,创建一张表,
* 修改配置文件 mysqli_new_db.php,  config.php
* 创建一条 crontab 定时任务。2分钟执行一次。
* 测试一下,就能用了。
————————————
使用方法(两种方法):
1.自动获取客户端IP,定时访问 http://testtest.info/ddns/ddns.php?key=xxxxxxxxx&domain=lala
2.强制指定IP,定时访问 http://testtest.info/ddns/ddns.php?key=xxxxxxxxx&domain=lala&ip=5.6.7.8
建议每10-15分钟访问一次更新链接。超过60分钟未更新,对应域名重置为127.0.0.1
——– osn 写于 20180824 —–
——— 完 ———–