一个基于C#的阿里云ddns工具

# 说明
这是一个用于更新阿里云上托管域名的ddns工具。使用C#编写(.net core 3.1),支持IPv4/IPv6(即A、AAAA记录),支持多域名更新,支持仅检测国内IP。多网站检测公网IP,不会因为单个网站无法访问导致检测失败。
GitHub仓库地址:https://github.com/sanjusss/aliyun-ddns
DockerHub仓库地址:https://hub.docker.com/r/sanjusss/aliyun-ddns
欢迎大家多提意见!
这个工具发布已经有一阵子了,以后可能会发布更加全面的ddns工具,支持腾讯云、华为云、Cloudflare等其他服务商。

使用方法

Docker

对于群晖、LEDE、CentOS等有Docker程序的系统,我们可以用Docker运行ddns程序。

docker run -d --restart=always --net=host \
    -e "AKID=[ALIYUN's AccessKey-ID]" \
    -e "AKSCT=[ALIYUN's AccessKey-Secret]" \
    -e "DOMAIN=ddns.aliyun.win" \
    -e "ENDPOINT=cn-hangzhou" \
    -e "REDO=30" \
    -e "TTL=60" \
    -e "TIMEZONE=8.0" \
    -e "TYPE=A,AAAA" \
    sanjusss/aliyun-ddns

主要通过环境变量来设置参数:

环境变量注释默认值
AKID阿里云的Access Key ID。获取阿里云AccessTokenaccess key id
AKSCT阿里云的Access Key Secret。access key secret
DOMAIN需要更新的域名,多个域名需要“,”分隔。my.domain.com
ENDPOINT详见定义cn-hangzhou
REDO更新间隔,单位秒。建议大于等于TTL/2。300
TTL服务器缓存解析记录的时长,单位秒,普通用户最小为600。600
TIMEZONE输出日志时的时区,单位小时。8
TYPE需要更改的记录类型,可以用“,”隔开,只能是“A”、“AAAA”或“A,AAAA”。A,AAAA
CNIPV4检查IPv4地址时,仅使用中国服务器,可以避免域名被修改为国外IP。false

以上环境变量均存在默认值,添加需要修改的环境变量即可。

命令行

使用dotnet publish -c Release编译生成后,可以在命令行中调用aliyun-ddns.dll。
查看帮助信息:

dotnet aliyun-ddns.dll --help

查看版本信息:

dotnet aliyun-ddns.dll --version

运行实例:

dotnet aliyun-ddns.dll \
    -u "ALIYUN's AccessKey-ID" \
    -p "ALIYUN's AccessKey-Secret" \
    -d "ddns.aliyun.win,ddns2.aliyun2.win" \
    -e "cn-hangzhou" \
    -i 300 \
    -t 600 \
    --timezone 8.0 \
    --type A \
    --cnipv4

详细参数:

参数名称注释默认值
u阿里云的Access Key ID。获取阿里云AccessTokenaccess key id
p阿里云的Access Key Secret。access key secret
d需要更新的域名,多个域名需要“,”分隔。my.domain.com
e详见定义cn-hangzhou
i更新间隔,单位秒。建议大于等于TTL/2。300
t服务器缓存解析记录的时长,单位秒,普通用户最小为600。600
timezone输出日志时的时区,单位小时。8
type需要更改的记录类型,可以用“,”隔开,只能是“A”、“AAAA”或“A,AAAA”。A,AAAA
cnipv4检查IPv4地址时,仅使用中国服务器,可以避免域名被修改为国外IP。false

以上参数均存在默认值,添加需要修改的参数即可。

# C#  docker  aliyun  ddns 
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×