阿里云的最新举措
使用内置动态dns插件,添加配置
参见上面的注释 1、2 和 3。
ip地址来源是脚本
2是脚本文件在路由器上的存放路径
3是触发脚本执行更新的界面,根据自己的实际情况选择,为了保证刷入后脚本文件还在,一般都是这样设置的
/bin/sh #!/bin/sh 复制代码
#获取PD从wan6接口状态
pd = $(ubus 调用..wan6 | grep-A 3'“ipv6-”:'| grep | awk'{打印 $2}'| awk'{打印 ($0,1,($0)-4)}'| sed's/^.//')
复制代码
此外@还提供了另一种获取PD的方法
./lib//.sh
复制代码
此外,您可以选择从LAN接口获取PD
pd = $(ubus 调用..lan | grep-A 2'“ipv6--”'| grep | awk'{打印 $2}'| awk'{打印 ($0,1,($0)-4)}'| sed's/^.//')
复制代码
这个跟上一个方法类似,主要是通过代码获取pd然后加上客户端IPV6地址的固定后缀,就可以得到完整的V6地址。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
以下为使用非阿里云如dynu等二级域名的放大图
在IPV6环境下,网络中的每个设备都会获得一个全局地址,路由器可以使用ddns等工具将域名绑定到自己获取的wan6 ip上并自动更新,但无法解决通过域名访问网络内其他设备的IPV6地址的问题。经过观察发现,我们路由器获取的IPV6除了128位地址(移动60位,电信56位)外,还多了一个PD前缀,如下图所示
黄色框是前缀
我们来看一下网络中设备获取的 IPV6 地址
发现前面的框就是上面说的前缀,后面的框就是分配给这台设备的IPV6地址后缀,仔细观察还能发现后缀的后6位和设备mac地址的后6位是相同的,但是并不是所有的设备都是这样的。
经过多次观察发现,路由器分配给设备的IPV6后缀基本是固定的,当重新拨号路由器时,运营商分配的ipv6前缀会像wan ip一样改变,但是后缀部分不会变(这个不是绝对的,有的设备每次都不一样,所以此方法不适用)
同时在IPV4中,我们可以在路由器上给局域网内的设备分配IP地址,在IPV6中我们也可以做到同样的事,只不过它不再是一个固定的IP地址,它只能有一个固定的后缀,再加上运营商分配的前缀,才能组成完整的IPV6地址。
在网络-DHCP/DNS菜单的底部有一个静态地址分配
在框中填写后缀即可。我喜欢使用 IPV4 地址作为后缀,DUID 字段从“分配租约”中选择。但是不建议使用此方法,因为有时不起作用,会导致解析失败。建议使用完整的地址后缀(例如:2e0:b4ff:fe1c:4c63)
完成上面的工作之后我们来谈谈如何通过脚本来更新动态域名。
首先我们注册了n个免费域名,网站现在需要fq访问,但是不影响解析
我们在/etc/ppp/ip-up.d目录下新建一个dynu-a.sh文件,内容如下:
/bin/sh #!/bin/sh 复制代码
="user" #您注册的dynu用户名
=“”#您注册的dynu密码
= ""#您注册的dynu免费域名
wanip=` pppoe-wan 2>/dev/null | grep 'inet addr' | awk '{print $2}' | cut -d: -f2 2>/dev/null` #获取路由器IPV4地址
pd=`ubus call ..wan6 | grep-A 3 '"ipv6-":' | grep | awk '{print $2}' | grep -oE '[0-f]{0,4}\:[0-f]{0,4}\:[0-f]{0,4}\:[0-f]{0,4}'` #获取路由器IPV6前缀
hz=::123 #123是路由器上分配给设备a的IPV6后缀
=${pd}${hz} #前缀和后缀组合即为设备的IPv6地址
curl-k"${}&=${}&=${}&myip=${wanip}&=${}" #执行将IP地址发送到域名服务器进行更新
复制代码
自行修改上面的用户名,密码等信息,保存后将文件权限改为0755。
在lede文件系统中,放置在/etc/ppp/ip-up.d目录下的脚本,在PPPoE拨号时会自动触发执行,也就是说只要路由器再次拨号,就能完成域名更新。
如果有多台设备,可以新建一个文件dynu-b.sh,替换相应内容,通过这种方式可以逐一更新网络内所有设备的域名。
这样做的好处是避免了所有设备的域名更新IP完全在路由器里实现,只要重拨就触发路由器,所以没必要花精力去为每个设备寻找ddns插件。有的平台可能根本没有合适的插件。
、ipv6 pppoe、ipv6 ddns、ipv6 wan
/bin/bash #!/bin/bash
令牌=“************b”
esxi=""
ilo4=""
pv6=$(wan_6 | grep 2409: | awk'{print ($2,2,20)}'| sed'/^$/d'| sed'2!d')
eip6=${pv6}70
iip6=${pv6}69
curl -s -k -X POST "" -d "=$token&=json&=&=$esxi&=AAAA&=%e9%bb%98%e8%ae%a4&=esxi&value=$eip6"
curl -s -k -X POST "" -d "=$token&=json&=&=$ilo4&=AAAA&=%e9%bb%98%e8%ae%a4&=ilo4&value=$iip6"
首先,谢谢你的帖子!我花了很长时间才弄清楚!让我告诉你我遇到的问题,也许这对其他人有帮助!
1. 从原始海报复制代码,创建一个带有 + 的文档,并将其保存为 .sh 文件。
2.根据情况把代码里的wan6改一下,我用的esir固件其实是隐藏了虚拟的wan_6接口,有ipv6地址的,改成wan_6就行了,这个也是跟前面几位师兄学的,然后把后缀改成你要用来做ddns的设备的ipv6地址后缀就行了。
3、用ftp或者其他ftp软件把这个sh文件传输到路由器上,可以自己建立一个文件夹,记住路径,传输完记得检查sh文件的可执行权限,因为我没有加可执行权限,所以一直显示无法获取IP地址源。
4. 剩下的按照楼主说的填写就可以了!
我的 NAS 终于可以通过路由器使用 DDNS ipv6 了,不用在 NAS 上用了。之前影响硬盘休眠!谢谢!
你的路由器真的是这个协议的客户端吗?正常情况下,这里应该有一个 wan6 的地址。
路由器本身不需要这个......
这确实是一个协议
路由器下的设备测试,可以正常访问ipv6。
但是这里的移动网络感觉怪怪的,之前我用系统路由器拨号上网,开启了ipv6,路由器下面的设备也是正常访问ipv6的,测试也通过了。
路由器外网状态很奇怪,无论如何都无法获取IPv6 WAN地址。
我也发过一个关于此问题的帖子询问。
移动宽带改成桥接后固件能获取ipv6,但改完后无法连接路由器 - Tp-link无线路由器及网络设备 - 恩山无线论坛 - by !()
但没有人解释清楚,也没有解决方案
所以现在的问题是,我如何获取/查看路由器 ipv6 地址的最后 4 段?有没有什么命令可以查看它?现在我只能看到前 4 段
感谢大佬的教程,成功实现阿里云DDNS绑定NAS~~
我编辑完sh脚本后,上传了,但是没有设置文件权限
在动态DNS高级设置页面设置脚本路径,点击保存后,提示两个错误:
高级设置 - IP 地址源 [IPv6]:无法确定本地 IP。
高级设置 - 未找到脚本或脚本不可执行。
我直接把sh脚本文件权限设置为0755,然后点击保存就成功了,谢天谢地
下面的脚本内容,SSH登录后可直接执行,复制粘贴即可,会在/etc//ip文件夹下生成一个.sh脚本文件,无需手动上传。
mkdir /etc//ip #新建文件夹存放脚本(根据自己需要修改)
cat /etc//ip/.sh #新建一个脚本文件,将下一行到EOF之前一行的内容写入(根据自己的实际情况修改sh脚本文件名)
/bin/sh #!/bin/sh 复制代码
# 运营商分配IPv6 PD,需要注意是wan_6还是wan6,使用ubus查看
pd = $(ubus 调用..wan_6 | grep-A 3'“ipv6-”:'| grep | awk'{打印 $2}'| awk'{打印 ($0,1,($0)-4)}'| sed's/^.//')
hz=:209:34ff:fe2c:5ab0 #对应设备IPv6地址后缀(根据自己的实际情况修改)
=${pd}${hz} # 连接相应的设备 IPv6 地址
回显“${}”
末梢血
chmod +x /etc//ip/.sh #赋予文件执行权限
复制代码
还有一点就是动态DNS的高级设置,如果不指定DNS服务器,会默认使用路由器LAN侧的DNS服务器,可能会造成解析缓慢、不稳定的情况。
如果你检查动态DNS日志,你会看到解析会时不时更新,但实际上地址并没有改变,不需要更新。
建议设置IPv6 DNS服务器,保证地址解析快速、准确。
我直接用了阿里的DNS:2400:3200::1,或者2400:3200:baba::1也是可以的
我看了原帖者的代码,知道为什么大家都犯了错误。原帖者有一行代码是错误的。
频率=:209:34ff:fe2c:5ab0
复制代码
应改为
hz=":209:34ff:fe2c:5ab0"
复制代码
后缀必须用双引号括起来,因为它表示一个字符串,如果不括起来,脚本解释器将无法识别。另外请注意,209:34ff:fe2c:5ab0 前面有一个冒号,完整的后缀是“:209:34ff:fe2c:5ab0”,这样前缀和后缀才能完美拼接。
所以最终的代码是
/bin/sh #!/bin/sh 复制代码
pd = $(ubus 调用..wan_6 | grep-A 3'“ipv6-”:'| grep | awk'{打印 $2}'| awk'{打印 ($0,1,($0)-4)}'| sed's/^.//')
hz=":209:34ff:fe2c:5ab0"
=${pd}${hz}
回显“${}”
复制代码
将上面的代码复制到一个txt文件中,别忘了把ipv6后缀改成你自己的,然后保存,把txt文件的后缀改成sh,比如原文件名是.txt,就改成.sh。
然后上传到/etc目录下(其他目录也行),当然最好是在/etc下新建一个目录,假设是叫这个目录,然后把.sh上传到/etc/下,这样脚本目录就是/etc//.sh
然后右键点击.sh,查看属性,将权限改为0755
然后在阿里云后台添加AAAA记录,最后设置动态ddns,一定要先在阿里云添加记录,再设置,不然大概率会不成功,这个是最常见也是最安全的方式。
另外,注意!注意!注意!注意!注意下面这行代码
pd = $(ubus 调用..wan_6 | grep-A 3'“ipv6-”:'| grep | awk'{打印 $2}'| awk'{打印 ($0,1,($0)-4)}'| sed's/^.//')
复制代码
有些固件需要使用wan_6,有些固件则需要改为wan6。
至于需要用哪个固件,你可以把上面括号里的代码复制到一个终端(例如内置终端,putty 等)运行,然后换成 wan6 再运行,用能正确显示前缀的就行。也就是把下面两行代码分别复制到终端运行,成功了的就用。
ubus 调用 ..wan_6 | grep -A 3 '"ipv6-":' | grep | awk '{print $2}' | awk '{print ($0,1,($0)-4)}' | sed 's/^.//'
复制代码
ubus 调用 ..wan6 | grep -A 3 '"ipv6-":' | grep | awk '{print $2}' | awk '{print ($0,1,($0)-4)}' | sed 's/^.//'
复制代码
最后希望能帮助到大家
我设置的时候用的是双引号,没问题,但是去掉双引号就提示错误了。
可能你写后缀的时候加了其他符号,这个脚本的重点在于如何正确获取PD,现在IPV6网络各种问题,我见过自动拨号后没有PD的路由器,需要重新连接wan6才能正常,不同问题采用不同的解决方案,如果你有能力,就一段一段输入获取PD的命令检查一下。
例如完整代码为 pd=$(ubus call ..wan6 | grep-A 3 '"ipv6-":' | grep | awk '{print $2}' | awk '{print ($0,1,($0)-4)}' | sed 's/^.//')
您可以在第一步中执行 ubus call ..wan6
第二步,执行ubus call ..wan6 | grep -A 3 '"ipv6-":'
每次执行命令的时候在“|”后面加上一段,看到不正常的输出就知道问题出在哪里了。
我想问一下,我输入ubus call ..wan_6 | grep -A 3 '"ipv6-":' | gr ...
首先需要检查 lan6 接口是否有 IPv6。输入 ubus call ..lan6 进行检查。如果有,检查它后面是否跟着“ipv6-”字符。如果有,您可以使用这个脚本。我建议您一步一步拆解这个脚本命令,您就会明白了。
我有一篇带有获取前缀的脚本注释的帖子,你可以看看:
下载IPv6 DDNS+IPv6 WOW局域网设备远程网络唤醒设置
扫一扫在手机端查看
-
Tags : OPENWRT在路由器上实现网内各设备的IPV6 ddns(支持阿里云) openwrt ipv6helper openwrt ipv6 pppoe openwrt ipv6 ddns openwrt ipv6 wan
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。