安全起见,选择子用户
添加完RAM账户,然后给RAM开通“AliyunDNSFullAccess 管理云解析(DNS)的权限” 权限。
这里用的解决方案是开源的 NewFuture/DDNS ,github地址:https://github.com/NewFuture/DDNS
sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple ddns
/usr/ddns
并切换到目录下,运行ddns
,这时会在当前目录下自动创建config.json 文件。key | type | required | default | description | tips | ||
---|---|---|---|---|---|---|---|
id | string | √ | 无 | api 访问 ID | Cloudflare 为邮箱(使用 Token 时留空) HE.net 可留空 | ||
token | string | √ | 无 | api 授权 token | 部分平台叫 secret key , 反馈粘贴时删除 | ||
dns | string | No | "dnspod" | dns 服务商 | 阿里 DNS 为alidns ,Cloudflare 为 cloudflare ,dns.com 为 dnscom ,DNSPOD 国内为 dnspod ,DNSPOD 国际版为 dnspod_com ,HE.net 为 he ,华为 DNS 为 huaweidns ,自定义回调为 callback | ||
ipv4 | array | No | [] | ipv4 域名列表 | 为[] 时,不会获取和更新 IPv4 地址 | ||
ipv6 | array | No | [] | ipv6 域名列表 | 为[] 时,不会获取和更新 IPv6 地址 | ||
index4 | string\ | int\ | array | No | "default" | ipv4 获取方式 | 可设置网卡 ,内网 ,公网 ,正则 等方式 |
index6 | string\ | int\ | array | No | "default" | ipv6 获取方式 | 可设置网卡 ,内网 ,公网 ,正则 等方式 |
ttl | number | No | null | DNS 解析 TTL 时间 | 不设置采用 DNS 默认策略 | ||
proxy | string | No | 无 | http 代理; 分割 | 多代理逐个尝试直到成功,DIRECT 为直连 | ||
debug | bool | No | false | 是否开启调试 | 运行异常时,打开调试输出,方便诊断错误 | ||
cache | bool | No | true | 是否缓存记录 | 正常情况打开避免频繁更新 |
index4
设置成public
,然后把需要解析的域名放在ipv4
里。4.配置好后,在当前目录直接输入ddns
运行。
把以下代码保存成task.sh
并给可执行权限,然后./task.sh
,就自动加入cron计划任务,频率是一分钟一次
#!/usr/bin/env bash
RUN_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )";
CMD="/usr/local/bin/ddns -c \"$RUN_DIR/config.json\" >> \"$RUN_DIR/run.log\" 2>&1"
echo "*/1 * * * * root $CMD" > /etc/cron.d/ddns;
/etc/init.d/cron reload;