|
本帖最后由 炫我东方 于 2022-3-24 20:28 编辑
我看了一下楼主的代码,我知道大家出错的原因了。楼主有一行代码是错误的,就是这行
应该改成
就是后缀要用英文双引号包起来,因为用双引号包起来后,它表示是个字符串。如果不括起来,脚本解释器是不认的。另外 ,大家要注意209:34ff:fe2c:5ab0前面还有个英文冒号的。完整后缀是":209:34ff:fe2c:5ab0",这样前缀与后缀才能完美拼接。
所以最终代码是
- #!/bin/sh
- pd=$(ubus call network.interface.wan_6 status | grep -A 3 '"ipv6-prefix":' | grep address | awk '{print $2}' | awk '{print substr($0,1,length($0)-4)}' | sed 's/^.//')
- hz=":209:34ff:fe2c:5ab0"
- wanip6=${pd}${hz}
- echo "${wanip6}"
复制代码
把上面代码复制到txt文件里,别忘了改成自己的ipv6后缀,然后保存,并将txt文件的后缀名改成sh,比如,原来的文件名叫alidns.txt,那么改成改成alidns.sh
然后通过winscp上传到/etc目录下(其他目录也可以),当然后最好在/etc下新建一个目录,假设叫aliyunddnsipv6,然后把alidns.sh上传到/etc/aliyunddnsipv6下,所以脚本目录为/etc/aliyunddnsipv6/alidns.sh
然后在alidns.sh上右键 ,查看属性,将权限改为0755
然后在阿里云后台添加AAAA记录,最后在openwrt里设置动态ddns即可。一定要先在阿里云里添加记录,再在openwrt设置。否则,会有很大机率是不成功的。这样做法最通用,最保险。
另外,注意!注意!注意!!!!!注意下面这行代码
- pd=$(ubus call network.interface.wan_6 status | grep -A 3 '"ipv6-prefix":' | grep address | awk '{print $2}' | awk '{print substr($0,1,length($0)-4)}' | sed 's/^.//')
复制代码 这行代码有的固件需要用wan_6,而有的需要改成wan6
至于你的固件到底需要用哪个,可以把上面一行小括号里的代码复制到终端(例如:openwrt自带的终端、putty等)里运行一下,再改成wan6运行一下,哪个能正确显示前缀就用哪个。也就是说把下面两行代码分别复制到终端运行一下,用成功的那个
- ubus call network.interface.wan_6 status | grep -A 3 '"ipv6-prefix":' | grep address | awk '{print $2}' | awk '{print substr($0,1,length($0)-4)}' | sed 's/^.//'
复制代码- 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/^.//'
复制代码
最后希望能帮到大家
|
|