使用阿里云API搭建DDNS服务(PHP) - qNFCpの屋
qNFCpの屋

本文指在PHP内利用阿里云API进行对DNS解析记录的自动修改

DDNS简介

DDNS(Dynamic Domain Name Server)“动态域名服务”的缩写...

DDNS百度百科链接
DNS百科链接


它能做什么?(仅列举了部分用途)

1、用于无固定IP的服务器动态解析IP(即可将仅有CANME解析的服务器通过DDNS服务获取A或AAAA解析记录)
2、服务器IP频繁切换时,动态修改解析
3、家庭网络动态IP,动态修改域名解析
............


实现原理

动态IP端定时访问 → PHP服务端-记录访客IP →调用AliDNSAPI →记入DNS解析


项目Github链接

Alicloud PHP DNS Updater

需求环境

  • 被解析动态IP端
  • 在阿里DNS上有效的域名
  • 拥有PHP7.0及以上的服务端(亦可是有CANME解析的被解析端自身)
  • 被解析端:curl,crontab(Windows不需要)(linux通常都自带这俩吧)
    Windows curl安装

Linux端安装的curl方法此处不再提供,可百度或Google相关教程



进行配置

服务端(亦可是有CANME解析的被解析端本身)

  • 解析一个域名至服务端,并创建对应站点,用于记录被解析IP
  • 再解析一个被作为动态解析的域名(A或AAAA解析),记录随便写一个

{ Linux环境:

  • SSH CD进入网站目录
    运行 git clone https://github.com/roura356a/alicloud-php-dns-updater.git dyndns-updater


{ Windows环境:
下载https://github.com/roura356a/alicloud-php-dns-updater/archive/master.zip并解压至网站目录

  • 进入网站目录下的 dyndns-updater 文件夹
  • 修改index.php文件
  • 修改如下几行配置

    $AccessKeyId     = '填写你的 AccessKeyId';
    $AccessKeySecret = '填写你的 AccessKeySecret';
    ......
    $updater->setDomainName('填写你的顶级域名(没有www,如abc.com');
    $updater->setRecordType('A或AAAA');
    $updater->setRR('填写作为动态解析的子域名,如www');
    
  • 注意:如选择修改的是AAAA解析,则还有以下两步
  • 1、进入目录 alicloud-php-updaterecord/V20150109/
  • 2、编辑 AlicloudUpdateRecord.php的第206行

    'Value' => $this->value,

    修改为以下内容

    'Value' => urlencode($this->value),


  • 修改后保存
  • 访问

    http://你服务端域名/dyndns-updater/
    如http://ddns.abc.com/dyndns-updater/
  • 当返回如下则配置成功

    Array
    (
    [RecordId] => 吧啦吧啦吧啦
    [RequestId] => 吧啦吧啦-啦-吧-啦-吧啦吧啦吧啦
    )

    (吧啦吧啦那些是英文和数字啦,哎嘿(*>◡❛)

  • 成功后可登入阿里云面板查看解析是否修改,当然也可以等解析修改的邮件
服务端站点加密
  • (自行按需选择配置)增加ssl证书加密,服务端仅监听443端口
  • 密码加密:

Nginx:

  • 如果有宝塔面板:点击站点修改→网站目录→密码访问(开启)
  • 若无 教程链接

Apache:

  • 创建 .htaccess 文件,在index.php同目录下(.前面没有空格!)
    内容如下

     AuthType Basic
     AuthName "密码提示"
     AuthUserFile /index.php所在完整路径/.htpasswd
     Require valid-user
  • 点此创建.htpasswd内容
  • (Windows)打开记事本,将生成内容粘贴进去,点击“文件”->“另存为...”,这时会弹出的“另存为”对话框,在其“文件名”一栏中输入".htaccess",注意,这里必须用一对英文模式下的双引号把.htaccess引起来。将生成文件放至index.php目录下
  • linux:echo 生成内容>/index.php文件根路径/.htpasswd

被解析IP端

返回的正确内容见上文

酱紫就配置好啦~ヾ(*・▽・)ツ

感谢阅读本文(っ╹◡╹)ノ❀

END.

暂无评论

添加新评论

Title - Artist
0:00