DDNS

DDNS 命令行参数参考

本文档详细说明DDNS工具的命令行参数用法。命令行参数可用于覆盖配置文件和环境变量中的设置,具有最高优先级

基本用法

可通过-h 查看参数列表

# ddns [选项]
ddns -h

或者使用Python源码:

# python run.py [选项]
python run.py -h

参数列表

长参数 短参数 类型 描述
--help -h 标志 显示帮助信息并退出
--version -v 标志 显示版本信息并退出
--config -c 字符串 指定配置文件路径
--dns   选择项 DNS服务提供商
--id   字符串 API 访问 ID 或授权账户
--token   字符串 API 授权令牌或密钥
--ipv4   字符串列表 IPv4 域名列表,多个域名重复使用参数
--ipv6   字符串列表 IPv6 域名列表,多个域名重复使用参数
--index4   字符串/数字列表 IPv4 地址获取方式,支持多种获取方式
--index6   字符串/数字列表 IPv6 地址获取方式,支持多种获取方式
--ttl   整数 DNS 解析记录的 TTL 时间(秒)
--proxy   字符串列表 HTTP 代理设置,支持多代理重复使用参数
--cache   布尔/字符串 是否启用缓存或自定义缓存路径
--debug   标志 开启调试模式(等同于 –log.level=DEBUG)
--log.file   字符串 日志文件路径,不指定则输出到控制台
--log.level   字符串 日志级别
--log.format   字符串 日志格式字符串
--log.datefmt   字符串 日期时间格式字符串

其中--debug--help,--version为命令行独有参数。

参数值示例

参数 可能的值 示例
--dns dnspod, alidns, cloudflare, 等 --dns cloudflare
--id API ID, 邮箱, Access Key --id user@example.com
--token API Token, Secret Key --token abcdef123456
--ipv4 域名 --ipv4 example.com --ipv4 sub.example.com
--ipv6 域名 --ipv6 example.com
--index4 数字, default, public, url:, regex:, cmd:, shell: --index4 public, --index4 "regex:192\\.168\\..*"
--index6 数字, default, public, url:, regex:, cmd:, shell: --index6 0, --index6 public
--ttl 秒数 --ttl 600
--proxy IP:端口, DIRECT --proxy 127.0.0.1:1080 --proxy DIRECT
--cache true, 文件路径 --cache=true, --cache=/path/to/cache.json
--debug (无值) --debug
--log.file 文件路径 --log.file=/var/log/ddns.log
--log.level DEBUG, INFO, WARNING, ERROR, CRITICAL --log.level=DEBUG
--log.format 格式字符串 --log.format="%(asctime)s: %(message)s"
--log.datefmt 日期格式字符串 --log.datefmt="%Y-%m-%d %H:%M:%S"

DNS服务配置参数

--dns {alidns,cloudflare,dnscom,dnspod,dnspod_com,he,huaweidns,callback}

DNS服务提供商。

--id ID

API访问ID或用户标识。

--token TOKEN

API授权令牌或密钥。

域名配置参数

--ipv4 [DOMAIN...]

需要更新IPv4记录的域名列表。

--ipv6 [DOMAIN...]

需要更新IPv6记录的域名列表。

IP获取方式参数

--index4 [METHOD...]

IPv4地址获取方式。

--index6 [METHOD...]

IPv6地址获取方式,用法同--index4

网络配置参数

--ttl TTL

DNS解析TTL时间(秒)。

--proxy [PROXY...]

HTTP代理设置,支持多代理轮换。

系统配置参数

--cache [BOOL|PATH]

启用缓存以减少API请求。

--debug

启用调试模式(等同于设置--log.level=DEBUG)。

日志配置参数

--log.level {CRITICAL|FATAL|ERROR|WARN|WARNING|INFO|DEBUG|NOTSET}

设置日志级别。

--log.file LOGFILE

设置日志文件路径。

--log.format FORMAT

设置日志格式字符串(参考Python logging模块格式)。

--log.datefmt FORMAT

设置日期时间格式字符串(参考Python time.strftime()格式)。

常用命令示例

使用配置文件

# 使用默认配置文件
ddns

# 使用指定配置文件
ddns -c /path/to/config.json

命令行临时修改配置

# 启用调试模式
ddns --debug

# 使用指定配置文件并启用调试模式
ddns -c /path/to/config.json --debug

# 更新特定域名的IPv4地址(多个域名)
ddns --ipv4 example.com --ipv4 www.example.com

# 设置为阿里云DNS并提供认证信息
ddns --dns alidns --id YOUR_ACCESS_KEY_ID --token YOUR_ACCESS_KEY_SECRET

高级用法示例

# 使用公网IP和特定的网络配置
ddns --ipv4 example.com --index4 public --ttl 600 --proxy 127.0.0.1:1080

# 自定义日志配置
ddns --log.level=DEBUG --log.file=./ddns.log --log.format="%(asctime)s - %(levelname)s: %(message)s"

# 完整配置示例
ddns --dns cloudflare --id user@example.com --token API_TOKEN \
     --ipv4 example.com --ipv4 www.example.com --ipv6 example.com \
     --index4 public --index6 "regex:2001:.*" \
     --ttl 300 --proxy 127.0.0.1:1080 --proxy DIRECT \
     --cache=/var/cache/ddns.cache \
     --log.level=INFO --log.file=/var/log/ddns.log

注意事项

  1. 命令行参数具有最高优先级,会覆盖配置文件和环境变量中的设置。
  2. 对于需要空格的参数值,请使用引号包围,例如:--log.format="%(asctime)s: %(message)s"
  3. 对于多值参数(如--ipv4--index4--proxy等),请重复使用参数标识,例如:--ipv4 example.com --ipv4 sub.example.com
  4. --debug参数仅在命令行中有效,配置文件中的debug设置将被忽略。