刚才配置树梅派的 ddns 配置了半天发现它系统里面的 inadyn 版本太老。其它感觉又太大。无奈自己写了个脚本,分享给大家。我用的是 dns.he.net ,五年前就只有它支持 ipv6,改 curl 后面的参数就可以适应其它 ddns 了。
*/10 * * * * /opt/dns.he.sh 加入 crotab 10 分钟运行一次
#!/bin/bash
export LastIP=`/bin/cat /var/log/ipv6addr`
export NowIP=`/bin/ip -o -6 addr show scope global | /bin/sed -e's/^.*inet6 \([^ ]*\)\/.*$/\1/;t;d'`
if [ -z "$NowIP" ]
then
echo `date` 没有 IPV6 !退出!>> /var/log/dns.he.log
exit
fi
if [ "$NowIP" != "$LastIP" ]
then
echo -n "$NowIP" > /var/log/ipv6addr
echo `date` "IP 改变,更新 Dns..." >> /var/log/dns.he.log
echo -n `date` [ >> /var/log/dns.he.log
#下面一行代码是更新 dns,请根据自己情况修改
curl -6 -k "https://dyn.dns.he.net/nic/update" -d "hostname=你的域名" -d "password=你的密码" >> /var/log/dns.he.log
echo ] >>/var/log/dns.he.log
else
echo `date` "IP 没有变化..." >> /var/log/dns.he.log
fi
1
axiauk 2020-10-06 06:39:45 +08:00
同样用 he.net 。看现在已经支持 inadyn 了,正在摸索。
这个 IPV6 的脚本不错,收藏。 不使用路由器 DDNS 更新 IPV4 的话, 使用 checkip.dns.he.net 比对,有没有对应的 IPV4 脚本补一个吧。 我目前每 10 分钟执行下面两条命令。 #!/bin/bash curl -4 "https://域名:密码 @dyn.dns.he.net/nic/update?hostname=域名" curl -6 "https://域名:密码 @dyn.dns.he.net/nic/update?hostname=域名" 继续研究 inadyn 不知道哪个方案好些。? |
2
flynaj OP @axiauk #1 v4 国内已经没有什么用处,v6 用我这个脚本在 ip 没有变化的时候不发送网络请求,还有 ipv6 的特性,不必用 checkip.dns.he.net 比对,最小化网络请求。在我的树莓派上,48 小时才会 ip 变一次,48 小时才会发一次网络请求。
|
3
axiauk 2021-02-12 00:23:49 +08:00 via Android
@flynaj 既然路由器后的 ipv4 ddns 麻烦,如果 ipv6 变化更新 ipv6 的同时顺带更新 ipv4,如果 v6 没有变化也不去产生流量更新 v4 。能不能帮写一个。
|
4
axiauk 2021-02-12 00:26:31 +08:00 via Android
万分感谢啊,感觉这个逻辑对拨号同时拥有 v6,v4 进行 ddns 比较合理。
|
5
qinghon 2021-04-05 13:04:22 +08:00
|