Здесь могла бы быть реклама
Она помогает блогу развиваться.
Кажется, сегодня она немного загрустила.

Главная страница » Сеть и сервисы » Pi-hole + Unbound: Ваш приватный DNS-сервер с блокировкой рекламы
Pi-hole + Unbound: Ваш приватный DNS-сервер с блокировкой рекламы
Сеть и сервисы

Pi-hole + Unbound: Ваш приватный DNS-сервер с блокировкой рекламы

31.03.2026 150
Pi-hole + Unbound: Ваш приватный DNS-сервер с блокировкой рекламы

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

Приветствую всех, кто любит ковыряться в железе и софте! Сегодня мы соберём мощный связной дуэт для нашей домашней сети. Представьте: вы заходите на любой сайт, и вас не встречает навязчивая реклама, трекеры не следят за каждым вашим кликом, а запросы не утекают к крупным корпорациям. При этом скорость загрузки страниц не падает, а иногда даже растёт. Звучит как магия? Нет, это Pi-hole и Unbound.

Pi-hole — это сетевой сантехник, который фильтрует мусор (рекламу и трекеры) на уровне DNS-запросов для всей вашей сети. Unbound — это ваш личный, независимый почтальйон (рекурсивный DNS-резолвер), который сам ходит за адресами сайтов к корневым серверам, минуя посредников вроде Google DNS или Cloudflare.

Вместе они создают приватный, быстрый и контролируемый интернет-экосистему у вас дома. Я сам пользуюсь этой связкой уже несколько лет на разных одноплатниках — от Raspberry Pi до Orange Pi — и результат всегда радует.

Если отдельный компьютер под DNS не нужен, рассмотрите AdGuard Home непосредственно на OpenWrt. В этом варианте ключевая проверка — совместная работа с dnsmasq и отсутствие конфликта на порту 53.

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

  • Одноплатник: Подойдёт практически любой, даже самый слабый. Я использовал Orange Pi Zero, Raspberry Pi 3 и NanoPi R2S. Для этой задачи хватит 512 МБ ОЗУ и одного ядра.
  • Карта памяти: От 8 ГБ.
  • Блок питания: Стабильный, подходящий для вашей платы.
  • Сетевое подключение: По кабелю (Ethernet) — предпочтительнее и надёжнее.
  • Базовые знания: Умение подключиться к одноплатнику по SSH и выполнять команды в терминале.

Важный момент: Всё нижеописанное я делал на ОС Armbian (Debian Bullseye) на Orange Pi Zero 3. Для Raspberry Pi OS (также основанной на Debian) команды будут идентичны. Если вы только начинаете, рекомендую статьи про Armbian: универсальная ОС для одноплатников и Orange Pi Zero 3: самый доступный одноплатник для умного дома.


Часть 1: Установка и базовая настройка Pi-hole

Pi-hole — сердце нашей системы. Установка максимально упрощена благодаря авторскому скрипту.

Шаг 1: Подготовка системы

Первым делом обновляем список пакетов и саму систему. Всегда начинайте с этого.

sudo apt update && sudo apt upgrade -y

Комментарий: apt update обновляет информацию о доступных пакетах, а apt upgrade -y устанавливает все обновления, автоматически подтверждая запросы.

Шаг 2: Установка Pi-hole

Качаем и запускаем автоматический скрипт установки. Это займёт несколько минут.

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

Внимание! Типичная ошибка: Не пугайтесь, если установка зависнет на фразе "Installing dependencies from repository..." — она просто скачивает и устанавливает пакеты, это может занять время в зависимости от скорости интернета и мощности платы. Просто ждите.

Во время установки скрипт задаст несколько вопросов. Вот как на них лучше ответить:

  1. Выбор сетевого интерфейса: Обычно это eth0 (проводной) или, реже, wlan0 (Wi-Fi). Выберите тот, через который плата выходит в интернет. Совет: Для серверных задач всегда используйте проводное соединение — оно стабильнее.
  2. Настройка статического IP: Настоятельно рекомендую выбрать "Yes". Pi-hole должен иметь постоянный адрес в вашей сети (например, 192.168.1.100). Если адрес будет меняться, настройки DNS в роутере собьются.
  3. Выбор протокола: Оставьте IPv4, если у вас нет специфической настройки IPv6.
  4. Выбор Upstream DNS: Это ВАЖНО! Здесь мы пока выберем сторонние DNS-серверы (например, Google). Позже мы заменим их на наш Unbound. Выберите любые, например, Google (ECS).
  5. Блоклисты: Оставьте выбранными блоклисты по умолчанию. Позже их можно добавить в веб-интерфейсе.
  6. Настройки приватности: Выберите режим по своему усмотрению. Я выбираю Show everything, чтобы видеть всю статистику.
  7. Установка веб-админки: Выберите "On". Это наш удобный фронтенд.
  8. Установка веб-сервера: Выберите "lighttpd". Pi-hole корректно работает с ним.
  9. Включение логов: Рекомендую оставить "On" для отладки, но можно отключить для максимальной приватности.

После завершения установки на экране появится важная информация: пароль для веб-интерфейса и IP-адрес вашего Pi-hole. Обязательно сохраните их!

Если пароль потерян, его можно сбросить командой:

pihole -a -p

Шаг 3: Первый запуск и настройка роутера

Откройте браузер и перейдите по адресу http://<IP_ВАШЕГО_PI-HOLE>/admin. Например, http://192.168.1.100/admin. Введите пароль.

Поздравляю, Pi-hole работает! Но пока он фильтрует запросы только для самого одноплатника. Чтобы защитить всю сеть, нужно указать его IP-адрес в качестве DNS-сервера в настройках вашего роутера.

  1. Зайдите в панель управления роутером (обычно 192.168.1.1 или 192.168.0.1).
  2. Найдите раздел "DHCP-сервер", "Локальная сеть" или "DNS".
  3. В поле "Предпочитаемый DNS-сервер" укажите IP-адрес вашего Pi-hole.
  4. Важно: Поле "Альтернативный DNS-сервер" лучше оставить пустым или также указать адрес Pi-hole. Если там будет указан публичный DNS (например, 8.8.8.8), устройства смогут обходить блокировку.
  5. Сохраните настройки и перезапустите DHCP-сервер (или просто перезагрузите роутер).

Теперь все устройства, подключающиеся к вашей сети, будут использовать Pi-hole. Проверить это можно на вкладке "Query Log" в веб-интерфейсе Pi-hole — там начнут появляться запросы от ваших устройств.


Часть 2: Установка и настройка Unbound

Теперь займёмся настройкой собственного почтальона — Unbound. Он будет выполнять роль того самого "Upstream DNS", который мы временно указали как Google.

Шаг 1: Установка Unbound

sudo apt install unbound -y

Шаг 2: Базовая конфигурация Unbound

Нам нужно создать конфигурационный файл. Сначала сделаем резервную копию оригинального:

sudo mv /etc/unbound/unbound.conf.d/pi-hole.conf /etc/unbound/unbound.conf.d/pi-hole.conf.backup 2>/dev/null || true

Комментарий: Эта команда безопасно переименует существующий файл конфигурации (если он есть), либо ничего не сделает, если его нет (2>/dev/null || true подавляет возможные ошибки).

Теперь создадим новый конфигурационный файл:

sudo nano /etc/unbound/unbound.conf.d/pi-hole.conf

Вставьте в него следующую конфигурацию. Эта конфигурация оптимизирована для использования с Pi-hole на одноплатнике:

server:
    # Если Pi-hole и Unbound на одной машине:
    interface: 127.0.0.1
    port: 5335
    # Не отвечать на запросы извне, только локально
    access-control: 127.0.0.1/32 allow
    access-control: 192.168.1.0/24 allow  # Разрешите свою подсеть, если нужно запрашивать с других машин
    # Без root-привилегий
    username: "unbound"
    directory: "/etc/unbound"
    # Файлы с корневыми серверами
    root-hints: "/var/lib/unbound/root.hints"
    # Жесткость валидации
    harden-glue: yes
    harden-dnssec-stripped: yes
    # Кэширование
    cache-min-ttl: 3600
    cache-max-ttl: 86400
    # Производительность
    num-threads: 1  # Для одноплатника с 1-2 ядрами достаточно 1 потока
    msg-cache-size: 10m
    rrset-cache-size: 20m
    # Безопасность
    hide-identity: yes
    hide-version: yes
    # Проверка DNSSEC
    auto-trust-anchor-file: "/var/lib/unbound/root.key"
    val-log-level: 1
    # Важно для работы с Pi-hole
    prefetch: yes
    prefetch-key: yes
    serve-expired: yes
    aggressive-nsec: yes

Пояснения ключевых моментов: * interface: 127.0.0.1 и port: 5335 — Unbound будет слушать только локальные подключения на нестандартном порту 5335, чтобы не конфликтовать с другими службами. * access-control — строго ограничиваем, кто может делать запросы. Оставьте только localhost и свою подсеть. * num-threads: 1 — для маломощных плат это оптимально. Для Orange Pi 5 или Raspberry Pi 4 можно поставить 2-4. * hide-identity и hide-version — повышают безопасность, скрывая служебную информацию.

Сохраните файл (Ctrl+O, затем Enter) и выйдите из редактора (Ctrl+X).

Шаг 3: Загрузка корневых серверов и настройка прав

Скачаем актуальный список корневых DNS-серверов:

sudo wget -O /var/lib/unbound/root.hints https://www.internic.net/domain/named.root

Установим правильные права на файлы и папки Unbound:

sudo chown -R unbound:unbound /var/lib/unbound
sudo chmod 755 /var/lib/unbound

Шаг 4: Проверка конфигурации и запуск

Проверим синтаксис нашего конфига перед запуском:

sudo unbound-checkconf /etc/unbound/unbound.conf.d/pi-hole.conf

Если вывод содержит unbound-checkconf: no errors in /etc/unbound/unbound.conf.d/pi-hole.conf, значит, всё в порядке.

Теперь включим автозагрузку Unbound и запустим его:

sudo systemctl enable unbound
sudo systemctl restart unbound

Проверим статус службы:

sudo systemctl status unbound --no-pager -l

Убедитесь, что служба активна (active (running)) и в логах нет критических ошибок.


Часть 3: Интеграция Pi-hole и Unbound

Теперь скажем Pi-hole использовать наш локальный Unbound вместо публичных DNS.

Шаг 1: Настройка Upstream DNS в Pi-hole

Вернитесь в веб-интерфейс Pi-hole (http://<IP>/admin). 1. Перейдите в Settings (Настройки) -> DNS. 2. В секции "Upstream DNS Servers" снимите все галочки с выбранных ранее серверов (Google, Cloudflare и т.д.). 3. В поле "Custom 1 (IPv4)" введите: 127.0.0.1#5335 Это указывает Pi-hole на наш Unbound, работающий локально на порту 5335. 4. Нажмите Save (Сохранить) внизу страницы. 5. Нажмите "Update Lists" на вкладке "Group Management" для применения изменений.

Шаг 2: Перезапуск служб

Для полной уверенности перезапустим обе службы:

sudo systemctl restart pihole-FTL unbound

Часть 4: Проверка результата и диагностика

Всё настроено! Давайте проверим, как это работает.

Тест 1: Проверка блокировки рекламы

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

Тест 2: Проверка работы Unbound как рекурсивного резолвера

Выполним диагностическую команду прямо на нашем одноплатнике:

dig @127.0.0.1 -p 5335 google.com

В выводе команды обратите внимание на секцию "SERVER". Там должно быть указано 127.0.0.1#5335. А в секции "Query time" вы увидите время отклика. После нескольких запросов к одному домену время (Query time) станет близким к 0 msec — это сработал кэш Unbound.

Более наглядный тест на рекурсивность:

dig @127.0.0.1 -p 5335 +trace google.com

Вы увидите всю цепочку запросов: от корневых серверов (a.root-servers.net.) до конечных. Это доказательство, что Unbound сам разрешает имена, не спрашивая у сторонних провайдеров DNS.

Тест 3: Проверка DNSSEC

Unbound по умолчанию проверяет цифровые подписи DNSSEC. Проверим это на специально созданном для тестов домене:

dig @127.0.0.1 -p 5335 sigfail.verteiltesysteme.net

В ответе должен быть флаг **ad** (authenticated data) и статус NOERROR. А теперь запросим "битый" домен:

dig @127.0.0.1 -p 5335 sigok.verteiltesysteme.net

В ответе должен быть статус SERVFAIL — это значит, что Unbound отклонил ответ из-за невалидной DNSSEC-подписи, защищая вас от подмены DNS.

Типичные проблемы и их решение:

  • "Сеть пропала!" после настройки роутера: Скорее всего, Pi-hole потерял связь или имеет неправильный IP. Проверьте, пингуется ли адрес Pi-hole с другого устройства (ping 192.168.1.100). Верните в роутере старые DNS-настройки (например, 8.8.8.8), чтобы восстановить доступ, и проверьте настройки сети на одноплатнике.
  • Очень долгая загрузка сайтов при первом посещении: Это нормально для первых часов работы Unbound. Он наполняет свой кэш. Через день-два скорость стабилизируется, и вы ощутите прирост от локального кэширования.
  • Pi-hole не блокирует рекламу в YouTube на телефоне: Это не недостаток Pi-hole. Многие приложения (YouTube, Instagram) используют ту же сеть доставки контента (CDN), что и видео, и блокировать её нельзя, не сломав функционал. Pi-hole блокирует классическую веб-рекламу и трекеры.

Заключение

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

Эта система потребляет минимум ресурсов и может годами работать на самом простом одноплатнике в углу комнаты. Она — отличный первый шаг в построение умной домашней сети. Следующими логичными шагами могут быть: * Настройка VPN-сервера на том же одноплатнике для безопасного доступа извне. * Превращение платы в полноценный шлюз с помощью OpenWRT, как описано в статье SBC как роутер: превращаем одноплатник в мощный домашний шлюз. * Подключение датчиков на ESP32 для мониторинга среды, о чём можно почитать в материале ESP32 и три в одном: измеряем температуру, влажность и давление.

Экспериментируйте, настраивайте белые списки для устройств, которые нуждаются в рекламе (например, умные колонки), и наслаждайтесь чистым, быстрым и своим интернетом!

===SEO_JSON_START=== { "meta_title": "Pi-hole + Unbound: Приватный DNS с блокировкой рекламы", "meta_description": "Пошаговое руководство по настройке Pi-hole и Unbound на одноплатнике. Защитите всю домашнюю сеть от рекламы и трекеров, используя свой DNS-сервер.

Понравилась статья?

Поставьте лайк и сохраните полезный материал в закладки.

Комментарии (0)
Добавить комментарий
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Как проверить IP на блокировку в ТСПУ: рабочий Python-скрипт для диагностики
Сеть и сервисы
02.09.2026
Как проверить IP на блокировку в ТСПУ: рабочий Python-скрипт для диагностики
Практический Python-скрипт для проверки доступности IP или домена через DNS, TCP 443, TLS и HTTPS. Работает на Windows, Raspberry Pi, Rock Pi, Orange Pi, Debian, Ubuntu
Routerich AX3000: настройка роутера на OpenWrt, Mesh, TorrServer и сетевое хранилище
Сеть и сервисы
04.09.2026
Routerich AX3000: настройка роутера на OpenWrt, Mesh, TorrServer и сетевое хранилище
Routerich AX3000 с OpenWrt оказался гораздо дружелюбнее, чем можно ожидать от роутера с настолько гибкой прошивкой. Разбираемся с первоначальной настройкой, Mesh,
Как выбрать LTE/5G-модем для Routerich AX3000: от простого E3372 до T77W968, T99W175 и FM350
Сеть и сервисы
08.09.2026
Как выбрать LTE/5G-модем для Routerich AX3000: от простого E3372 до T77W968, T99W175 и FM350
Как выбрать LTE/5G-модем для Routerich AX3000: разбираемся в LTE Cat, агрегации частот, совместимости, питании, охлаждении и популярных моделях от Huawei, Quectel,
Nginx Proxy Manager: установка и первоначальная настройка reverse proxy с HTTPS в Docker
Сеть и сервисы
02.09.2026
Nginx Proxy Manager: установка и первоначальная настройка reverse proxy с HTTPS в Docker
Пошаговая установка Nginx Proxy Manager в Docker: настройка reverse proxy, получение SSL-сертификатов Let's Encrypt и проксирование сервисов с HTTPS. Практическое
Как работают ТСПУ Роскомнадзора? Разбираемся вместе
Сеть и сервисы
01.09.2026
Как работают ТСПУ Роскомнадзора? Разбираемся вместе
Разбираем устройство ТСПУ: DPI, SNI-фильтрация, DNS-перехват. Узнайте, как проверить работу ТСПУ у провайдера и защитить свой трафик.
ZeroBlock для OpenWrt: настройка VPN и маршрутизации на Routerich
Сеть и сервисы
05.09.2026
ZeroBlock для OpenWrt: настройка VPN и маршрутизации на Routerich
Практическая инструкция по установке и настройке ZeroBlock на OpenWrt. Разберём подключение VPN, работу с sing-box, DNS, секциями маршрутизации, автозапуск и базовую

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