前提
- 必须有公网ip。找对应宽带服务商申请(电信的话,最好把光猫的超级管理员账户也申请下)
- 树莓派4b(其他型号操作大同小异)
获取阿里云AccessKey ID 和 AccessKey Secret
安全起见,选择子用户
添加完RAM账户,然后给RAM开通“AliyunDNSFullAccess 管理云解析(DNS)的权限” 权限。
安装DDNS
这里用的解决方案是开源的 NewFuture/DDNS ,github地址:https://github.com/NewFuture/DDNS
- 进入树莓派命令行界面,pip3安装
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 |
是否缓存记录 | 正常情况打开避免频繁更新 |
- 根据以上参数表,设置适合自己的配置。一般家庭宽带都是通过路由器获取内网ip,所以
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;
原文链接:https://www.nuomiphp.com/article/6172.html
© 版权声明
声明📢本站内容均来自互联网,归原创作者所有,如有侵权必删除。
本站文章皆由CC-4.0协议发布,如无来源则为原创,转载请注明出处。
THE END