本文介绍: 我极力推荐padavanadbyby能力是真强,截至2023-04012,对电视用来说十分可行。openwrt openwrt下的luciappadbybyplus广告屏蔽大师。它就弱了很多最新的一不行。经过我一周时间的比对源码分析原理。终于改版成功openwrt屏蔽大师

本文的精进

(最新提醒本文就是瞎折腾,运行半天后,直接断网,我就不知道这半天是怎么运行丝滑的) (反提醒重启后断网是因为tmp内存程序丢失估计是被自己删除了。然而又判断data存在,继续重定向注册表,却没有程序,造成了断网。手工把/etc/init.d/adbyby,中的判断逻辑给改一下,这样就可以用了。为此我把adblock删除了。也是醉了)

(最终提醒,老毛子规则更新里面六个地址。只要把其中一对lazyvideo加入adguardhome好像也能起到屏蔽效果,和adbyby一模一样。虽然在我老慢牛的x86虚拟路由,有时会失效。但是也算省了本文的折腾了,adguarhome,好像只做dns。就行。网关还是网关就可。)

(逆向提醒adguardhome半天以后,突然失效,任何广告不阻挡了。按照adguardhome这样的表现,我开始怀疑我脑子出了问题需要注意在是,有时候dns默认使用ipv6.而本地的IPv6多数在变动之中,所以应该是不得不关闭的。在dns中只留下唯一ADGHome主机测试一下拦截baidu.之类在自定义规则,一通操作系统电视盒子拦截了-或者是我以为ADG拦截的。然后写了最终提醒,接着马上打脸,突然失效,发现老毛子+adbyby规则的美妙)

(反思,做为仅靠dnshost在阻止工具,保德何能达到了去除广告效果来着。我不禁陷入了沉思,当初是怎么起作用的呢。他不能拦截分析内容啊。这是adbyby这样的东西才能干成的事啊。起码要能对地址后面的内容分析出来。难道我的adbyby在后台没有关。但是在从前,adguardhome也曾部分生效过,而且马上失效了。哎,)

起始和结局

高手看完这个可以走了,节省时间。有兴趣可以替换luciapp-adbyby-plus下,openwrt /usr/share/adbyby/adbybyupdate.sh程序首页手工更新调用之处。
里面升级data/lazy.txt, video.txt可用老毛的规则生成bash函数替换
借鉴来自于padavan始动脚本(原始文件/usr/scripte/前端后端监控状态)其中有用的代码如下

update_ad_rules () {

xwhyc_rules="$hiboyfile/video.txt"
xwhyc_rules2="https://opt.cn2qq.com/opt-file/video.txt"
xwhyc_rules1="https://raw.githubusercontent.com/adbyby/xwhyc-rules/master/video.txt"
xwhyc_rules0="https://coding.net/u/adbyby/p/xwhyc-rules/git/raw/master/video.txt"
logger -t "【Adbyby】" "下载规则:$xwhyc_rules"
wgetcurl.sh /tmp/bin/data/video.txt $xwhyc_rules $xwhyc_rules1 N 5
[ ! -s /tmp/bin/data/video.txt ] && wgetcurl.sh /tmp/bin/data/video.txt $xwhyc_rules $xwhyc_rules0 N 5
xwhyc_rules="$hiboyfile/lazy.txt"
xwhyc_rules2="https://opt.cn2qq.com/opt-file/lazy.txt"
xwhyc_rules1="https://raw.githubusercontent.com/adbyby/xwhyc-rules/master/lazy.txt"
xwhyc_rules0="https://coding.net/u/adbyby/p/xwhyc-rules/git/raw/master/lazy.txt"
logger -t "【Adbyby】" "下载规则:$xwhyc_rules"
wgetcurl.sh /tmp/bin/data/lazy.txt $xwhyc_rules $xwhyc_rules1 N 100
[ ! -s /tmp/bin/data/lazy.txt ] && wgetcurl.sh /tmp/bin/data/lazy.txt $xwhyc_rules $xwhyc_rules0 N 100

}

路由器固件仓库广告屏蔽工具老毛子胜openwrt
在上个文章中介绍了,我极力推荐padavan,虽然是老版本 3.4.3.9-099_23-02-1,它的adbyby能力是真强,截至2023-04012,对电视用来说十分可行。而且有后备adm阿呆猫也能达到一样效果,且koolproxy我没来及试用。
openwrt折腾记2-广告拦截adbyby与pass

而在这个文章中介绍了openwrt下的luciapp-adbyby-plus广告屏蔽大师。它就弱了很多最新的也不行。而看完本文知道为什么不行了

完成两个系统下,广告屏蔽规则融合
一开始我没有更改下载地址动态下载好像不太有用,高级设置第三方订阅也没用,后来知道这里只对adblock就是域名IP拦截有用,对地址目录失效。。

一、探索融合试用adbyby规则文件

经过我两周时间的比对源码分析原理
测试思路openwrt下的openwrt adbyby-plus做了很多过分的事, 一切规则下载 先停用,关闭adblock功能,因为他会屏蔽有用的内容打开全局模式最保险的作法。全部复制padavan老毛adbyby的data包-开始融合重启服务
并把升级sh脚本替换没有规则url版本
因为要彻底转老毛的规则,一切关闭。免得影响
之所以这样是因为老毛的好用临时验证一下。是否可以,


#!/bin/bash
#adblock临时文件,下载下来的规则在这里
rm /tmp/adnew.conf
# rm /usr/share/adbyby/dnsmasq.adblock 卸载
#下载规则的脚本
 cp /root/ad-update /usr/share/adbyby
 cp /root/adblock.sh /usr/share/adbyby
 #下载规则的lua页面订阅按钮
 cp /root/adbyby.lua  /usr/lib/lua/luci/controller/
 #规则文件夹
 cp -r  /root/data /usr/share/adbyby
 cp -r /root/data /tmp/adbyby
 #涉及到lua,为了停止规则需要清空lua缓存
rm /tmp/luci-indexcache

如果想避免以前规则的影响,可以卸载一次从头 开始,卸载清理一下再重装一个干净的

rm /usr/share/adbyby/dnsmasq.adblock 
rm /etc/config/adbyby

然后运行一下我的脚本
或手工改变那几个地方,把data拷贝过去。
下载地址
目录结构如上
tar -zvxf root.tar.gz
安装luciapp-adbyby-plus
然后运行iniadby.sh

最后更新-
还想到一个更笨的方法
安装完adbyby和luciapp-adbyby-plus以后,
下载地址https://op.supes.top/packages/x86_64/
ssh进去,找到
/usr/share/adbyby/data/
/tmp/adbyby/data/
下载

https://opt.cn2qq.com/opt-file/video.txt
https://opt.cn2qq.com/opt-file/lazy.txt

不管用什么方法,提前替换user.txt,.video.txt两个文件最好在tmp复制目录前,不然要连/tmp/adbyby/data
一块改。

二、对luci-app-adbyby-plus更新lazy.txt,video.txt文件脚本adbybyupdate.sh中的地址修复维护

最后终于发现老毛子用三个地址给规则保险,而openwrt只用了一个失效的地址获取规则。所以才失败了。
它的升级文件在三个地方,但地址都是不能用的。我这里没有能用的地址,
https://github.com/adbyby/xwhyc-rules
关键点也就算这个官方文件,不仅仅没能更新。还停在很久以前。
adupdate.sh
手工改代码,量最小也要把uclientfetch给换了,它访问github会报404错。 uclientfetchnocheckcertificate
但是opt.cn2qq.com报错但是缺少一个md5.json。所以不能直接openwrt上用。
adbybyupdate.sh


```bash
#!/bin/sh

if [ ! -f "/tmp/adbyby.updated" ];then
  wget_ok="0"
  while [ "$wget_ok" = "0" ] 
    do 
    uclient-fetch --spider --quiet --timeout=3 http://www.baidu.com
    if [ "$?" == "0" ]; then
      wget_ok="1"
      
      touch /tmp/md5.json && curl -k -o  /tmp/md5.json https://raw.githubusercontent.com/adbyby/xwhyc-rules/master/md5.json
      adm5=$(md5sum /tmp/md5.json | awk -F' ' '{print $1}')
      touch /tmp/adbyby/admd5.json && bmd5=$(md5sum /tmp/adbyby/admd5.json | awk -F' ' '{print $1}')
      if [ "$adm5" == "$bmd5" ];then
         echo "Rules MD5 are the same!"
         echo $(date "+%Y-%m-%d %H:%M:%S") > /tmp/adbyby.updated
         exit 0
      elif [ -s /tmp/md5.json ];then
      
        touch /tmp/lazy.txt && curl -k -o /tmp/lazy.txt https://raw.githubusercontent.com/adbyby/xwhyc-rules/master/lazy.txt   
              touch /tmp/video.txt && curl -k -o /tmp/video.txt    https://raw.githubusercontent.com/adbyby/xwhyc-rules/master/video.txt
        
        touch /tmp/local-md5.json && md5sum /tmp/lazy.txt /tmp/video.txt > /tmp/local-md5.json
        
        
        lazy_local=$(grep 'lazy' /tmp/local-md5.json | awk -F' ' '{print $1}')
        video_local=$(grep 'video' /tmp/local-md5.json | awk -F' ' '{print $1}')  
        lazy_online=$(sed  's/":"/n/g' /tmp/md5.json  |  sed  's/","/n/g' | sed -n '2p')
        video_online=$(sed  's/":"/n/g' /tmp/md5.json  |  sed  's/","/n/g' | sed -n '4p')
        
        if [ "$lazy_online"x == "$lazy_local"x -a "$video_online"x == "$video_local"x ]; then
            echo "adbyby rules MD5 OK!"
            mv /tmp/lazy.txt /tmp/adbyby/data/lazy.txt
            mv /tmp/video.txt /tmp/adbyby/data/video.txt
            mv /tmp/md5.json /tmp/adbyby/admd5.json
            echo $(date "+%Y-%m-%d %H:%M:%S") > /tmp/adbyby.updated
         fi
      fi  
    else
      sleep 10
    fi
   done
   
   rm -f /tmp/adbyby/data/*.bak
    
   kill -9 $(busybox ps -w | grep "/tmp/adbyby/adbyby" | grep -v grep | grep -v update| grep -v adblock | awk '{print $1}') >/dev/null 2>&1
   /tmp/adbyby/adbyby >/dev/null 2>&1 &
fi

`

md5是个综合文件
有为了省事的用户。可以直接这里存储两个文件就算了。
不折腾了。
这是对supes.top 提交的更新issues
https://github.com/kiddin9/OpenWrt_x86-r2s-r4s-r5s-N1/issues/1322#issue-1670022064

三、规则更新-初步探索

期望全靠DNS,Adguardhome,adblock,dnsfilter,这些应该是不行的。adbyby有对内容的分析,慢但不在性能
太麻烦了,最近想升级lazy。但是无法监听网络包,分析不出广告特性来。
使用wireshark
可以对 路由器进行远程检测网络数据,在网卡选择 ssh remote capturesshdump。进行用户名指令的设定。
请添加图片描述
ssh前的圆点
请添加图片描述
cature写入网卡名,我用brlan这个网关输入远程指令

tcpdump  host 192.168.1.102 -w-

在这之前在openwrt中opkg update && opkg install tcpdump
选择用户密码,就能远程检测数据包了。

但是有巨大缺点也是adbyby奇怪的地方,对于https他是怎么分析和拦截的。还是说他是放过了呢。

四、规则好像也只有HTTP,简化安装流程

20230422使用说明
临时下载地址:http://pan.ezdial.cn/nasone/a/
程序来源github/luci-app-adbyby-plus-lite/
1,下载两个luci ipk文件,opkg install ,或者去https://github.com/kongfl888/luci-app-adbyby-plus-lite/ 查看使用说明
2,在指定adbyby的平台后,启动一次服务。(手工关闭,它有可能造成dnsmasq启动失败影响后面的更新,无法解析DNS)
3,进入ssh覆盖/usr/share/adbyby/ 下的两个sh, adupdate和adbybyupdate,chmod +X 。
4,执行两个sh。查看data是否成为我想用的xwhys,旧规则为啥有用我也不知道
5,的PLUS+模式下,把个别IP,加入全局模式

注意:以上方法在旁路由有效
0422
修复开启adbyby,dnsmasq失败问题。表现为无法dns,系统日志报错
https://github.com/coolsnowwolf/lede/issues/10461
将adddns中的出错地址改成别的地方
把新的 adbyby 放入 /etc/init.d/覆盖原文

add_dns()
{
	---	mkdir -p /var/etc/dnsmasq-adbyby.d
	+++	mkdir -p /tmp/dnsmasq.d/dnsmasq-adbyby.d

原文地址:https://blog.csdn.net/wjcroom/article/details/130098700

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_46300.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注