家里原来用长城宽带,运营商好说话,给我申请了个公网IP,用来架设私有云,搞个花生壳动态域名就行了。
最近由于搬家,新地方没有长城宽带,只能换用移动宽带了,移动不肯给公网IP,只有大内网IP,好在移动支持IPv6,赶紧去dynv6.com申请了个域名,然后,他们推荐用ddclient来更新,可是我电脑ddclient老是报无法解析IP的错误,最后实在没办法,自己写个脚本来更新。现分享给大家。
写个更新脚本
cat /usr/bin/ddns.dynv6.sh
#!/bin/sh
export PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
ipv6=$(ifconfig wlp3s0 | grep 'inet6 2409' | awk '{print $2}' | head -1)
## ------------ openwrt --------------
#ipv6=$(ifconfig pppoe-wan| grep ' 2408' | awk '{print $3}' | sed 's/\/64//')
wget --no-check-certificate -q -O dynv6.log 'http://dynv6.com/api/update?hostname=<你的域名>&token=<你的令牌>&ipv6='$ipv6'&ipv6prefix='$ipv6
##路由器:
ifconfig pppoe-wan | grep 'inet6 addr: 2408' | awk -F '/' '{print $1}' | awk '{print $3}' | head -1
其中,wlp3s0 是我的网卡名,要换成你自己的网卡名。2409是你的IPv6的前缀,我移动的是2409,这个主要是为了防止读错了,读成局域网IP了。
变成可执行
chmod +x /usr/bin/ddns.dynv6.sh
开机自动执行
在/etc/rc.local加入一行:
/usr/bin/ddns.dynv6.sh
这样每次电脑开机,都能把新的IPv6更新到dynv6,然后就用你的域名可以直接访问私有云了。
定时任务
如果你用的是无线网卡,一般启动时,可能无线网卡还没来得及连接,更新IP就会失败。所以,建议放在crontab中:
sudo crontab -l
*/10 * * * * /usr/bin/ddns.dynv6.sh
每10分钟更新一次。