阿里云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。