IPv6越来越完善,家里的宽带和手机也分配了IPv6全球单播地址,手机分为/64,宽带分为/56。 测试一下运营商内外的连接性也还可以。 我几乎可以跑得满带宽。 IPv6终于可以使用了。 一切都是公共网络,再也不需要渴望ipv4或通过内部网。
可以适用
本教程适用于各种基于linux的系统,包括ubuntu、centos、openwrt和群晖。 本文只讨论IPv6,不讨论IPv4。
代码
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=` ipaddrshoweth0| grep ' inet6. * global '|awk ' { print $2} '|awk-f '/' { print $1} '|die $ ii
for ipv6 in $ipv6s
do
#ipv6=$ipv6
布莱克
唐
echo $ipv6
current _ IPv6=` nslookup-query=AAAA $ aliddnsipv6_ name 21 `
#echo $current_ipv6
current _ IPv6=` echo ' $ current _ IPv6 '|grep ' address : '|tail-n1|awk ' {打印$ nf } `
echo $current_ipv6
if [ '$?' -eq '0' ]
then
current _ IPv6=` echo ' $ current _ IPv6 '|grep ' address : '|tail-n1|awk ' {打印$ nf } `
echo $current_ipv6
if [ '$ipv6'='$current_ipv6' ]
then
echo 'skipping '
fi
# fixwhenarecordremovedbymanualdnsisalwaysupdateerror
else
unset aliddnsipv6_record_id
fi
timestamp=` date-u ' % y-% m-% dt % h %:% m %:% SZ ' `
urlencode () }
# urlencode
out=' '
while read -n1 c
do
case $c in
[a-za-Z0-9._-]out='$out$c ';
out='$out`printf '%%X' ''$c ' ';
欧洲航空
唐
echo -n $out
}
enc ()。
echo -n '$1' | urlencode
}
send_request
local args=' access keyid=$ aliddnsipv6 _ AK action=$1format=JSON $2version=2015-01-09 '
local hash=$ (echo-n ' get/$ (enc ' $ args ' )|openssldgst-sha1-hmac ' $ aliddnsipv6_ sk '-binary|OpenSSL
curl-s ' http://Ali DNS.aliyuncs.com/$ args signature=$ (enc ' $ hash ' ) '
}
get_recordid
grep-EO ' ' recordid ' : ' [0-9] '|cut-d ' : '-F2|tr-d ' '
}
query_recordid
send _ request ' describesubdomainrecords ' ' signature method=hmac-sha1 signature nonce=$ timestampsignatureversion=1.0
}
update_record
send _ request ' updatedomainrecord ' ' RR=$ aliddnsipv6_ name1recordid=$1signature method=hmac-sha1 signature nonce vonce
}
add_record
send _ request ' adddomainrecorddomainname=$ aliddnsipv6 _ domain ' ' RR=$ aliddnsipv6 _ name1signature method=hmac-hmac
}
#add support */* and @/@ 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
配置
将上述代码另存为aliddns.sh。 需要变更的项目如下。
aliddnsipv6_ak='蚂蚁AccessKey ID '
aliddnsipv6_sk='蚂蚁Access Key Secret '
使用aliddnsipv6_name1='辅助域名前缀,例如nas.rousongs.com,在此输入nas '
aliddnsipv6_domain='主域名'
第19行左右ipv6s=ip addr show eth0`,eth0为网卡名称,修改为对应的网卡名称。
然后,将该文件放在任意位置,在当前目录中输入./aliddns.sh并运行。
计划任务
1、群晖、群晖设置---按计划任务设置即可。
2、OpenWrt等linux都可以使用crontab执行计划任务。 见https://www.rousongs.com/1262.html
http://www.zxbblog.com