在树莓派上安装adbyby来去除广告
Adbyby是一款广告去除软件,被内置在多个著名的路由器系统中。但是由于路由器的性能因素,adbyby常常会影响路由器的网速。我们可以换一个思路,将adbyby移除路由器,放到一台性能较路由器好的网关中运行。
除了adbyby外,还有ADM和koolproxy,前者虽然也分发ARM架构的二进制,但是是针对安卓的,因此无法运行,对于是否分发树莓派的armv71架构的二进制文件这个问题作者尚未明确表态。
而Koolproxy基本上只针对路由器发布相关安装包,在网上寻觅一圈后无果,作罢。
下载和安装
这里是adbyby的官方网站,点击这里来下载与树莓派兼容的二进制文件。下载完成后可以通过软件上传到树莓派中或者直接在树莓派中操作:
登入树莓派中,定位到usr/local
中,并创建文件夹adbyby
cd /usr/local
mkdir adbyby
下载并解压
cd /usr/local/adbyby
apt-get install wget -y
wget https://github.com/adbyby/Files/blob/master/arm.tar.gz
tar zxvf tar.tar.gz
解压完成后,adbyby
文件夹内会有一个名为bin
的文件夹,我们进入
cd /cd /usr/local/adbyby/bin
给可执行文件赋权
chmod 777 adbyby
编辑配置文件
vim adhook.ini
下面给出配置范本,对照修改:
[info]
id=ar71xx
[update]
rule=video,lazy
[exrule]
https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt
https://easylist-downloads.adblockplus.org/easyprivacy.txt
[cfg]
listen-address=0.0.0.0:8118
buffer-limit=1024
keep-alive-timeout=30
socket-timeout=60
max_client_connections=0
stack_size=200
auto_restart=1
debug=0
创建systemd文件
vim /lib/systemd/system/adbyby.service
填入以下内容
[Unit]
Description=Adbyby Service
After=network.target
Wants=network.target
[Service]
Type=simple
PIDFile=/var/run/adbyby.pid
ExecStart=/usr/local/adbyby/bin/adbyby
Restart=on-failure
[Install]
WantedBy=multi-user.target
然后执行systemctl daemon-reload
。
启动adbyby
键入以下命令以运行adbyby
systemctl start adbyby
设置开机启动
systemctl enable adbyby
添加iptables规则
为了让所有局域网下的设备的http流量都能成功被处理
iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8118
自动更新规则
制作一个脚本来自动更新常用的adbyby规则
vim adbyby_rules_update.sh
以下是脚本内容,酌情修改
#!/bin/bash
LAZY_RULES=/usr/local/adbyby/bin/data/lazy.txt
VIDEO_RULES=/usr/local/adbyby/bin/data/video.txt
if [ -f ${LAZY_RULES} ];then
rm -rf ${LAZY_RULES}
elif [ -f ${LAZY_RULES} ];then
rm -rf ${VIDEO_RULES}
fi
wget -O- https://raw.githubusercontent.com/adbyby/xwhyc-rules/master/lazy.txt > ${LAZY_RULES}
wget -O- https://raw.githubusercontent.com/adbyby/xwhyc-rules/master/video.txt > ${VIDEO_RULES}
dos2unix ${LAZY_RULES}
dos2unix ${VIDEO_RULES}
赋权
chmod +x adbyby_rules_update.sh
写入自动更新
crontab -e
在底下加入一行,效果是每12小时自动更新规则
* */12 * * * /root/adbyby_rules_update.sh
后记
adbyby在路由器上的主要问题就是非常吃资源,配置较低的路由器运行起来容易崩溃,并且adbyby现阶段只能处理http流量。