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.0.tar.gz (12.3 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.0-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aliddns_updater-0.1.0.tar.gz
  • Upload date:
  • Size: 12.3 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.0.tar.gz
Algorithm Hash digest
SHA256 e9140edd518cb6e389d0670792909e13820a7482f3d23513d88176abf48ca9c2
MD5 839444d8919126e4bdac0ba64fe03805
BLAKE2b-256 1d4fce7b943c2c41368597c4be67b332ab056eb9db5e07b2cb2340ffb83a83b2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aliddns_updater-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.5 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f8a47c7ade3fa5fce12ffe33b81862eefbb3045572a1d7eda13baad7a9570979
MD5 56ff1cbad7822b55f0a9b220471afeae
BLAKE2b-256 fa7b8da0cd6e129da0f4f5ff757b8bd163f545c1cf7181d17f1d9290c6fe56ba

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