在小主机上搭建pihole,改造为去广告神器

2022-10-30 15:58:50 14点赞 153收藏 9评论

前些天,我给ZTE小主机加装散热风扇,小主机一直开机运行到现在,非常稳定,感兴趣的小伙伴可以点击下图链接查看折腾详情。

这个小主机可靠稳定的承担下载机的工作,帮我下载很多大文件。

今天,我决定给它再安排一个广告拦截的工作。

于是,我在该小主机上部署去广告神器:「pihole」。

在小主机上搭建pihole,改造为去广告神器

pihole与adguradhome的工作原理类似,本质上都是DNS服务器

用户访问网站的基本过程是在浏览器中输入网站域名,然后DNS服务器将该域名解析为一组IP地址,引导用户的访问该IP地址上的Web服务。

传统DNS服务器对用户的域名解析请求来者不拒,其中,就包括各类广告域名的DNS解析请求。

不同于传统DNS服务器,pihole与adguradhome的手上有广告域名的黑名单,通过对比用户的DNS域名解析请求,甄别出广告域名的DNS请求后,将空IP或无效IP返给用户。

这样用户无法访问广告域名,进而实现拦截广告的作用。

adguradhome通常需占用小主机的多个端口,但pihole可被分配独立IP,进而节约小主机端口资源。

而且,个人认为pihole的UI界面比adguardhome的界面更清爽和简明。

于是,我选择在小主机上安装pihole作为家庭局域网设备的DNS服务器,改善上网体验,减少广告干扰。

我采用docker的方式在小主机上部署pihole,以下是具体步骤:

1. 在docker上配置虚拟网段macnet,包括:

a. 应用finalshell软件登录小主机;

b. 输入以下命令,开启网卡混杂模式;

ip link set eth0 promisc on

这步很关键,如未开启混杂模型,则pihole无法接收外部的DNS域名查询请求

在小主机上搭建pihole,改造为去广告神器

c. 登录小主机的openwrt后台,选择「服务→docker→网络→新建」,在该页面中填入以下信息后再提交,生成名为macnet的虚拟网段。其中,网关和子网应根据小主机所处网段决定,我家局域网的网段是10.10.10.1~10.10.10.255,分配的独立IP也应在该网段。

所以,下图中子网和网关分别填写10.10.10.0/24和10.10.10.1。

在小主机上搭建pihole,改造为去广告神器

2. 登录小主机的openwrt后台,选择「服务→docker→镜像」,在页面的「拉取」左框中填写pihole/pihole后,再点击拉取,进而下载pihole的安装镜像;

在小主机上搭建pihole,改造为去广告神器

3. 应用finalshell软件登录小主机,在挂载的移动硬盘中,新建名为pihole的文件夹,并在该文件夹下再新建名为data和config的子文件夹,用于存放pihole的数据和配置文件;

在小主机上搭建pihole,改造为去广告神器

4. 登录小主机的openwrt后台,选择「服务→docker→容器→添加」,在该页面中填入下图中的信息后再提交。

其中,容器名可以自己指定,我这里填写pihole;

docker镜像就选择之前下载的pihole镜像;

网络项选择之前新建的docker虚拟网段macnet;

在IP地址项填入为pihole分配的IP:10.10.10.114;

在绑定挂载项分别填入以下两条命令,将移动硬盘上的data和config的子文件夹分别指向pihole的数据和配置文件夹;

/mnt/sdc/pihole/config:/etc/pihole


/mnt/sdc/pihole/data:/etc/dnsmasq.d

在小主机上搭建pihole,改造为去广告神器

5. 成功提交pihole容器后,在新页面中选择pihole容器,再点击启动,就能在浏览器中输入pihole的IP地址10.10.10.114/admin,访问pihole的管理后台;

在小主机上搭建pihole,改造为去广告神器

6. 初次登录pihole后台时,需重置登录密码,步骤如下:

a. 在openwrt后台,选择「服务→docker→容器」,点击pihole容器,然后点击「控制台→连接」;

b. 在命令行界面中输入sudo pihole -a -p后回车,就能重置pihole登录密码;

在小主机上搭建pihole,改造为去广告神器

至此,就可在小主机成功部署pihole容器,并通过事先分配的IP地址10.10.10.114和登录密码,访问pihole后台。

在pihole后台中,需点击「Settings→DNS」,设置上游DNS地址。

我选择OpenDNS和湖北电信的DNS服务器作为pihole的上游DNS,并保存。

在小主机上搭建pihole,改造为去广告神器

接下来,需告诉pihole广告域名黑名单,我这里推荐antiad v4广告域名黑名单,它号称中文区命中率最高。

我们百度搜索antiad v4后,点击第二个搜索结果,就可进入广告域名的发布界面,选取并复制pihole对应的广告域名链接后,在pihole的UI界面中选取「Adlists→Add a new adlist」,在对话框中填入刚才复制的连接,另一个comment对话框可以任意填写。

在小主机上搭建pihole,改造为去广告神器

在小主机上搭建pihole,改造为去广告神器

在小主机上搭建pihole,改造为去广告神器

点击「Add」,再点击「Tools→Update Gravity」,pihole就可拉取并保存广告域名黑名单。

在小主机上搭建pihole,改造为去广告神器

最后,我们在PC端的IP地址栏自定义DNS服务器中,填入pihole的IP地址10.10.10.114并保存后,电脑的所有域名查询请求都将被pihole过滤,进而起到广告拦截的作用。

在小主机上搭建pihole,改造为去广告神器

手机端,一样可使用pihole的广告拦截功能。

以小米手机为例,将手机接入与pihole相同的局域网,选中连接的WIFI,在IP设置栏中选择「静态」后,在DNS1栏中填入pihole的IP地址10.10.10.114后保存。那么小米手机的所有域名查询请求也会被pihole过滤,进而起到广告拦截的作用。

在小主机上搭建pihole,改造为去广告神器

下图是我在使用pihole几天后的广告拦截记录一览图,可以看到,我在各时段的DNS域名查询请求,允许和被拦截的域名请求等数据。

在小主机上搭建pihole,改造为去广告神器

自从使用pihole后,我的电脑再没出现弹窗广告,上网体验改善不少。

小伙伴们觉得广告拦截软件对你有用吗?欢迎在评论区留下你的意见。

感谢各位小伙伴能看到这里,希望这篇推文对你们有帮助,下期推文再见。

推 荐 阅 读

展开 收起
9评论

  • 精彩
  • 最新
  • 那直接把这些DNS放小米路由的DNS里是不是就可以了

    校验提示文案

    提交
    是的

    校验提示文案

    提交
    收起所有回复
  • 使用自带的存储是不是就不用手动绑定挂载啦?

    校验提示文案

    提交
    需要制定挂载的目录。

    校验提示文案

    提交
    [哭泣] 那得再研究研究

    校验提示文案

    提交
    收起所有回复
  • 这个很早就用过,我还提交过中文的语言文件,官方一直不给你支持中文,好几年前了。最后还是用了adguard home 比这个辣鸡更好,也支持中文。

    校验提示文案

    提交
    有推荐的规则么

    校验提示文案

    提交
    收起所有回复
  • 真不错,这机子放在我这吃灰好久了

    校验提示文案

    提交
  • 都能拦截什么类型的广告?比如手机APP刚打开时的3秒的广告能跳过吗?

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
153
扫一下,分享更方便,购买更轻松