本文档详细说明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 {alidns,cloudflare,dnscom,dnspod,dnspod_com,he,huaweidns,callback}
DNS服务提供商。
dnspod
alidns
: 阿里云DNScloudflare
: Cloudflarednscom
: DNS.COMdnspod
: DNSPOD国内版dnspod_com
: DNSPOD国际版he
: HE.nethuaweidns
: 华为云DNScallback
: 自定义回调--id ID
API访问ID或用户标识。
--token TOKEN
API授权令牌或密钥。
--ipv4 [DOMAIN...]
需要更新IPv4记录的域名列表。
[]
(不更新IPv4地址)--ipv4 example.com
(单个域名)--ipv4 example.com --ipv4 subdomain.example.com
(多个域名)--ipv6 [DOMAIN...]
需要更新IPv6记录的域名列表。
[]
(不更新IPv6地址)--ipv6 example.com
(单个域名)--ipv6 example.com --ipv6 ipv6.example.com
(多个域名)--index4 [METHOD...]
IPv4地址获取方式。
default
0
,1
,2
…): 第N个网卡IPdefault
: 系统访问外网默认IPpublic
: 使用公网IP(通过API查询)url:{URL}
: 从指定URL获取IPregex:{PATTERN}
: 使用正则表达式匹配本地网络配置中的IPcmd:{COMMAND}
: 执行指定命令并使用其输出作为IPshell:{COMMAND}
: 使用系统shell运行命令并使用其输出作为IP--index4 0
(第一个网卡)--index4 public
(公网IP)--index4 "url:http://ip.sb"
(从URL获取)--index4 "regex:192\\.168\\.*"
(匹配192.168开头的IP)--index4 public --index4 0
(先尝试获取公网IP,失败则使用第一个网卡)--index6 [METHOD...]
IPv6地址获取方式,用法同--index4
。
--ttl TTL
DNS解析TTL时间(秒)。
null
(使用DNS服务商默认设置)--ttl 600
(10分钟)--ttl 3600
(1小时)--proxy [PROXY...]
HTTP代理设置,支持多代理轮换。
--proxy 127.0.0.1:1080
(单个代理)--proxy 127.0.0.1:1080 --proxy DIRECT
(多个代理,逐个尝试)--cache [BOOL|PATH]
启用缓存以减少API请求。
true
true
: 启用缓存,使用默认路径false
: 禁用缓存--cache
(启用默认缓存)--cache=false
(禁用缓存)--cache=/path/to/ddns.cache
(自定义缓存路径)--debug
启用调试模式(等同于设置--log.level=DEBUG
)。
--debug
--log.level {CRITICAL|FATAL|ERROR|WARN|WARNING|INFO|DEBUG|NOTSET}
设置日志级别。
INFO
--log.level=DEBUG
(调试模式)--log.level=ERROR
(仅显示错误)--log.file LOGFILE
设置日志文件路径。
--log.file=/var/log/ddns.log
--log.file=./ddns.log
--log.format FORMAT
设置日志格式字符串(参考Python logging模块格式)。
%(asctime)s %(levelname)s [%(module)s]: %(message)s
--log.format="%(asctime)s %(levelname)s: %(message)s"
--log.format="%(levelname)s [%(filename)s:%(lineno)d]: %(message)s"
--log.datefmt FORMAT
设置日期时间格式字符串(参考Python time.strftime()格式)。
%Y-%m-%dT%H:%M:%S
--log.datefmt="%Y-%m-%d %H:%M:%S"
--log.datefmt="%m-%d %H:%M:%S"
# 使用默认配置文件
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
--log.format="%(asctime)s: %(message)s"
。--ipv4
、--index4
、--proxy
等),请重复使用参数标识,例如:--ipv4 example.com --ipv4 sub.example.com
。--debug
参数仅在命令行中有效,配置文件中的debug设置将被忽略。