Gandi LiveDNS 动态 DNS 更新器使用教程
1. 项目介绍
gandi-live-dns
是一个简单的动态 DNS 更新器,专为 Gandi 域名注册商设计。它利用 Gandi 的 LiveDNS REST API 来更新域名的子域名,使其指向运行该脚本的计算机的外部 IPv4 地址。该项目适用于 Debian 8 Jessie 和 Debian 9 Stretch GNU/Linux 系统,使用 Python 2.7 开发。
2. 项目快速启动
2.1 安装依赖
首先,确保系统已更新并安装必要的依赖包:
apt-get update && apt-get upgrade && apt-get install unzip python-requests python-args python-simplejson
2.2 获取 API 密钥
在 Gandi 账户中申请 API 密钥。访问 Gandi 账户管理页面 并按照指引申请生产 API 密钥。
2.3 下载并配置脚本
下载脚本并解压,或通过 Git 克隆项目:
git clone https://github.com/cavebeat/gandi-live-dns.git
cd gandi-live-dns
进入 src
目录,复制配置文件示例并进行编辑:
cd src
cp example_config.py config.py
编辑 config.py
文件,配置以下内容:
api_secret = '---my_secret_API_KEY----'
api_endpoint = 'https://dns.api.gandi.net/api/v5'
domain = 'mydomain.tld'
subdomains = ["subdomain1", "subdomain2", "subdomain3"]
2.4 运行脚本
运行脚本以更新 DNS 记录:
./gandi-live-dns.py
2.5 设置定时任务
使用 cron 定时运行脚本,例如每五分钟运行一次:
*/5 * * * * /root/gandi-live-dns-master/src/gandi-live-dns.py >/dev/null 2>&1
3. 应用案例和最佳实践
3.1 家庭服务器动态域名
假设你有一个家庭服务器,希望它始终可以通过动态子域名 dynamic_subdomain.mydomain.tld
访问。使用 gandi-live-dns
脚本,你可以自动更新 DNS 记录,确保服务器的外部 IP 地址变化时,域名仍能正确解析。
3.2 多子域名管理
如果你有多个子域名需要管理,可以在 config.py
中配置多个子域名。脚本会自动检查每个子域名的 IP 地址,并在 IP 变化时更新 DNS 记录。
4. 典型生态项目
4.1 Gandi LiveDNS API
gandi-live-dns
项目依赖于 Gandi 的 LiveDNS REST API。该 API 提供了丰富的 DNS 管理功能,支持动态更新、域名解析等操作。
4.2 Python Requests 库
项目使用 Python 的 requests
库与 Gandi 的 API 进行交互。requests
是一个简单易用的 HTTP 库,广泛用于 Python 项目中。
4.3 Cron 定时任务
通过 cron 定时任务,可以自动化运行 gandi-live-dns
脚本,确保 DNS 记录始终保持最新。