使用树莓派4b 搭建ddns 自动解析本地ip到阿里云域名

发布于 2021-01-18 21:50:24

前提

  1. 必须有公网ip。找对应宽带服务商申请(电信的话,最好把光猫的超级管理员账户也申请下)
  2. 树莓派4b(其他型号操作大同小异)

获取阿里云AccessKey ID 和 AccessKey Secret

image.png

安全起见,选择子用户

image.png

添加完RAM账户,然后给RAM开通“AliyunDNSFullAccess 管理云解析(DNS)的权限” 权限。

安装DDNS

这里用的解决方案是开源的 NewFuture/DDNS ,github地址:https://github.com/NewFuture/DDNS

  1. 进入树莓派命令行界面,pip3安装sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple ddns
  2. 建立/usr/ddns并切换到目录下,运行ddns,这时会在当前目录下自动创建config.json 文件。

配置参数表

keytyperequireddefaultdescriptiontips
idstringapi 访问 IDCloudflare 为邮箱(使用 Token 时留空)
HE.net 可留空
tokenstringapi 授权 token部分平台叫 secret key , 反馈粘贴时删除
dnsstringNo"dnspod"dns 服务商阿里 DNS 为alidns,
Cloudflare 为 cloudflare,
dns.com 为 dnscom,
DNSPOD 国内为 dnspod,
DNSPOD 国际版为 dnspod_com,
HE.net 为he,
华为 DNS 为huaweidns,
自定义回调为callback
ipv4arrayNo[]ipv4 域名列表[]时,不会获取和更新 IPv4 地址
ipv6arrayNo[]ipv6 域名列表[]时,不会获取和更新 IPv6 地址
index4string\int\arrayNo"default"ipv4 获取方式可设置网卡,内网,公网,正则等方式
index6string\int\arrayNo"default"ipv6 获取方式可设置网卡,内网,公网,正则等方式
ttlnumberNonullDNS 解析 TTL 时间不设置采用 DNS 默认策略
proxystringNohttp 代理;分割多代理逐个尝试直到成功,DIRECT为直连
debugboolNofalse是否开启调试运行异常时,打开调试输出,方便诊断错误
cacheboolNotrue是否缓存记录正常情况打开避免频繁更新
  1. 根据以上参数表,设置适合自己的配置。一般家庭宽带都是通过路由器获取内网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;
0 条评论

发布
问题