动态IP下群晖搭建DDNS服务
转载地址:https://www.zimrilink.com/share/dsm_aliddns_server.html
通过阿里云API(php)搭建出DDNS动态域名解析服务器;
不同的是本文的方法不需要独立IP服务器作为DDNS服务器,而是使用了群晖[Web Station] 套件 和PHP7环境 直接作为服务端,群晖的计划任务执行作为客户端;
从而达到 动态IP下 单群晖或者其他设备拥有高性能DDNS!
特别提醒:使用动态域名搭建服务 请自觉遵守互联网安全法和相关法律法规
原理:
- 群晖既作为服务端 也 作为客户端
- 服务端通过群晖web Station来运行 获取IP方式为访问度娘获取
- 客户端访问触发服务端AliDDNS API(php) 把从度娘获取的IP的解析到域名A记录上
一、启用Web Station套件
所需环境按需选择 本文只需要 Web Station套件 和 PHP 7 环境
二、PHP7设置
三、部署AliDDNS API(php)
按照下文 把AliDDNS API(php)项目下载 部署在群晖指定的Web目录上即可
通过阿里云API(php)搭建秒级DDNS动态域名解析
部署按需 如通过Web Station套件设置了虚拟主机 外网无法达 则可不需要用到安全配置中的密码访问
四、修改文件
第三步骤部署了DDNS服务端 并修改好相应的 AccessKeyId&AccessKeySecret
可能你已经测试过 发现解析出来的IP地址是局域网地址
以下解决该问题:
在alicloud-php-dns-updater-master 目录建一个 ip_baidu.php 的php文件
内容如下:
<?php
header("Content-Type: text/html;charset=utf-8");
$baiduipurl = 'http://www.baidu.com/s?baidu&wd=ip';
$ipinfo=file_get_contents($baiduipurl);
preg_match('|<span class="c-gap-right">本机IP: (.*?)<\/span>|i',$ipinfo,$ipm);
// echo $ipm[1]; //测试时可把echo前“//”去掉 访问看是否输出公网IP地址
?>
如输出正常 则继续修改 index.php文件
include_once 'alicloud-php-updaterecord/V20150109/AlicloudUpdateRecord.php'; 下添加一行
include_once 'ip_baidu.php'; //引入建立的ip_baidu.php文件
newIp = $_SERVER['REMOTE_ADDR']; 修改为
$newIp = $ipm[1];
保存!
五、设置计划任务
计划任务里直接服务器本地地址 curl -u http://127.0.0.1/alicloud-php-dns-updater-master/index.php 即可
群晖配置作为阿里云API(php) DDNS动态域名客户端
动态IP下群晖搭建DDNS 集服务端客户端一体;
搭配阿里云公共DNS 达到秒级解析!
方法很多,仅供参考; 实践众多,仅为性能!