阿里云的最新办法
利用自带的动态dns插件,添加一个配置
 
注意上面的1、2、3处
ip地址来源为脚本
2处为脚本文件的在路由器上的存放路径
3处是触发脚本执行更新的接口,根据你的实际情况进行选择为了保证刷机之后脚本文件还在,一般这样设置

  1. #!/bin/sh
  2. pd=$(ubus call network.interface.wan6 status | grep  -A 3 ‘”ipv6-prefix”:’ | grep address | awk ‘{print $2}’ | awk ‘{print substr($0,1,length($0)-4)}’ | sed ‘s/^.//’)
  3. hz=:209:34ff:fe2c:5ab0
  4. wanip6=${pd}${hz}
  5. echo “${wanip6}”

补充,@conupefox提供的获取PD的另外一个方法

 

  1. <blockquote>.  /lib/functions/network.sh

这个跟以前的方法类似,主要是通过代码获取pd然后加上客户机IPV6地址的固定后缀,就是一个完整的V6地址

——————————————————————————————————————————————————————————————————————————————–

以下为非阿里云,如dynu等二级域名的使用放大
在IPV6环境,网内各设备均会获得一个全球地址,路由上可以通过ddns等工具最其自身所获取的wan6 ip实现域名绑定,并自动更新,但不能解决通过域名访问网内其它设备IPV6地址的问题,经过观察发现我们的路由获取的IPV6除了128位地址外还有一个PD前缀(移动为60位,电信为56位),如下图

黄色方框内即为前缀
我们再来看网内设备所获取的IPV6地址

发现前面方框内即前面所说的前缀,后面方框内为给此设备分配的IPV6地址后缀,仔细观察还可以看出后缀最后6位与设备mac地址的后6位一样,但这并不是所有设备都是如此。
在经过多次观察,会发现路由对设备分配的IPV6后缀基本是固定的,当路由器重新拨号后,运营商分配的ipv6前缀会和wan ip一样发生变化,但后缀部分并不会变(此处不绝对,有些设备每次都不一样,此方法不适用)
同时在IPV4我们可以在路由上对局域网内设备指定IP地址分配,在IPV6我们一样也可以,但不再是固定的IP地址了,只能固定的后缀,再加上运营商分配的前缀就组成一个完整的IPV6地址
在openwrt的网络-DHCP/DNS菜单的最下面有个静态地址分配

方框内填好后缀就行了,我习惯于用IPV4地址做后缀,其中DUID这个字段从“已分配的 DHCPv6 租约”里面找到对应关系选取。但此方式不建议,因为有时候并不会生效,会造成解析失败,建议后缀还是全地址(例如:2e0:b4ff:fe1c:4c63)
以上工作做好后,现在来讲如何通过脚本来实现动态域名的更新。
首先我们在dynu.com注册n个免费域名,该网站现在需要fq访问,但不影响解析
我们在openwrt的/etc/ppp/ip-up.d目录下新建一个dynu-a.sh的文件,内容如下:

  1. #!/bin/sh
  2. USERNAME=”user”   #你注册dynu用户名
  3. PASSWORD=”password”   #你注册的dynu密码
  4. DOMAIN=”kobxx.dynu.net”  #你注册的dynu免费域名
  5. wanip=`ifconfig pppoe-wan 2>/dev/null | grep ‘inet addr’ | awk ‘{print $2}’ | cut -d: -f2 2>/dev/null`   #获取路由器IPV4地址
  6. pd=`ubus call network.interface.wan6 status | grep  -A 3 ‘”ipv6-prefix”:’ | grep address | awk ‘{print $2}’ |   grep -oE ‘[0-f]{0,4}\:[0-f]{0,4}\:[0-f]{0,4}\:[0-f]{0,4}’`     #获取路由器IPV6前缀
  7. hz=::123    #123为路由上给a设备分配的IPV6后缀
  8. wanip6=${pd}${hz}   #前缀后缀组合为设备的IPV6地址
  9. curl  -k  “https://207.38.70.46/nic/update?hostname=${DOMAIN}&username=${USERNAME}&password=${PASSWORD}&myip=${wanip}&myipv6=${wanip6}”    #执行将ip地址发送到域名服务器进行更新

以上用户名密码等信息自行修改,保存后修改文件权限为0755
在lede的文件系统,放在/etc/ppp/ip-up.d目录下的脚本会在发生pppoe拨号自动触发执行,也就是说只要路由器重新拨号即可完成域名更新
如果有多台设备,可以继续新建文件dynu-b.sh,替换相应内容,依次可以将网内所有设备按照此方式实现域名更新。
这样做的好处就是避免了所有设备的域名更新IP全部在路由实现,而且路由只要重新拨号就触发,不需要花精力为每台设备去找ddns插件,有的平台可能根本就没合适的插件
https://www.right.com.cn/forum/thread-668697-1-1.html