openwrt折腾记1-DDNS动态域名更新与WIFI定时开关脚本

本来无事,因为刚得知ipv6可以直接访问内部家庭宽带,于是开始试用。移动的第三方公司,运维人员给的答复是IP公网的需要安装专线,ipv6够呛。

0x01使用ipv6拨号

  1. 首先通过他的超极用户进入光猫,更改eth端口为bridge,并用开通ipv6,默认是没有开通的。
  2. 设置路由器开通ipv6,TP link默认没有使用,而且有专门的ipv6拨号菜单。
  3. 查看自己在笔记本网卡信息,确实取得了公网的IPv6,在外网ping公具下也能ping通了。于是用较新的python -m http.server 80. 打开一个v6的端口服务,试着访问一下。从手机4G网络能访问到。

errors: :在这个过程中想通过二级路由openwrt也能畅通ipv6,检测test.ipw.cn失败了。原因可能是防火墙。受到了各种我不明白的限制。 正像有人说的从外面能ping里面的ip6。里面的不能ping外面的ip6。这造成后续有个shell脚本crul 6.ipw.cn.获取地址的时候,在openwrt里卡死。

0x02给NAS设置动态DNS

  1. 听说ali支持就用了ali的dns。免费的那种,本能我以为要转入阿里后才能用他的动态DNS,后来发现,不用换域名商,根据提示在域名设定处使用阿用的DNS就行了。NAS在一级路由下,没有openwrt的参与,能从外网访问了。直接上http://[ip6]。可以但是速度是真慢。
  2. aliddns-cli (go)这是个命令行工具,有各个平台的,写好参数存好sh,设置好定时任务就行。我不想再用docker。docker有个autoupdate后台任务。定义ip6地址并不方便。直能本机运行,而我想让脚本运行openwrt上。NAS不自己提交,会影响休眠,但是当从外网访问,休眠的NAS,唤醒可能也很慢。总之就算ip6直通了,访问常断,速度很慢。也不知道是网络还是nas性能差。
  3. 在openwrt是安装aliddns-cli相应版本。提取本地ip6并缀,组合NAS后半段。提交到阿里AAAA记录。5分钟提交一次。这没什么好说的。
    ifconfig wan |grep inet6 |cut -c12-121
    我 的openwrt计划任务开机就清空,不知道别人的如何,所以自己写的开关wifi在开机启动脚本,wifi up wifi down,定时开关任务,是靠脚本放入cro的文本中。在这里正好借鉴用来执行updateali的任务。
  4. 本来进行到这里没事了,可是由于我申请let‘s encrypt证书,要用域名验证,使用ali又不熟练,用的又是acme。本来里面有 -dns dns_ali 这样的开关来验证域名是我的。但是我当时是手机加入txt解析。可以也不知道哪里错了,总是验证失败。而且文件验证从nas,nignx里放在目录,识别失败,导致也是失败的。后来用笔记本python放验证文件也是失败的。证书就一直无法获得,更别说自动更新了。直到用 acme -dns -dns_ali才解决了。证书的事本想单独说,一下说完了。acme默认的dns用的是cloudflare的。所以我想试试这个的ddns是不是更好。结果入了个大坑。

0x03Cloudflare动态dns提交

一段脚本,一个接口,在openwrt上整出好些事来,本来,cloudflare-v4-ddns在群晖上运行成功了。而且会记录下本次提交的地址,不会重复提交一样的。后来在移至openwrt的过程中,把这段代码也丢失了。找到了cf-ddns这另一段相似代码。因为在动态dns,也就是luci-app-ddns这个组件中,无法看到cloudflare。而且上面v4在这个无法运行,原因有2:

  1. curl url 。任何ip6的请求是失败的,而且没有失败信息,只是卡住,或闪过,可以是前面提到 的openwrt规则阻止了。而原本的sh是靠外网网址,取得本地ipv6.虽然我不使用此功能,但是我没关闭,造成卡住。
  2. grep报错,openwrt使用的busybox里的grep。不存在 -Po开关。造成无法提取zoneid。解决办法刚找到一个,opkg install grep. 发现后台软件源里的grep也不兼容。还得从op的packages找一个相应版本ipk安装一下,好在依赖不多。安装可以。装上以后,提示没有grep。放在了/usr/bin/grep.
ln -s /usr/bin/grep /bin/grep

0x04这次其实想解决另一个问题但还是DDNS

前期因为cloudflare脚本没有在动态DNS的服务器列表中存放,而重新刷了固件,但是新固件依然没有cloudflare。一个人说,需要手工安装cloudflare-v4-ddns2.7.3。我安装上是有了。但是还是不能用。根椐他的脚本开始的说明,是来自于cf-ddns。我找到了它。后来在它基础上,解决了两处根本问题。也就是200行的找码,最少用了两天才在openwrt上运行起来。虽然到现在也没具体去运行。但是离期望更近了。openwrt真是折腾人啊。在这个过程中看到了ddns-go这个项目。它是一个7M的可执行程序。基于一个WEB可生成配置的后台。可以对多平台提交ddns,长期后台,可安装为服务。虽然功能强,但不符合我的需求。
然而我为alidns-cli生成了一份,存入tmp的脚本。避免占用软件空间。 开机任务中,如果发现tmp(内存)无此文件, wget myurl。取下一份,并更改为 chmod +x 可执行。

0x05提供一些代码做结尾

# ip addr show dev eth0
ifconfig eth1 |  sed -e's/^.*inet6 addr: \([^ ]*\)\/.*$/\1/;t;d' |cut -d ':' -f 1,2,3,4
ifconfig ovs_eth0 |grep Global |awk 'NR==1{print$3}'|cut -d '/' -f 1
ifconfig wan |grep Global |awk 'NR==1{print$3}'|cut -d ':' -f 1-4

最后为了容易使用,eht1,wan,等等是自己的网卡名,awk命令NR==n 是第几行,$n是第几列.cut -d 是分割符, -f 是分割后的第几个词,这样也能取前缀64,也能取全部.
定时任务开机添加
在生成以为文件
/root/cronddns.sh

#root@HiWiFi:~# cat cronddns.sh 
#!/bin/sh
if [ `grep -c "cf-v4-ddns" /etc/crontabs/root` -ne '0' ] ;then
echo "find"
else
echo "not find"
echo "*/5 * * * * /root/cf-v4-ddns.sh" >>/etc/crontabs/root
echo "" >>/etc/crontabs/root
fi

加入开机运行.主页-系统-启动项-开机运行脚本.
这里是一段相似的wifi开关代码.

if [ `grep -c "sbin/wifi" /etc/crontabs/root` -ne '0' ] ;then
echo "find"
else
echo "not find"
echo "30 23 * * * /sbin/wifi down">>/etc/crontabs/root
echo "0 5 * * * /sbin/wifi up" >>/etc/crontabs/root
echo "" >>/etc/crontabs/root
fi

0x0

下一期广告adbyby和bypass
本来刷机前我使的固件有广告屏蔽大师plus+但是新的里面,不知道为啥没有了。可能是因为它太强了。有时候bestTV,因为它而不能正常观看。
有些TV时而用效时而无效。因为应用也在自己更新。好在我有两个路由,这个不行,用另一个。于是我又找回了
Adbyby Plus
https://op.supes.top/packages/mipsel_24kc/
我希望可以下载安装正常使用。但是我也知道困难挺大的,这个软件的依赖要多些了。
具体使用要,对有关IP开启全局拦截。然后就试试了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wjcroom

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值