树莓派安装adbyby去除广告

2017-10-28

在树莓派上安装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流量。

参考文献

1

树莓派linux

使用Caddy反向代理Project V

Nginx通过http_header分流Websocket

comments powered by Disqus