Skip to main content

A Python script to update Aliyun DNS (Alidns) records with the current public IP address.

Project description

Aliyun DDNS (阿里云动态域名解析)

基于 Python 的阿里云动态域名解析工具,支持同时更新 IPv4 (A 记录) 和 IPv6 (AAAA 记录)。代码规范、符合现代 CLI 标准,支持系统级服务的直接部署。

功能特点

  • 🚀 全面支持: 提供对 IPv4 和 IPv6 动态解析的支持。
  • 🔄 高可用机制: 内置数十个外部 IP 获取服务接口,拥有完善的后备重试机制。
  • 🛡️ 详细日志: 包含规范的错误输出与执行日志。
  • 📦 开箱即用: 支持参数传递、加载独立的 JSON 配置文件,完全符合工业 CLI 工具标准。

安装说明

建议使用 uv 或者是 pipx 将其作为全局命令安装在系统中。在代码根目录下执行:

uv tool install .
# 或者使用 pipx install .

安装完成后,系统便拥有了 aliddns-updater 这一全局命令。

配置与运行

工具会优先尝试从默认的配置文件读取参数,支持的配置文件路径为:~/.config/aliddns/config.json。 你可以随时创建该文件并填入凭据(无需写死在代码里!):

{
    "access_key_id": "你的AccessKey_ID",
    "access_secret": "你的AccessKey_Secret",
    "domain": "example.com",
    "ipv4_prefix": "ipv4",
    "ipv6_prefix": "ipv6"
}

配置字段详细说明:

  • access_key_id: 你的阿里云 AccessKey ID。
  • access_secret: 你的阿里云 AccessKey Secret。
  • domain: 需要管理解析的主域名 (例如 example.com)。
  • ipv4_prefix: IPv4 的子域名解析前缀 (例如 @ 代表主域名本身,或 ipv4)。
  • ipv6_prefix: IPv6 的子域名解析前缀 (例如 ipv6)。

命令行动态传参

除了配置文件,你也可以通过传参动态覆盖或者指定配置:

aliddns-updater --access-key-id LTAIxx --access-secret yyy --domain test.com --ipv4-prefix www --disable-ipv6

运行 aliddns-updater --help 可查看全部参数说明。

自动化运行 (Crontab 示例)

部署完毕后,你可以将它加入系统定时任务。 运行 crontab -e 并添加以下规则(每 10 分钟执行一次):

*/10 * * * * ~/.local/bin/aliddns-updater >> /tmp/aliddns-updater.log 2>&1

(注意:~/.local/bin/uv tool installpipx 默认的系统沙盒安装目录。如果你是通过源码直接运行,请将上述路径替换为 cd /你的/项目/绝对路径 && uv run aliddns.py 或使用 which aliddns-updater 确认工具安装的具体绝对路径。)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aliddns_updater-0.1.2.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aliddns_updater-0.1.2-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

Details for the file aliddns_updater-0.1.2.tar.gz.

File metadata

  • Download URL: aliddns_updater-0.1.2.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.2","id":"zara","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for aliddns_updater-0.1.2.tar.gz
Algorithm Hash digest
SHA256 603478010ce81e03bfd5216a916d4b9ecbae647fdcffe6ecbd485756dac9d368
MD5 6f8020893480ad84979f5262ef01fc6f
BLAKE2b-256 8ffd53bf1ca33594e4c644fd4a83dce3b81a399f291bf6efaa8c186089c88444

See more details on using hashes here.

File details

Details for the file aliddns_updater-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: aliddns_updater-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 16.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.2","id":"zara","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for aliddns_updater-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 aef8274d823bb0f80c5f03e7fc4e4577ecd139ab35e760b3d52053dd6e9c509c
MD5 9df79b57a2cac09e8ac48dacb8b47129
BLAKE2b-256 c81f3c3bb1070e781951d0412f841ced7f0e25c5ac464f25649b20af10ace813

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page