自建简单又实用的动态域名管理系统

个人动态域名管理系统。Personal-DDNS.

简单又实用的动态域名管理系统, 自建动态域名管理系统
使用 bind9 + php + mysql , 创建个人的动态域名系统。
Use bind9 + php + mysql , create a personal ddns server, update by an URL. Only support "A","AAAA","TXT" recorder.
项目地址 https://github.com/osnosn/personal-ddns/

条件

  • 首先,需要一个有管理权的域名。
  • 其次,需要一个有固定IP的服务器。

设置域名 (需域名管理权)

  • 在域名商系统中增加一个二级域名,和对应的IP。IP指向你的服务器。

    • 比如你拥有的域名是 "mydomain.net"

      • 设二级域名 dns.mydomain.net
      • 你可以用类似 abc.ddns.mydoman.net , xxx.ddns.mydoman.net 作为你的动态域名。
    • 比如你的服务器IP是"1.1.1.1"
    • 在域名商的解析系统中增加这两条记录。
       ddns.mydomain.net  A  1.1.1.1
       ddns.mydomain.net  NS ddns.mydomain.net.  

设置bind9 (需服务器root权限)

  • 我用的是centos7
    装 bind-chroot-9.4.4
    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; };
    };

    以上条目,原来有的保留。不相同的就修改。原来没有的就添加。

  • 修改/etc/named.rfc1912.zones , 在最后加上:
    zone "ddns.mydomain.net" IN {
       type master;
       file "dynamic/named.ddns.mydomain.net";
       allow-update { localhost; };
    };
  • 创建文件 /var/named/dynamic/named.ddns.mydomain.net

    要求 named 对 dynamic/ 目录有写权限
    nsupdate 时会生成 named.ddns.mydomain.net.jnl
    named.service stop 时会改写 named.ddns.mydomain.net 文件
    如果 /var/named/dynamic目录不存在,就先启动一下 service named-chroot start

    $TTL 600        ; 10 minutes
    @   IN  SOA  ddns.mydomain.net.  email.invalid. (
          1096    ; serial
          86400   ; refresh (1 day)
          3600    ; retry (1 hour)
          604800  ; expire (1 week)
          10800   ; minimum (3 hours)
          )
    @     NS      ddns.mydomain.net.
  • 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 用

其他设置 (无需root权限。但需要用户权限,设置crontab)

  • 看文件 ddns/readme.php
  • 大致步骤是,
    • ddns/ 目录中的东西放到你的网站中。
    • 在MySQL中创建数据库,创建一张表,
    • 修改配置文件 pdo_new.php, config.php
    • 创建一条 crontab 定时任务。2分钟执行一次。
    • 测试一下,就能用了。

安装好之后,创建了对应的动态域名后,客户端的使用

  • 如果是 A 记录 或 AAAA 记录

    • 自动获取客户端IP(根据来源IP. A需通过ipv4,AAAA需通过ipv6访问)
      wget http://www.mydomain.net/ddns/ddns.php?key=xxxxxxxxx&domain=dddd
    • 强制指定IP(无所谓ipv4,ipv6网络)
      wget http://www.mydomain.net/ddns/ddns.php?key=xxxxxxxxx&domain=dddd&ip=1.1.1.1
      wget http://www.mydomain.net/ddns/ddns.php?key=xxxxxxxxx&domain=dddd&ip=FC00:0:130F::9C0:876A:130B
      建议每10-15分钟访问一次更新链接。超过60分钟未更新,对应域名重置为"127.0.0.1" 或 "::1"

      比如动态域名为 abc.ddns.mydomain.net 其中 domain=dddd 可以写为:

      domain=abc
      domain=abc.ddns.mydomain.net

    其中 xxxxxxxxx 是创建动态域名时,生成的对应key。

  • 如果是 TXT 记录
    • 强制指定TXT内容
      wget http://www.mydomain.net/ddns/ddns.php?key=xxxxxxxxx&domain=dddd&ip=20181015abcdefg

write at 2019-02-24.
--- end ---

原文地址:https://www.cnblogs.com/osnosn/p/10591431.html

时间: 2024-08-27 00:12:26

自建简单又实用的动态域名管理系统的相关文章

介绍一个轻便实用的动态图截取工具——ScreenToGif

0x00 前言 经常会遇到一些场景,需要你向别人展示一些操作或是效果——例如告诉别人某某软件的配置步骤啊.刚设计出来网站的动画效果怎么样啊.某某电影里面的一个镜头多么经典啊.打得大快人心的NBA绝杀瞬间是怎么回事啊,等等.... 这些场合,如果单纯截成图片有时难以说清楚,但录成视频又不方便在社交软件上传播,这时就需要一个能够生成动态图的软件了,本文即是介绍一款轻便实用的动态图截取工具——ScreenToGif. 0x01 软件简介 ScreenToGif 也是一款非常轻便的.完全免费的屏幕动态图

dnspod动态域名使用感受

继花生壳不能用之后,3322也开始不太好用了,首先就是360把所有3322的域名全部判定为危险域名,甚至拦截程序对于3322url的api请求. 所以想把3322换成我们自己的独立域名,但是3322他们又是要收费的. 因此,特别想到DNSPOD,之前把域名是一直托管在他们那解析的,如果他们也支持动态域名那就是太棒了. 果然啊,只有想不到,没有做不到. 我大DNSPOD果然开放全部的API,并且支持官方出品工具支持动态域名的解析. 具体使用方法这里就不表了,实在是太简单了.提供下参考链接吧. ht

cad怎么转换成pdf 简单又实用

作为一名技术宅,小编永远在设计CAD图形,每次设计完CAD,都要转换成pdf用email发送给客户,一开始小编被CAD怎么转换成pdf的问题弄得特憋屈,不过现在已经不用担心了,CAD转pdf那是小case,你是不是很想要知道小编是如何完成这两种格式之间的转换的?往下看,带着大家了解:cad怎么转换成pdf 简单又实用.        步骤一,打开任意浏览器,输入迅捷在线pdf转换器,找到该转换的转换网站,点击进入. 步骤二,大家可以在软件顶部菜单栏中查看该在线转换的每一个功能,鼠标放在任意项目上

使用EJS脚本实现花生壳动态域名更新服务(二)

此博客为9925.org的镜像,登录9925.org可以查看到最新博文. 原文出处:http://ily.so/AV3yQv 在<使用EJS脚本实现花生壳动态域名更新服务(一)>中,我们粗暴的把代码放在一起,然后执行.利用EJS支持的“#include”预编译指令我们可以以更加优美的方式组织代码. 步骤如下: 把BASE64编码部分的代码复制到一个新建的脚本. /** * UTF16和UTF8转换对照表 * U+00000000 – U+0000007F   0xxxxxxx * U+0000

使用EJS脚本实现花生壳动态域名更新服务(一)

此博客为9925.org的镜像,登录9925.org可以查看到最新博文. 原文出处:http://ily.so/FrQBne 花生壳提供了动态域名服务,动态域名可实现几乎实时生效的DNS解析服务,并且花生壳还提供了webapi更新域名解析的服务. 通过EJS我们可以轻松调用花生壳提供的webapi服务实现动态域名更新功能. 注意:这个webapi是采用Http Basic Authentication(HTTP基本认证)的,因此账号和密码必须用BASE64(account:password)编码

教程:动手用自己电脑搭建一个网站 (nat123 花生壳 动态域名 个人电脑做服务器)

先ps一下..今晚试了N种方法,终于找到一个靠谱 免费 好用的方法,来改装自己电脑成为服务器,在外网也能通过域名访问了!!! 需要准备的东西: Tomcat:这个是web容器,其实有了这个就已经让电脑成为服务器了,在自己电脑上可以通过 localhost:8080/xxx 来访问自己电脑上的web应用了,而其他人也可以通过你的IP地址 xxx.xxx.xx.xx:8080 来访问你的web应用.具体的安装和基本使用方法在李刚的轻量级javaee一书中有很详细的说明. nat123:提供免费域名.

简单但实用的二分法(一)

二分法,作为一个c的初学者,基本上是都要学的,简述一下二分的思想,比如说给你10个数:1,3, 5, 4, 6, 10, 9, 8, 7, 2.让你查找其中的一个数,比如2,最容易想到的方法就是从第一个数到最后一个数遍历一遍. for(i = 0; i < n; i++) { if(a[i] == m) break; } ......... 但这样是有问题的,如果n的值很大,大到1000000,,10000000,这样就明显不行,会超时.那怎么办呢?这就轮到我们的二分法出场了. 二分法,顾名思义

SpringMVC 理论与实用技术(一) 简单、实用、易懂的几个实例

SpringMVC先来看一下百度百科中的定义; Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架.通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术.Velo

免费的freedns实现动态域名和url转发

路由器的固件是dd-wrt 到freedns.afraid.org上注册一个动态域名,如果默认的端口无法使用80,需要配置二级域名的url转发功能. 实测2个月很稳定. 另外为了防止主机ip地址更新频繁,可以在后台执行一个cron的定时命令ping 保持网络连接,尽量降低ip被替换掉的可能性.实际效果还是很好地,留意了一下,连续开机十天以上,没有发生ip变更.