Linux设置IPV6动态DDNS

发布于 2021-01-18  75 次阅读


类似于国内的花生壳,不过目前花生壳不支持IPV6。

首先注册一个dynv6账号,https://dynv6.com/,由于是国外的注册后验证下邮箱就能用了。

然后申请一个域名,推荐申请比较常见的后缀,比如net、com。下面两个框可以不填

Linux设置IPV6动态DDNS

dynv6可以使用get的方式更新ip地址,具体看https://dynv6.com/docs/apis

官方有一份sh程序可以在Linux下设置定时运行后自动更新IPV6地址,但是某些机器只能获取到局域网的地址,导致本地测试正常,公网访问不了。

程序代码地址:https://gist.github.com/corny/7a07f5ac901844bd20c9

代码在第19行

address=$(ip -6 addr list scope global $device | grep -v " fd" | sed -n 's/.inet6 ([0-9a-f:]+)./\1/p' | head -n 1)

这行代码会获取3个IPV6地址,代码默认返回第一个,但是第一个可能是240e:a40:313a:6666::1001,这种我测试了只能在局域网访问,改成:

address=$(ip -6 addr list scope global $device | grep -v " fd" | sed -n 's/.inet6 ([0-9a-f:]+)./\1/p' | tail -1)

这个程序就是通过ip -6 addr list scope global获取网卡信息,正则取出IPV6地址组成更新链接,用curl或者wget访问,达到更新效果,如果需要在win、Android等平台上使用,通过别的小程序也能实现这个效果。

更改时注意文件类型,Linux下不能使用Windows(CR LF),推荐使用notepad++修改,右下角就能改文件类型。