Установка и настройка блокировщика рекламы Pi-hole на Raspberry Pi 3

Опубликовано: 01.09.2018

В этой статье будет рассмотрен вариант использования одноплатных компьютеров вроде Raspberry Pi в качестве аппаратного аналога утилит для блокирования рекламы вроде Adblock или AdGuard.

Для этого будет задействован пакет Pi-hole , а микрокомпьютер будет использоваться в качестве DNS-сервера внутри локальной сети.

Что нам понадобится

Для осуществления описываемых в этой статье действий понадобится:


AdGuard for Desktop and Android: Why We Use the Full Version

В этой статье будет описан процесс установки и настройки Pi-hole на примере Raspberry Pi 3 и операционной системы Raspbian, но аналогичным путем можно установить утилиту практически на любое устройство под управлением Linux, включая роутеры с прошивкой OpenWRT.

Почему я против блокирования рекламы

Существование сайтов в интернете невозможно без получения прибыли. Можно по пальцам пересчитать проекты, которые существуют на голом энтузиазме их создателей — да и то, скорее всего окажется, что владельцы таких ресурсов все равно извлекают из них какие-то выгоды (например, продвигают свой личный бренд, используют профессиональный блог или тематический сайт как площадку для взаимодействия с потенциальными работодателями или клиентами).

Размещение блоков рекламы — самый простой способ заставить сайт приносить доход. Прибыль с блоков рекламы падает с каждым годом из-за того, что все больше и больше людей начинают пользоваться блокировщиками рекламы. И если она продолжит снижаться — владельцы ресурсов начнут переходить на другие способы извлечения прибыли.

Например, вместо контекстной рекламы от Google или Яндекса будет так называемая нативная реклама (то, что в журналистике называется «джинса», а в литературе и кинематографе «product placement»). Или доступ к содержимому сайта станет осуществляться по платной подписке.

И то, и другое уже происходит. Некоторые СМИ уже начали переходить на подписную модель («Хакер», «Ведомости»), ну а материалы от прямых рекламодателей публикуют уже практически все посещаемые ресурсы.

И чем активнее будет продолжаться падение доходов с традиционных форматов рекламы (из-за роста числа пользователей блокировщиков) — тем больше сайтов перейдет на альтернативные варианты извлечения прибыли.

Установка и настройка Pi-hole на Raspberry Pi

Pi-hole работает по принципу локального DNS-сервера. Когда какое-то устройство в локальной сети посылает DNS-запрос (запрос на преобразование доменного адреса вида www.site.com в IP-адрес сервера), роутер передает этот запрос на Pi-hole и там отфильтровываются все запросы доменов, используемых рекламными сетями для показа объявлений. Остальные запросы передаются на DNS-сервер в интернете, а ответы с него возвращаются обратно на устройства локальной сети.

Установка полностью автоматизирована и выполняется при помощи bash-скрипта. При этом все недостающие пакеты будут добавлены в систему автоматически, поэтому Pi-hole можно ставить прямо на «чистую» установку Raspbian:

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

Эта команда — всё, что нужно для запуска установки.

Установщик предупредит о необходимости присвоения Raspberry Pi статического IP-адреса для корректной работы.

Также будет предложено выбрать вышестоящий DNS-сервер.

Можно указать произвольный IP-адрес (Custom) — например, если ваш провайдер имеет собственные DNS-сервера. В остальных случаях можно особо не заморачиваться и выбирать DNS-сервер от Google.

Еще нужно будет выбрать поддерживаемые протоколы: IPv4 и IPv6.

Актуальный список провайдеров, поддерживающих IPv6 можно посмотреть по этой ссылке , и если ваш провайдер к их числу не относится — «галку» с IPv6 можно смело снимать.

Будет задан вопрос о добавлении веб-интерфейса и ведении логов (если они включены, то в веб-интерфейсе будет вестись статистика заблокированных доменов и рисоваться всякие красивые графики).

Добавляем или отказываемся, вне зависимости от принятого решения Pi-hole будет нормально работать на стандартных настройках.

Непосредственно установка проходит в автоматическом режиме.

В завершение установки нам сообщат случайно сгенерированный пароль для доступа к админ-панели Pi-hole, который нужно запомнить.

Либо сменить по горячим следам на собственный вариант при помощи команды:

pihole -a -p

На этом установка завершена и больше никаких манипуляций с Raspberry Pi проводить не нужно.

Настройка Pi-hole на роутере

Для начала использования Pi-hole его нужно прописать в качестве DNS-сервера в настройках роутера. Где искать эти настройки — зависит от конкретного производителя и модели устройства, т.к. структура интерфейса у всех отличается.

Например, на моем D-Link нужно зайти в «Сеть» -> «WAN» и прописать там нужный IP-адрес.

После применения настройки все DNS-запросы выходящих в интернет через наш роутер устройств будут отправляться на Raspberry Pi, а после фильтрации от рекламных доменов перенаправляться на вышестоящий DNS-сервер в интернете.

Поэтому важно, чтобы IP-адрес Raspberry Pi с установленным Pi-hole был статическим, т.к. при его изменении роутер будет слать DNS-запросы на ставший неверным IP-адрес, а при отсутствии ответов на эти запросы не будет работать интернет.

Проверим работу Pi-hole на примере данного сайта:

Слева — реклама показывается (и то не всегда, бывает что сама система контекстной рекламы не может подобрать релевантное объявление), справа — Pi-hole блокирует показ рекламы.

При этом рекламные блоки могут удаляться целиком, а может удаляться только их содержимое — в таком случае на странице остается пустое свободное пространство, ранее занимаемое рекламой.

Можно зайти в веб-интерфейс по адресу http://ip-адрес-raspberry-pi/admin и посмотреть статистику.

Там же можно осуществить некоторые дополнительные настройки, например вручную добавить какие-либо домены в «черный список», либо наоборот — внести в «белый список» адреса сайтов, на которых вы не хотите чтобы блокировался показ рекламы.

Настройка Pi-hole на отдельных устройствах

Фильтрацию рекламы посредством Pi-hole можно подключить на отдельных устройствах без прописывания его в качестве DNS-сервера на роутере. В частности, это может оказаться полезным, если вы не являетесь администратором в локальной сети и не имеете доступа к настройкам роутера.

Для этого нужно найти в настройках устройства пункты, имеющие какое-то отношение к сетевым подключениям и прописать там наш Pi-hole в качестве DNS-сервера.

Windows : «Сетевые подключения» — «Параметры сети и Интернет» — «Свойства» используемого сетевого адаптера — «IP версии 4» — «Свойства» — «Использовать следующие адреса DNS-серверов» iOS : «Настройки» — «Wi-Fi» — (название сетевого подключения) — «DHCP» — «DNS» Linux (граф.интерфейс) : «System» — «Preferences» — «Network Connections» — (название сетевого подключения) — «Edit» — «IPv4 Settings» — «DNS servers» Linux (консоль) : отредактировать строку nameserver в /etc/resolv.conf Android : «Настройки» — «Wi-Fi» — (название сетевого подключения) — «Свойства» — «Настройки IP» — «DNS»

Заключение

Вот таким способом можно превратить Raspberry Pi или другой микрокомпьютер в программно-аппаратный блокировщик рекламы.

Пользоваться блокировщиками рекламы или нет — решать каждому самостоятельно. Свое отношение к явлению я описал в начале данной статьи.

Также хочу отметить, что производительность Raspberry Pi 3 для работы локального DNS-сервера является избыточной, и для работы Pi-hole можно использовать и более дешевые одноплатные ПК вроде Orange Pi Zero или Raspberry Pi Zero W .

rss