使用 Raspberry Pi 和 Pi-hole 在您的网络上屏蔽广告

讨厌在浏览网页时看到广告?查看关于设置 Pi-hole 的本教程。
662 位读者喜欢这篇文章。
Block ads on your network with Raspberry Pi and pi-hole

Opensource.com

有一个旧的 Raspberry Pi 闲置吗?讨厌在浏览网页时看到广告?Pi-hole 是一个开源软件项目,它通过将所有广告服务器路由到虚无来屏蔽您家庭网络上所有设备的广告。最棒的是,它只需几分钟即可设置完成。

Pi-hole 屏蔽超过 100,000 个广告服务域名,屏蔽任何设备(包括手机、平板电脑和 PC)上的广告,并且因为它完全屏蔽广告而不是仅仅隐藏它们,这提高了整体网络性能(因为广告永远不会被下载)。您可以在 Web 界面中监控性能和统计信息,甚至还有一个您可以使用的 API。

您需要的物品

  • Raspberry Pi + SD 卡
  • USB 电源线
  • 以太网线
Raspberry Pi

opensource.com

SD card with noobs

opensource.com

Power supply

opensource.com

Ethernet cable

opensource.com

您不需要最新的 Raspberry Pi 型号——旧的型号也可以完成这项工作,只要它至少有 512MB 内存——所以 Pi 1 Model B (rev 2)、Model B+ 或 Pi 2 或 3 都可以。您可以使用 Pi Zero,但您还需要一个 USB micro 以太网适配器。您可以使用带有 WiFi 而不是以太网的 Pi Zero W,但由于它是您的网络基础设施的一部分,我建议使用良好、稳定的有线连接。

准备 SD 卡

首先,您可能需要将 Raspbian Stretch Lite 安装到 SD 卡上。该卡应至少为 4GB(完整的桌面 Raspbian 镜像至少需要 8GB,但 Lite 镜像更轻)。如果您愿意,可以使用完整的 Raspbian 桌面镜像,但由于这将作为无头应用程序运行,您不需要更多东西。

Raspbian downloads

opensource.com

使用您的主 PC,从 Raspberry Pi 网站下载 Raspbian Stretch Lite 镜像。现在解压缩它以提取其中的 .img 文件,然后将此镜像写入您的 SD 卡。SD 卡是否为空并不重要,因为其上的所有内容都将被擦除。

如果您使用的是 Linux,写入镜像的最简单方法是使用命令行工具 dd。或者,您可以使用跨平台软件 Etcher(按照 Les Pounder 的指南“如何为 Raspberry Pi 写入 SD 卡”)。

An image showing the Etcher application running on Windows 10

Les Pounder, CC-BY-SA 4.0

opensource.com

一旦您的 SD 卡镜像刻录完成,您可以将其插入您的 Raspberry Pi,连接键盘、显示器和以太网电缆,然后插入电源。在初始设置之后,Pi 将不需要键盘或显示器。如果您在无头模式下使用 Pi 方面经验丰富,您可以启用 SSH远程设置它。

安装 Pi-hole

一旦您的 Raspberry Pi 启动,使用默认用户名 (pi) 和密码 (raspberry) 登录。现在您已进入命令行,并且您已准备好安装 Pi-hole。只需键入以下命令并按 Enter 键

curl -sSL https://install.pi-hole.net | bash

此命令下载 Pi-hole 安装程序脚本并执行它。您可以通过在浏览器中浏览 https://install.pi-hole.net 来查看内容,了解它在做什么。它将为您生成一个管理员密码,并将其与其他安装程序信息一起打印到屏幕上。

就是这样!只需几分钟,您的 Pi 就可以开始屏蔽广告了。

在您断开 Pi 连接之前,您需要知道它的 IP 地址和路由器的 IP 地址(如果您还不知道的话)。只需在终端中键入 hostname -I 以获取 Pi 的 IP 地址,然后键入 ip route | grep default 以查找您的路由器。它看起来像 192.168.1.1

配置您的路由器

您的 Raspberry Pi 现在正在运行 DNS 服务器,您可以告诉您的路由器使用 Pi-hole 作为其 DNS 服务器,而不是您的 ISP 的默认服务器。登录到您路由器的管理控制台 Web 界面。通常可以通过在 Web 浏览器的地址栏中键入路由器的 IP 地址来找到它。

在 LAN 设置下查找 DHCP/DNS 设置,并将您的主 DNS 服务器设置为 Pi-hole 的 IP 地址。它应该看起来像这样

pi-hole DNS settings

opensource.com

有关此步骤的更多信息,请参阅 Pi-hole 论坛

您还需要确保您的 Pi-hole 保持相同的 IP 地址,因此还要查找 DHCP IP 预留并为您的 Pi 添加一个条目。

测试一下

现在运行命令 sudo halt 关闭 Pi 并断开电源。您可以移除显示器电缆和键盘,并将 Pi-hole 放置在其永久位置——可能插在路由器附近。确保以太网已连接,然后重新连接电源以重新启动它。

在您的 PC 或 WiFi 设备上导航到网站(我强烈推荐 Opensource.com)以检查您的互联网访问是否正常工作(如果不是,您可能配置错误了 DNS 设置)。如果网页浏览似乎按预期工作,则说明设置正确。现在,当您浏览网页时,它应该是无广告的!即使在您的移动设备上的应用程序内提供的广告也不会通过!祝您上网愉快!

如果您真的想展示您新的广告拦截能力,您可以尝试浏览此 测试页面 上列出的一些广告泛滥的网站。

现在通过在 Web 浏览器的地址栏中输入其 IP 地址来访问 Pi-hole 的 Web 界面(例如, http://192.168.1.4/admin - 或者 http://pi.hole/admin 也应该可以工作)。您应该看到 Pi-hole 仪表板和一些统计信息(在此阶段它们将非常低)。一旦您使用安装期间给您的密码登录,您还将看到一些漂亮的图表

Pretty graphs in pi-hole

opensource.com

您还可以调整 Pi-hole 的设置,例如白名单和黑名单域,永久或临时禁用,访问被阻止查询的统计信息等等。

有时,您需要升级您的 Pi-hole 安装。当有更新可用时,Web 界面会包含更新通知。如果您已启用 SSH,您可以远程登录,否则您必须重新连接显示器和键盘。登录后,只需运行命令 pihole -up

Updating pi-hole

opensource.com

您是否使用过 Pi-hole 或其他开源广告拦截器?请在评论中分享您的经验。

标签
User profile image.
Ben 是 BBC News Labs 的软件工程师,曾任 Raspberry Pi 的社区经理。他热衷于 Linux、Python 和所有开源事物!在 Twitter 上关注 Ben @ben_nuttall。

8 条评论

“您的 Raspberry Pi 现在正在运行 DNS 服务器,您可以告诉您的路由器使用 Pi-hole 作为其 DNS 服务器,而不是您的 ISP 的默认服务器。”

这样做可以工作,但不是首选方式,因为您将错过 Pi-hole 仪表板上的良好客户端统计信息。
如果客户端首先查询路由器,路由器会将请求转发到 Pi-hole,则仪表板上显示的唯一统计信息将是来自路由器的查询,并且不会显示客户端数据。
首选方式是让您的路由器 DHCP 服务将 Pi-hole 的 IP 地址推送给其客户端作为唯一的 DNS 服务器

https://discourse.pi-hole.net/t/how-do-i-configure-my-devices-to-use-pi…

如果由于路由器上缺少特定设置而无法实现这一点,您可以禁用路由器上的 DHCP 服务并激活 Pi-hole 的 DHCP 服务作为替代

https://discourse.pi-hole.net/t/how-do-i-use-pi-holes-built-in-dhcp-ser…

这是一个开源 (GPL 3) 服务器套件,也带有 DNS 广告拦截器:https://github.com/HouzuoGuo/laitos

对于检测到您正在使用广告拦截器而导致无法下载的网站,这如何工作?

是否可以更改配置,使广告被重定向到虚拟窗口,但您想看到的内容被发送到您的浏览器?

几乎所有的魔力都是通过 DNS 完成的。
只有少数网站会检测到这种 DNS 屏蔽,但 Pi-hole 有一个用于此功能的开/关开关(必须清除所有缓存!)。
Pi-hole 不会像路由或代理那样触及网络内容。
因此,您无法单独使用 Pi-hole 重定向内容。
但是几乎任何事情在 Linux 中都是可能的。

回复 作者 trevor (未验证)

Freedombox 是一个有趣的项目。除了移除广告外,它还可以做许多其他事情,包括联系人、日历、维基、IRC 和语音聊天。

我们创建了一个巨大的(超过 250 万个)列表,按类别细分,包含潜在的恶意 URL,供所有人免费使用。

这些列表与 PH 配合良好。

请查看

链接:https://qkly.xyz/tspprs
直接链接:https://tspprs.com

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.