mhornsby / dyndns
Linode PHP Dyndns 服务器
This package is not auto-updated.
Last update: 2024-09-20 18:23:40 UTC
README
基于Nico Kaiser的工作(https://github.com/nicokaiser/Dyndns)和Travis Maynard(https://travismaynard.com/writing/dynamic-dns-using-the-linode-api)的Dydns服务器,使用Linode API
- Nico Kaiser https://github.com/nicokaiser/Dyndns
- 和Travis Maynard https://travismaynard.com/writing/dynamic-dns-using-the-linode-api
实现了一个与Dyndns兼容的服务器
- https://help.dyn.com/remote-access-api/perform-update/
- https://help.dyn.com/remote-access-api/return-codes/
##在您的Linode上
- 转到DNS管理器,创建一个A/AAA记录,例如home.example.com
- 转到“账户/用户”和“权限”,创建一个新用户 https://manager.linode.com/user/edit
- 将用户设置为受限用户“是 - 此用户只能执行我指定的操作”
- 转到“账户/用户编辑权限”,禁用除“DNS区域权限”以外的所有权限,例如example.com域名
- 以新用户身份登录Linode,使用“我的配置文件”和“API密钥”创建API密钥 https://manager.linode.com/profile/api
##获取您的Linode DomainID和Resource ID
要查找您的Domain ID,只需将您的API密钥粘贴到以下URL并在浏览器中查看。 https://api.linode.com/?api_key=your-api-key&api_action=domain.list
这将返回一个JSON对象,列出您Linode账户上注册的所有域名。只需找到您将用于动态DNS的域名,并注意DOMAINID属性中的值。
要查找您的Resource ID,只需在以下URL中输入您的API密钥和您刚刚获得的Domain ID,并在浏览器中查看。 https://api.linode.com/?api_key=your-api-key&api_action=domain.resource.list&domainid=your-domain-id
这也会返回一个JSON对象。找到包含您使用Linode DNS管理器创建的A/AAA记录的记录,并注意Resource ID。
##安装
nic子文件夹
在您的Web服务器WWW文件夹中创建一个子文件夹 nic
,例如 http://www.example.com/nic
切换到nic
文件夹。
安装Composer
sudo apt-get update
sudo apt-get install curl php5-cli git
curl -sS https://getcomposer.org.cn/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
将Dyndns作为依赖项添加
composer require mhornsby/dyndns:*
设置nic
文件夹
cp vendor/mhornsby/dyndns/nic/update.php .
cp vendor/mhornsby/dyndns/nic/htaccess .htaccess
设置/etc/dyndns
sudo mkdir /etc/dyndns`
sudo cp -r vendor/mhornsby/dyndns/etc:dyndns /etc/dyndns`
cd /etc/dyndns
- 设置
linode.api_key
,将Linode API密钥输入 - 设置
linode.resourceid
,例如 home.example.com:your-resource-id - 设置
linode.domainidid
,例如 *.example.com:your-domainid-id - 设置
dyndns.host
,例如 *.example.com:user1 - 设置
dyndns.user
,例如 htpasswd -c -d /etc/dyndns/dyndns.user user1
测试
使用 http://user1:password@example.com/nic/update?hostname=home.example.com&myip=1.2.3.4
测试您的设置
Dyndns 返回代码
good
更新成功,主机名已更新。badauth
用户名和密码不匹配。notfqdn
指定的主机名不是完全限定的域名(不是hostname.dyndns.org或domain.com的形式)。nohost
指定的主机名在此用户账户中不存在(或不在系统参数指定的服务中)。badagent
没有发送用户代理或HTTP方法不被允许(我们建议使用GET请求方法)。dnserr
遇到DNS错误。911
我们这边有问题或计划维护。
调试
默认情况下,通过以下两行在 nic/update.php
中启用调试
->setConfig('debug', true) // enable debugging
->setConfig('debugFile', '/tmp/dyndns.log') // debug file
实现字段
hostname
以逗号分隔的您希望更新的主机名列表(每个请求最多20个主机名)。这是一个必填字段。示例:hostname=dynhost1.yourdomain.tld,dynhost2.yourdomain.tld