首页 程序笔记 在 Debian 12/11/10 上安装 Pi-hole 网络广告拦截器

在 Debian 12/11/10 上安装 Pi-hole 网络广告拦截器

Pi-hole 是一种广泛使用的 DNS 污水坑,旨在保护您的网络设备免受不需要的内容的影响,而无需客户端应用程序。 Pi-hole 配有漂亮的响应式 Web 界面仪表板,您可以在其中查看和控制您的 Pi-hole。该软件应用程序可以阻止 IPv4 和 IPv6 上的广告,并让您成为控制网络隐私的唯一人。

在这篇短文中,我们将介绍在 Debian Linux 计算机上安装和运行 Pi-hole Ads Blocker 所需的步骤。我的机器是 Debian 12 服务器安装,如以下输出所示。

jkmutai@pi02:~$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

更新系统上的包索引。

sudo apt update

安装 git 命令行工具

sudo apt install git vim bash-completion

在 Debian 上安装 Pi-hole 广告拦截器

从 Github 克隆 Pi-hole 项目存储库。

$ git clone https://github.com/pi-hole/pi-hole.git
Cloning into 'pi-hole'...
remote: Enumerating objects: 23064, done.
remote: Counting objects: 100% (23064/23064), done.
remote: Compressing objects: 100% (8365/8365), done.
remote: Total 23064 (delta 14897), reused 22635 (delta 14587), pack-reused 0
Receiving objects: 100% (23064/23064), 7.48 MiB | 365.00 KiB/s, done.
Resolving deltas: 100% (14897/14897), done.

切换到pi-hole目录。

cd "pi-hole/automated install/"

使用这个强大的软件解决方案的开发人员创建的脚本开始安装 Pi-hole。

sudo bash basic-install.sh

您的安装输出应类似于下面所示的输出。

 [] Root user check

        .;;,.
        .ccccc:,.
         :cccclll:.      ..,,
          :ccccclll.   ;ooodc
           'ccll:;ll .oooodc
             .;cll.;;looo:.
                 .. ','.
                .',,,,,,'.
              .',,,,,,,,,,.
            .',,,,,,,,,,,,....
          ....''',,,,,,,'.......
        .........  ....  .........
        ..........      ..........
        ..........      ..........
        .........  ....  .........
          ........,,,,,,,'......
            ....',,,,,,,,,,,,.
               .',,,,,,,,,'.
                .',,,,,,'.
                  ..'''.

  [i] SELinux not detected
  [] Update local cache of available packages

  [] Checking apt-get for upgraded packages... up to date!

  [i] Checking for / installing Required dependencies for OS Check...
  [] Checking for grep
  [i] Checking for dnsutils (will be installed)
  [i] Waiting for package manager to finish (up to 30 seconds)
  [i] Processing apt-get install(s) for: dnsutils, please wait...
----------------------------------------------------------------------
Selecting previously unselected package dnsutils.
(Reading database ... 36659 files and directories currently installed.)
Preparing to unpack .../dnsutils_1%3a9.18.19-1~deb12u1_all.deb ...
Unpacking dnsutils (1:9.18.19-1~deb12u1) ...
Setting up dnsutils (1:9.18.19-1~deb12u1) ...
----------------------------------------------------------------------
  [] Supported OS detected
  [i] Checking for / installing Required dependencies for this install script...
  [] Checking for git
  [] Checking for iproute2
  [i] Checking for dialog (will be installed)
  [] Checking for ca-certificates
  [i] Waiting for package manager to finish (up to 30 seconds)
  [i] Processing apt-get install(s) for: dialog, please wait...
----------------------------------------------------------------------
Selecting previously unselected package dialog.
(Reading database ... 36663 files and directories currently installed.)
Preparing to unpack .../dialog_1.3-20230209-1_amd64.deb ...
Unpacking dialog (1.3-20230209-1) ...
Setting up dialog (1.3-20230209-1) ...
Processing triggers for man-db (2.11.2-2) ...
----------------------------------------------------------------------

接下来您将获得对话框菜单。在第一个中,您会被警告该设备将转变为网络范围的广告拦截器。

继续 Pi-hole 安装。

您的服务器应该有一个静态 IP 地址才能正常运行。

上游 DNS 提供商有多个选项。您还可以将路由器设置为 DNS 服务器并将来自 Pi-hole 的请求转发到它以进行更多本地控制。

对于我的情况,上游 DNS 服务器是我的路由器,用于完全流量控制。这是由OPNsense 提供支持的。

确认 DNS 上游服务器条目并接受安装。

Pi-hole 使用第三方 DNS 映射列表来阻止广告。希望在安装中包含默认阻止列表。这是 StevenBlack 在 Github 上提供的列表。

同意安装管理 Web 界面,除非您想对命令行界面执行 Pi-hole 管理。

接受安装lighttpd Web 服务器以提供Pi-hole 使用的PHP 文件。这提供了 Pi-hole Web 控制台的完整功能。

启用有助于解决 DNS 问题的查询日志记录。

选择 FTL 的操作隐私模式。

Pi-hole 的安装和配置将在提供定制选项后不久开始。

----------------------------------------------------------------------
  [i] IPv4 address: 192.168.1.253/24
  [i] Unable to find IPv6 ULA/GUA address
  [i] IPv6 address:
  [i] Using upstream DNS: Custom (192.168.1.1, 192.168.1.1)
  [i] Installing StevenBlack's Unified Hosts List
  [i] Installing Admin Web Interface
  [i] Installing lighttpd
  [i] Query Logging on.
  [i] Using privacy level: 0
  [✗] Check for existing repository in /etc/.pihole
  [i] Clone https://github.com/pi-hole/pi-hole.git into /etc/.pihole...HEAD is now at 19bfa08 Pi-hole core v5.17.3 (#5520)
  [] Clone https://github.com/pi-hole/pi-hole.git into /etc/.pihole

  [✗] Check for existing repository in /var/www/html/admin
  [i] Clone https://github.com/pi-hole/web.git into /var/www/html/admin...HEAD is now at be05b0f v5.21 (#2860)
  [] Clone https://github.com/pi-hole/web.git into /var/www/html/admin

  [i] Checking for / installing Required dependencies for Pi-hole software...
  [] Checking for cron
  [i] Checking for curl (will be installed)
  [] Checking for iputils-ping
  [i] Checking for psmisc (will be installed)
  [] Checking for sudo
  [i] Checking for unzip (will be installed)
  [i] Checking for idn2 (will be installed)
  [] Checking for libcap2-bin
  [i] Checking for dns-root-data (will be installed)
  [] Checking for libcap2
  [i] Checking for netcat-openbsd (will be installed)
  [] Checking for procps
  [i] Checking for jq (will be installed)
  [i] Checking for lighttpd (will be installed)
  [i] Checking for php-common (will be installed)
  [i] Checking for php-cgi (will be installed)
  [i] Checking for php-sqlite3 (will be installed)
  [i] Checking for php-xml (will be installed)
  [i] Checking for php-intl (will be installed)
  [i] Checking for php-json (will be installed)
  [i] Waiting for package manager to finish (up to 30 seconds)
  [i] Processing apt-get install(s) for: curl psmisc unzip idn2 dns-root-data netcat-openbsd jq lighttpd php-common php-cgi php-sqlite3 php-xml php-intl php-json, please wait...
----------------------------------------------------------------------
Selecting previously unselected package lighttpd.
...

等待几秒钟,Pi-hole 安装完成。

----------------------------------------------------------------------
  [] Enabling lighttpd service to start on reboot...
  [✗] Checking for group 'pihole'
  [] Creating group 'pihole'
  [] Creating user 'pihole'

  [i] FTL Checks...

  [] Detected x86_64 processor
  [i] Checking for existing FTL binary...
  [] Downloading and Installing FTL
  [] Installing scripts from /etc/.pihole

  [i] Installing configs from /etc/.pihole...
  [] No dnsmasq.conf found... restoring default dnsmasq.conf...
  [] Installed /etc/dnsmasq.d/01-pihole.conf
  [] Installed /etc/dnsmasq.d/06-rfc6761.conf

  [] Installing sudoer file

  [] Installing latest Cron script

  [] Installing latest logrotate script
  [i] Backing up /etc/dnsmasq.conf to /etc/dnsmasq.conf.old
  [] man pages installed and database updated
  [i] Testing if systemd-resolved is enabled
  [i] Systemd-resolved is not enabled
  [] Restarting lighttpd service...
  [] Enabling lighttpd service to start on reboot...
  [i] Restarting services...
  [] Enabling pihole-FTL service to start on reboot...
  [] Restarting pihole-FTL service...
  [i] Creating new gravity database
  [i] Migrating content of /etc/pihole/adlists.list into new database
  [] Deleting existing list cache
  [i] Neutrino emissions detected...
  [] Pulling blocklist source list into range

  [] Preparing new gravity database
  [] Creating new gravity databases
  [i] Using libz compression

  [i] Target: https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
  [] Status: Retrieval successful
  [] Parsed 154885 exact domains and 0 ABP-style domains (ignored 1 non-domain entries)
      Sample of non-domain entries:
        - "0.0.0.0"


  [] Building tree
  [] Swapping databases
  [] The old database remains available
  [i] Number of gravity domains: 154885 (154885 unique domains)
  [i] Number of exact blacklisted domains: 0
  [i] Number of regex blacklist filters: 0
  [i] Number of exact whitelisted domains: 0
  [i] Number of regex whitelist filters: 0
  [] Flushing DNS cache
  [] Cleaning up stray matter
  [] Restarting DNS server

  [✗] DNS service is NOT running
  [i] Web Interface password: fTOK9xlr
  [i] This can be changed using 'pihole -a -p'

  [i] View the web interface at http://pi.hole/admin or http://192.168.1.253/admin

  [i] You may now configure your devices to use the Pi-hole as their DNS server
  [i] Pi-hole DNS (IPv4): 192.168.1.253
  [i] If you have not done so already, the above IP should be set to static.

  [i] The install log is located at: /etc/pihole/install.log
  [] Installation complete!

访问 Pi-hole Web 仪表板

您可以访问 Pi-hole Web 界面,查看 Web 界面:http://Your_Server_IP/admin

但首先要重置管理员用户密码。

$ sudo pihole -a -p
Enter New Password (Blank for no password):
Confirm Password:
  [] New password set

使用设置的密码访问Pi-hole web仪表板。

将广告列表添加到 pi-hole

Pi-hole 使用广告列表 – 基本上是要阻止的域 URL 列表。 Pi-hole 会将这个域列表提取到其所谓的重力数据库中。

以下是我的 Github 存储库中的列表示例。

https://raw.githubusercontent.com/jmutai/pihole-blocklist/main/abuse.txt
https://raw.githubusercontent.com/jmutai/pihole-blocklist/main/crypto.txt
https://raw.githubusercontent.com/jmutai/pihole-blocklist/main/drugs.txt
https://raw.githubusercontent.com/jmutai/pihole-blocklist/main/porn.txt
https://raw.githubusercontent.com/jmutai/pihole-blocklist/main/malware.txt
https://raw.githubusercontent.com/jmutai/pihole-blocklist/main/ransomware.txt
https://raw.githubusercontent.com/jmutai/pihole-blocklist/main/redirect.txt
https://raw.githubusercontent.com/jmutai/pihole-blocklist/main/scam.txt

要导入新列表(例如从 Github URL 导入),请转到管理仪表板>广告列表。在“广告列表组管理”>“添加新的广告列表”下,输入广告列表地址并为其指定一个描述。

粘贴地址并发表评论,然后点击“添加

工具>“更新重力”>“更新”下完成后更新重力数据库

您应该看到 Pi-hole 下载列表并更新其数据库。

还可以将域或域通配符添加到白名单或黑名单。进入域名,输入域名并选择黑名单或白名单选项。

增加最大并发 DNS 查询

如果您收到错误“已达到并发 DNS 查询的最大数量(最大值:150)”,请创建自定义配置文件。

sudo tee /etc/dnsmasq.d/02-custom-settings.conf<<EOF
dns-forward-max=3000
min-cache-ttl=300
rebind-domain-ok=
EOF

默认值为 150,但我们将其调整为 3000。更改后重新启动 Pi-hole。

sudo systemctl restart pihole-FTL.service

现在应该调整最大并发 DNS 查询数。

在客户端设备中使用 Pi-hole 作为 DNS

现在将您的终端设备配置为使用 Pi-hole 作为默认 DNS 服务器。如果您使用 DHCP 服务器,请更新其配置以分配 Pi-hole IP 地址作为 DHCP 服务器。请参阅服务器 > DHCP 服务器部分下的 OPNsense 配置。

使用 Pi-hole 作为 DNS 或 DHCP 服务器

您可以使用 Pi-hole 在本地 DNS > DNS 记录下将域映射到 IP 地址。

如果您想自定义,Pi-hole 使用 Dnsmasq 作为 DNS 服务器。

可以在设置DHCP下启用DHCP服务器。它支持静态 DHCP 租约配置。


站心网

Pi-hole 是一种广泛使用的 DNS 污水坑,旨在保护您的网络设备免受不需要的内容的影响,而无需客户端应用程..

为您推荐

Shopee&TikTok广告算法将改写:GMV Max下如何挣脱利润“绞杀”!

来源:东南亚电商观察编辑:果然GMV Max 覆盖占比将超 90%”近期,一则因广告投放波及卖家利益的传言在卖家群里传开。据卖家反映,当前电商平台(如 Shopee、TikTok Shop)的流量分配逻辑正发生显著变化。一方面,付..

从0到1,网络互助起航式

随着移动互联网的快速发展,网络互助的模式已经进入起步状态,未来,网络互助行业前景一片大好。在距今2000余年前的古罗马时期,由于连年征战,士兵们大量死伤导致家中妻女无人依靠。于是,这些争战沙场的士兵们联合..

最新CentOS7安装搭建shadowsocks服务端+客户端使用图文教程

使用的CentOS版本是7.9,其他版本也可以。超级推荐的是搭建shadowsocks服务端,安装配置都很简单,几分钟就搞定,客户端支持PC移动端,下面是安装shadowsocks的过程,只要复制粘贴命令就行了,文件夹路径都不需要改..

sourcetree安装跳过注册方法

SourceTree下载提取码: ni9m 需翻墙或者破解注册当前只有Win的版本,Mac自行百度很多人用git命令行不熟练,那么可以尝试使用sourcetree进行操作。然鹅~~sourcetree又一个比较严肃的问题就是,很多人不会跳过注册或者..

Crawlee 下一代网络爬虫与浏览器自动化工具

在数字化时代,数据是企业决策和创新的基石。网络爬虫作为获取数据的重要工具,其重要性不言而喻。今天,我们将深入探讨Crawlee,一个为Node.js环境设计的先进网络爬虫和浏览器自动化库,它如何帮助开发者构建快速、..

CentOS7部署发布.NET Core网站Ngnix安装配置图文教程

Linux服务器部署.NET Core网站运行速度更快,最近打算把原来windows server上的网站迁到linux的云服务器上。 顺便记录一下CentOS7安装.NET运行环境,安装和配置Ngnix的过程。首先安装.NET运行时sudorpm-Uvhhttps://p..

IIS使用Certify安装Let's Encrypt免费SSL证书

域名疑似被流量劫持,不仅被腾讯网址安全中心检测成危险网站,还间歇性出现访问域名被302重定向到Localhost。于是决定响应百度站长平台的号召,进行HTTPS改造。不用担心HTTPS后的SEO问题,百度站长平台官方已经表态..

谷歌的AMP网页和AMP自动广告是什么?

最近在玩谷歌广告Google Adsense,看到谷歌有个AMP自动广告,查看了他的介绍觉得很有意思。谷歌广告联盟的官方介绍是这样的:AMP 自动广告会自动将 AdSense 自动广告放置在您的 AMP 网页上。在添加 AMP 自动脚本和广..

Kubernetes(k8s) Linux安装和配置

什么是Kubernetes(k8s)?Kubernetes(通常称为"k8s")是一种用于自动部署、扩展和管理容器化应用程序的开源平台。它提供了一个容器编排和管理系统,可以自动化应用程序的部署、管理和缩放,并确保它们的高可用性。在..

如何下载和使用tor洋葱浏览器

什么是Tor浏览器Tor浏览器是一种免费的、开源的网络浏览器,旨在为用户提供更高的隐私和匿名性。它使用了 Tor 网络来加密和隐蔽用户的网络流量,从而隐藏用户的真实 IP 地址和其他个人信息,让用户在互联网上匿名地..

绿叶博客安装图文教程

绿叶博客安装非常简单,整个过程可以在一分钟内完成,接下来请看下面的图文教程。 第一步、确认您的发布环境 首先您必须确定您的发布环境是否支持本博客。本博客的发布环境要求是: .NET Framework4.0+、IIS6+、MS ..

常见安全误区和黑客手段

常见的安全误区 黑客、网络安全只存在于虚拟世界 如果我说以后黑客不但可以控制你的汽车开窗、刹车,甚至还能远程“强奸”,你信吗? 许多初创公司,有基于互联网的Sex应用。杜蕾斯公司也有一款Sex over I..

Linux下RabbitMQ安装和.NET Core使用RabbitMQ.Client操作

RabbitMQ简介AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反..

Windows下RabbitMQ安装和使用EasyNetQ组件操作

RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现,是实现消息队列应用的一个中间件,消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可..

.NET8拦截器Interceptors用法

.NET8 拦截器 (Interceptors) 是一种新的特性,允许开发人员在运行时动态拦截方法调用。拦截器可以用于各种目的,例如:日志记录方法调用监控方法调用修改方法调用的参数或返回值替换方法的实现拦截器是通过 .NET 元..

Python环境安装,解释器配置

下载安装完Pycharm后,创建一个py文件编写代码会提示No Python interpreter configured for the project,这是提示要配置解释器,可以去官网下载安装。从官网下载https://www.python.org/downloads/windows/以我的电..

Phthon IDE PyCharm下载安装

PyCharm下载地址https://www.jetbrains.com/pycharm/download/根据系统选择下载,我使用的是Windows系统,开发人员建议选择Professional版(收费的,可以使用激活码激活)。双击运行安装程序,点击下一步,选择安装..

CentOS离线安装unzip

要在离线的 CentOS 系统上安装 unzip,你需要在有网络连接的机器上下载所需的软件包,然后将它们传输到离线的 CentOS 机器。以下是详细的步骤:在线机器准备:使用一个有网络连接的机器,并按照以下步骤进行操作:1...

Debian Linux国内常用镜像源

随着Debian Buster 10.3的发布,Debian Buster 日趋稳定。如果在生产上使用了 Debian 9 的系统,现在是可以安全的,灰度升级到 Debian Buster 做前期验证了。这里我们整理一下国内较知名的镜像站点,供大家在生产环..

CentOS7安装unzip解压工具命令使用方法

CentOS7可以通过yum命令安装支持zip的工具unzip,下面是安装和使用的方法。安装unzip工具yuminstall-yunzipzip使用unzip命令解压zip文件#解压到当前目录下unziptest.zip#使用-d参数解压到指定目录下unzip-d/filestes..

发表回复

返回顶部