树莓派安装adbyby去除广告

在树莓派上安装adbyby来去除广告

Adbyby是一款广告去除软件,被内置在多个著名的路由器系统中。但是由于路由器的性能因素,adbyby常常会影响路由器的网速。我们可以换一个思路,将adbyby移除路由器,放到一台性能较路由器好的网关中运行。

除了adbyby外,还有ADM和koolproxy,前者虽然也分发ARM架构的二进制,但是是针对安卓的,因此无法运行,对于是否分发树莓派的armv71架构的二进制文件这个问题作者尚未明确表态。

而Koolproxy基本上只针对路由器发布相关安装包,在网上寻觅一圈后无果,作罢。

下载和安装

这里是adbyby的官方网站,点击这里来下载与树莓派兼容的二进制文件。下载完成后可以通过软件上传到树莓派中或者直接在树莓派中操作:

登入树莓派中,定位到usr/local中,并创建文件夹adbyby

1
2
cd /usr/local
mkdir adbyby

下载并解压

1
2
3
4
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的文件夹,我们进入

1
cd /cd /usr/local/adbyby/bin

给可执行文件赋权

1
chmod 777 adbyby

编辑配置文件

1
vim adhook.ini

下面给出配置范本,对照修改:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[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文件

1
vim /lib/systemd/system/adbyby.service

填入以下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
[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

1
systemctl start adbyby

设置开机启动

1
systemctl enable adbyby

添加iptables规则

为了让所有局域网下的设备的http流量都能成功被处理

1
iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8118

自动更新规则

制作一个脚本来自动更新常用的adbyby规则

1
vim adbyby_rules_update.sh

以下是脚本内容,酌情修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/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}

赋权

1
chmod +x adbyby_rules_update.sh

写入自动更新

1
crontab -e

在底下加入一行,效果是每12小时自动更新规则

1
* */12 * * * /root/adbyby_rules_update.sh

后记

adbyby在路由器上的主要问题就是非常吃资源,配置较低的路由器运行起来容易崩溃,并且adbyby现阶段只能处理http流量。

参考文献

1