Если реклама появляется на каждом устройстве в домашней сети, блокировать её отдельно становится неудобно. Смартфон, ноутбук, телевизор и другие устройства используют разные приложения и браузеры. Установив Pi-hole на VDS, можно перенести фильтрацию DNS на отдельный сервер и управлять ей централизованно.
Pi-hole это DNS-сервер с функцией блокировки рекламы и известных трекеров. Он работает на уровне DNS, поэтому отдельное расширение для каждого браузера не требуется.
Когда устройство запрашивает IP-адрес рекламного домена, Pi-hole проверяет запрос по спискам блокировки. Если домен известен как рекламный или отслеживающий, сервер не возвращает обычный IP-адрес. В результате соединение с этим доменом не устанавливается.
Главное преимущество такого подхода это централизованная настройка. После настройки Pi-hole один раз его можно использовать сразу на нескольких устройствах.
Подключитесь к серверу по SSH:
ssh root@IP_АДРЕС
Замените IP_АДРЕС на адрес вашего VDS. Если используется другой пользователь, укажите его вместо root.
После подключения сначала обновим информацию о пакетах:
apt update && apt upgrade -y
Сначала создайте каталог для Pi-hole:
mkdir -p ~/pihole/etc-pihole ~/pihole/etc-dnsmasq.d
cd ~/pihole
Создайте файл docker-compose.yml:
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
restart: unless-stopped
environment:
TZ: Europe/Madrid
FTLCONF_webserver_api_password: "СЛОЖНЫЙ_ПАРОЛЬ"
FTLCONF_dns_listeningMode: "all"
volumes:
- ./etc-pihole:/etc/pihole
- ./etc-dnsmasq.d:/etc/dnsmasq.d
ports:
- "53:53/tcp"
- "53:53/udp"
- "80:80/tcp"
53 нужен для DNS-запросов, 80 — для веб-интерфейса Pi-hole.
Запустите Pi-hole:
docker compose up -d
Проверьте контейнер:
docker ps

Должна появиться строка с контейнером pihole и опубликованными портами 53 и 80.
После запуска откройте в браузере:
http://IP_АДРЕС_VDS/admin/
Войдите с паролем, который указали в FTLCONF_webserver_api_password.
Для первоначальной проверки DNS прямо на VDS:
nslookup example.com 127.0.0.1
Если получены IP-адреса example.com, Pi-hole принимает DNS-запросы.
После этого уже можно указать IP_АДРЕС_VDS как DNS на тестовом компьютере и проверить:
nslookup example.com
Если в ответе указан IP вашего VDS, запрос проходит через Pi-hole.
После установки панель управления обычно доступна по адресу:
http://194.48.141.32/admin/
Например:
http://203.0.113.10/admin/
Здесь можно посмотреть статистику запросов, управлять списками блокировки и изменять настройки DNS.

Пароль администратора устанавливается во время установки или может быть изменён позднее через команду Pi-hole.
Для просмотра текущих настроек используйте:
pihole status
А для изменения пароля:
pihole setpassword
После выполнения команды Pi-hole попросит указать новый пароль.
Если устройство не может использовать Pi-hole, сначала проверьте, слушается ли порт 53:
sudo ss -tulpn | grep ':53'
Затем проверьте работу DNS локально на самом сервере:
dig example.com @127.0.0.1
Если команда возвращает DNS-ответ, сам Pi-hole работает. Значит, проблему нужно искать между клиентом и сервером.
Проверить firewall. Например, если используется UFW:
sudo ufw status
При необходимости DNS-порты можно открыть:
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
Но открывать DNS-порт для всего интернета без необходимости не следует. Лучше ограничить доступ источниками, которым действительно нужен ваш DNS-сервер.