linux系统下配置阿里DDNS(IPv6)

现在大环境下,我自己搭建了三根宽带,移动,联通,电信现在室内什么网都有,三家的公网都不能用,然后自己查看三家都开了IPv6,于是乎就在三根线下搭建了三个服务器,结果ipv6地址在每次关机后都会自动更换,百度其他大神的神作,找了好多不行,今天测试了一个可以用的,现在给自己的小域名也搭建了动态DDNS实现了没十分钟更换IP 的功效。

在此附上源码,怎么获取阿里的,阿里AccessKey ID,请自行百度,教程很多。在此就不再复述了,需要更改的地方我已经备注起来了!ip addr show eth0 ,根据自己网卡情况把这个改成你的网卡名字————–只需要更改“eth0” ,其他的字不要动。

aliddnsipv6_ak="阿里AccessKey ID" aliddnsipv6_sk="阿里Access Key Secret" aliddnsipv6_name1='二级域名前缀,比如使用nas.rousongs.com,此处填写nas' aliddnsipv6_domain='主域名,此处填写rousongs.com' aliddnsipv6_ttl="600" if [ "$aliddnsipv6_name1" = "@" ] then aliddnsipv6_name=$aliddnsipv6_domain else aliddnsipv6_name=$aliddnsipv6_name1.$aliddnsipv6_domain fi now=`date` die () { echo $1 } ipv6s=`ip addr show eth0 | grep "inet6.*global" | awk '{print $2}' | awk -F"/" '{print $1}'` || die "$ipv6" for ipv6 in $ipv6s do #ipv6 = $ipv6 break done echo $ipv6 current_ipv6=`nslookup -query=AAAA $aliddnsipv6_name 2>&1` #echo $current_ipv6 current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'` echo $current_ipv6 if [ "$?" -eq "0" ] then current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'` echo $current_ipv6 if [ "$ipv6" = "$current_ipv6" ] then echo "skipping" fi # fix when A record removed by manual dns is always update error else unset aliddnsipv6_record_id fi timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"` urlencode() { # urlencode <string> out="" while read -n1 c do case $c in [a-zA-Z0-9._-]) out="$out$c" ;; *) out="$out`printf '%%%02X' "'$c"`" ;; esac done echo -n $out } enc() { echo -n "$1" | urlencode } send_request() { local args="AccessKeyId=$aliddnsipv6_ak&Action=$1&Format=json&$2&Version=2015-01-09" local hash=$(echo -n "GET&%2F&$(enc "$args")" | openssl dgst -sha1 -hmac "$aliddnsipv6_sk&" -binary | openssl base64) curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")" } get_recordid() { grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"' } query_recordid() { send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$aliddnsipv6_name&Timestamp=$timestamp&Type=AAAA" } update_record() { send_request "UpdateDomainRecord" "RR=$aliddnsipv6_name1&RecordId=$1&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&TTL=$aliddnsipv6_ttl&Timestamp=$timestamp&Type=AAAA&Value=$(enc $ipv6)" } add_record() { send_request "AddDomainRecord&DomainName=$aliddnsipv6_domain" "RR=$aliddnsipv6_name1&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&TTL=$aliddnsipv6_ttl&Timestamp=$timestamp&Type=AAAA&Value=$(enc $ipv6)" } #add support */%2A and @/%40 record if [ "$aliddnsipv6_record_id" = "" ] then aliddnsipv6_record_id=`query_recordid | get_recordid` #echo '-----------------' $aliddnsipv6_record_id fi if [ "$aliddnsipv6_record_id" = "" ] then aliddnsipv6_record_id=`add_record | get_recordid` echo "added record $aliddnsipv6_record_id" else update_record $aliddnsipv6_record_id echo "updated record $aliddnsipv6_record_id" fi

有个别网友艾特我,不对,不要把这个代码保存到文本文档,直接复制到宝塔的代码框里来使用,在那个计划任务里面添加以及修改,在Ubuntu的宝塔界面下,我已经测试几十遍了能用。不支持windos系统。linux系统下配置阿里DDNS(IPv6)插图

看完有用的给我点个收藏吧!!

我也是初学者,咱们一起学习进步!

原文链接:https://blog.csdn.net/weixin_46761286/article/details/128601231?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168510975416800184173714%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=168510975416800184173714&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-26-128601231-null-null.268%5Ev1%5Econtrol&utm_term=NAS%E3%80%81%E7%BE%A4%E6%99%96%E3%80%81%E9%98%BF%E9%87%8C%E4%BA%91%E3%80%81%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90%E3%80%81%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F%E3%80%81ipv6%E3%80%81ddns%E3%80%81%E8%BD%BB%E9%87%8F%E7%BA%A7%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%81%E9%93%81%E5%A8%81%E9%A9%AC%E3%80%81%E5%A8%81%E8%81%94%E9%80%9A%E3%80%81DSM%E3%80%81DSM6.0%E3%80%81%E7%BE%A4%E6%99%96nas%E3%80%81%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%81%E8%9C%97%E7%89%9B%E6%98%9F%E9%99%85%E3%80%81%E9%BB%91%E7%BE%A4%E6%99%96%E3%80%81docker%E3%80%81%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E3%80%81%E5%9F%9F%E5%90%8D%E6%B3%A8%E5%86%8C%E3%80%81%E5%AE%9D%E5%A1%94%E3%80%81%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E3%80%81nginx%E3%80%81frp%E3%80%81%E5%8A%A8%E6%80%81%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享