阿里云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。获取阿里云AccessToken | access 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 |
WEBHOOK | WEBHOOK推送地址。 | 无 |
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。获取阿里云AccessToken | access 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 |
webhook | WEBHOOK推送地址。 | 无 |
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。