阿里云DDNS

场景

企业内部一直在用一条静态IP的光纤(上下行对等)来上网,自从将内网核心业务迁移到公有云上面后,线下基本就没有什么业务跑在公司内部了。由于没有什么流量需要主动进来,所以这条光纤的价值就显得没那么重要了。为节省成本,将它更换也在情理之中。然而更换后对于运维远程就没有之前方便,毕竟ISP分配过来的是动态公网IP地址。故结合DDNS 来补足这块的不足。

步骤

Docker

docker run -d --restart=always --net=host \
    -e "AKID=[ALIYUN's AccessKey-ID]" \
    -e "AKSCT=[ALIYUN's AccessKey-Secret]" \
    -e "DOMAIN=xx.xx.xx" \
    -e "REDO=600" \
    -e "TTL=600" \
    -e "TIMEZONE=8.0" \
    -e "TYPE=A" \
    sanjusss/aliyun-ddns
环境变量名称注释默认值
AKID阿里云的Access Key ID。获取阿里云AccessTokenaccess key id
AKSCT阿里云的Access Key Secret。access key secret
DOMAIN需要更新的域名,可以用“,”隔开。
可以指定线路,用“:”分隔线路和域名(线路名说明)。
例如:“baidu.com,telecom:dianxin.baidu.com”。
my.domain.com
REDO更新间隔,单位秒。建议大于等于TTL/2。300
TTL服务器缓存解析记录的时长,单位秒,普通用户最小为600。600
TIMEZONE输出日志时的时区,单位小时。8
TYPE需要更改的记录类型,可以用“,”隔开,只能是“A”、“AAAA”或“A,AAAA”。A,AAAA
CNIPV4检查IPv4地址时,仅使用中国服务器。false
WEBHOOKWEBHOOK推送地址。
CHECKLOCAL是否检查本地网卡IP。此选项将禁用在线API的IP检查。
网络模式必须设置为host。
(Windows版docker无法读取本机IP)
false
IPV4NETS本地网卡的IPv4网段。格式示例:“192.168.1.0/24”。多个网段用“,”隔开。
IPV6NETS本地网卡的IPv6网段。格式示例:“240e::/16”。多个网段用“,”隔开。

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

命令行

查看帮助信息
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 "a.vqiu.cn,b.vqiu.cn" \
    -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需要更新的域名,可以用“,”隔开。
可以指定线路,用“:”分隔线路和域名(线路名说明)。
例如:“baidu.com,telecom:dianxin.baidu.com”。
my.domain.com
i更新间隔,单位秒。建议大于等于TTL/2。300
t服务器缓存解析记录的时长,单位秒,普通用户最小为600。600
timezone输出日志时的时区,单位小时。8
type需要更改的记录类型,可以用“,”隔开,只能是“A”、“AAAA”或“A,AAAA”。A,AAAA
cnipv4检查IPv4地址时,仅使用中国服务器。false
webhookWEBHOOK推送地址。
checklocal是否检查本地网卡IP。此选项将禁用在线API的IP检查。false
ipv4nets本地网卡的IPv4网段。格式示例:“192.168.1.0/24”。多个网段用“,”隔开。
ipv6nets本地网卡的IPv6网段。格式示例:“240e::/16”。多个网段用“,”隔开。

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

示例

创建docker-compose.yaml

version: '2'

services:
  aliyun-ddns:
    image: sanjusss/aliyun-ddns:0.2.7.3-linux-amd64
    restart: always
    environment:
    - AKID=xxxx
    - AKSCT=xxxx
    - DOMAIN=xx.vqiu.cn
    - REDO=600
    - TTL=600
    - TIMEZONE=8.0
    - TYPE=A

启动服务

# docker-compose  up
Starting aliyun-ddns_aliyun-ddns_1 ... done
Attaching to aliyun-ddns_aliyun-ddns_1
aliyun-ddns_1  | [05/04/2024 21:14:59]当前公网IPv4为 113.77.36.xx(3322接口)。
aliyun-ddns_1  | [28/04/2024 21:15:00]成功获取xxx.vqiu.cn的所有记录,共0条。
aliyun-ddns_1  | [28/04/2024 21:15:00]成功增加A记录xxx.vqiu.cn为113.77.36.xx。

参考引用