其实好几个月前我就已经把这个动态域名设置好了,后面重新刷了系统,忘记保存,又得重新再来,这次把过程记录一下,免得下次再从头百度。
工具
- 刷好openWrt的路由器
- 一个每步科技注册的域名(我为什么选择这个,因为它免费)
步骤
-
创建更新脚本
通过ssh访问到openwrt的后台,创建一个文件夹,存放用来向每步的服务器发送本机信息的脚本,在其中创建脚本,我这里命名为mbDDNS.sh,其中输入以下内容:#sync #. /lib/functions/network.sh #network_flush_cache #network_find_wan6 NET_IF6 #network_get_ipaddr6 NET_ADDR6 "${NET_IF6}" NET_ADDR6=$(ifconfig | grep br-lan -A 10 | grep 2409 | cut -b 23-43) old=$(cat ./ips6.ini) new=$NET_ADDR6 if [ "$old" != "$new" ] then rm -rf ips6.ini echo $new > ips6.ini rm index* #wget "http://v6.meibu.com/v6.asp?name=注册的域名&pwd=注册时设置的密码" wget "http://ipv6.meibu.com/?id=123&name=注册的域名&pwd=注册时设置的密码&ipv6=$NET_ADDR6" else echo "==same!" fi
这个是从每步网站上的脚本改来的,原脚本在这里:
原脚本我运行起来有问题,所以改了一下。 -
测试内容是否成功
- 一种方法是根据每步在这个网页的描述:
返回 chenggong 为成功
返回 chongfu 为重复提交
返回 err1 为密码错误
返回 err2 为域名错误
返回 daoqi 为使用到期
观察返回值,看是否成功,我这里也不知道为什么,成功了只返回了个OK,错误了才有上面说的返回值。 - 另一种方法是使用这个网址去ping自己设置好的域名,看是否能够ping通,如果能通,那就是成功了.
-
在openwrt中设置http访问端口
因为默认的ipv6的http访问端口80是被封了的,个人宽带都是被封了的,无法正常访问,所以如果想实现远程登录本地路由器的web管理界面,就要更改web访问端口到任意自己想设置的值。这样属于workaround的方法,虽然能够通过互联网访问我们的路由器管理页面了,但是访问的时候必须在域名后面加上:设置的域名
如
:808
才能访问
像这样进行设置。有可能比较坑的是有可能这样设置了还是不能从互联网访问,原因有可能是防火墙的设置问题
在防火墙设置里,红圈部分要设置为接收。 -
定时任务
有时候自己路由器重启了,ipv6地址会变化,这时候我们肯定不希望通过域名无法正常访问我们的路由器
可以在web管理界面中的计划任务中添加如下配置:
10 * * * * /bin/bash /root/ddns/mbDDNS.sh
不同版本openwrt中 /bin/bash 可能不一样,终端输入echo $SHELL可查看。
这个运行的文件就是第一步设置的脚本,每十分钟运行一次,如果ipv6地址有更更新,就使用新地址,否则什么都不做。
结束
如果对内容有不清楚的地方欢迎留言,我看到会尽快回复