Technitium DNS на Ubuntu 24.04: пошаговая установка
Pi-hole и AdGuard Home хороши для блокировки рекламы, но как только нужны свои DNS-зоны, вторичный DNS, условная пересылка по доменам или шифрование запросов через DoH/DoT — начинаются пляски с текстовыми конфигами и дополнительными демонами. Technitium DNS Server закрывает всё это одним бинарником с полноценной веб-панелью: рекурсивный резолвер, авторитативный сервер зон, блокировка по спискам, DNSSEC-подпись и DoH/DoT-прокси — без ручной правки zone-файлов. Ставим на чистую Ubuntu 24.04 за 10 минут.
Содержание
- Что такое Technitium и чем он отличается от Pi-hole и AdGuard Home
- Требования и подготовка сервера
- Установка Technitium DNS Server
- Первичная настройка через веб-панель
- Блокировка рекламы и трекеров
- Свои DNS-зоны и авторитативный сервер
- DoH, DoT и защищённый доступ к DNS
- Логи, аналитика и резервное копирование
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что такое Technitium и чем он отличается от Pi-hole и AdGuard Home
Technitium DNS Server — открытый (GPLv3) DNS-сервер на .NET, разработанный индийской командой Technitium с 2016 года. В отличие от Pi-hole и AdGuard Home, которые изначально заточены под блокировку рекламы и работают как forwarding-прокси поверх upstream-резолверов, Technitium — это полноценный рекурсивный резолвер (как Unbound) плюс авторитативный DNS-сервер (как BIND9 или PowerDNS) в одном процессе.
Практическая разница:
| Возможность | Pi-hole | AdGuard Home | Technitium |
|---|---|---|---|
| Блокировка рекламы по спискам | Да | Да | Да |
| Рекурсивный резолвинг без upstream | Нет (нужен forwarder) | Нет (нужен forwarder) | Да, встроенный |
| Авторитативный сервер своих зон | Ограниченно | Нет | Да, полноценно |
| DNSSEC-валидация и подпись зон | Нет | Частично | Да |
| DoH/DoT сервер (не только клиент) | Нет | Да | Да |
| Вторичный DNS (AXFR/IXFR) | Нет | Нет | Да |
| Split Horizon DNS | Нет | Нет | Да |
| API для автоматизации | Ограниченный | Да | Полный REST API |
Если вам нужен только блокировщик рекламы на дом — берите AdGuard Home или Pi-hole, это проще. Technitium имеет смысл, когда вы хотите: держать собственные DNS-зоны для доменов (замену BIND9/PowerDNS), одновременно фильтровать рекламу и трекеры, отдавать DoH/DoT наружу для клиентов и управлять всем этим из одной панели без SSH.
Требования и подготовка сервера
Technitium работает на .NET 8, минимальные требования скромные: 1 vCPU, 512 МБ RAM хватает для дома и небольшой команды, для сотен тысяч запросов в день лучше 2 vCPU/2 ГБ. Диск — от 5 ГБ, но с полными списками блокировки (миллионы доменов) закладывайте 2-3 ГБ под кэш и базы.
Обновите систему и настройте часовой пояс — для DNSSEC критично точное время:
sudo apt update && sudo apt upgrade -y
sudo timedatectl set-timezone Europe/Moscow
sudo apt install -y curl wget ufw
Проверьте, что порт 53 свободен — на многих Ubuntu-серверах его занимает systemd-resolved:
sudo ss -tulnp | grep :53
Если видите systemd-resolve, отключите встроенный резолвер (Technitium сам будет резолвить систему):
sudo systemctl disable --now systemd-resolved
sudo rm -f /etc/resolv.conf
echo "nameserver 1.1.1.1" | sudo tee /etc/resolv.conf
Это временный resolv.conf только для установки — после запуска Technitium можно перенаправить систему на localhost, но аккуратно, чтобы не потерять DNS при перезапуске сервиса.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверУстановка Technitium DNS Server
Официальный install-скрипт сам подтягивает .NET runtime нужной версии и разворачивает сервис как systemd unit:
curl -sSL https://download.technitium.com/dns/install.sh | sudo bash
Скрипт делает следующее: скачивает последний релиз с GitHub, распаковывает в /opt/technitium/dns, устанавливает .NET 8 runtime (если его нет), создаёт systemd-сервис dns.service и открывает автозапуск. Проверьте статус:
sudo systemctl status dns
Если сервис не поднялся с первого раза — почти всегда причина в занятом порту 53 (см. предыдущий шаг) или отсутствии свободной памяти на слабых тарифах. Логи смотрите так:
sudo journalctl -u dns -n 50 --no-pager
Для ручной установки без скрипта (если хотите контролировать версию .NET) есть tar.gz-архив в релизах на GitHub — распаковка в /opt, создание systemd-unit вручную и запуск от отдельного непривилегированного пользователя с setcap на бинарник для бинда порта 53. Это оправдано на серверах с жёсткими политиками безопасности, но для 95% случаев официальный скрипт достаточно предсказуем.
Первичная настройка через веб-панель
Веб-интерфейс поднимается на порту 5380 (HTTP) сразу после установки. Откройте http://ваш_ip:5380 в браузере — панель попросит создать администратора при первом входе.
При первом заходе мастер настройки предложит:
- Admin username/password — задайте сложный пароль, панель по умолчанию доступна всем, кто дотянется до порта.
- DNS Server Domain — FQDN сервера (например,
dns.example.com), используется в SOA-записях зон и для сертификата DoH. - Recursion — режим резолвинга:
Allow only for private network(безопасно по умолчанию, не даёт использовать сервер как открытый резолвер для DDoS-усиления) илиAllowс явным списком доверенных сетей.
Первым делом закройте панель управления от внешнего мира — она не должна торчать наружу без ограничений:
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
sudo ufw allow from 10.0.0.0/8 to any port 5380 proto tcp
sudo ufw allow from 192.168.0.0/16 to any port 5380 proto tcp
sudo ufw enable
Замените диапазоны на реальную сеть, из которой вы администрируете сервер — свой домашний IP или VPN-подсеть. Открывать 5380 всему интернету — плохая идея, даже с паролем.
Блокировка рекламы и трекеров
В разделе Settings → Blocking включите блокировку и добавьте списки. Technitium понимает форматы hosts, AdBlock и обычный список доменов — можно смешивать источники:
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
https://big.oisd.nl
https://adaway.org/hosts.txt
После добавления URL нажмите Force Update Blocked Zone, чтобы скачать списки сразу, не дожидаясь по расписанию. Интервал обновления списков настраивается там же (по умолчанию — раз в сутки, разумно оставить как есть).
Точечные исключения и добавления делаются без редактирования файлов — прямо в UI: Allow List для доменов, которые блокируются ложно, Block List (Local) для доменов, которые хотите заблокировать вручную (например, телеметрию конкретного приложения). Изменения применяются мгновенно, без перезапуска сервиса.
Отдельно полезна функция Blocking Type: можно вернуть блокированным доменам NXDOMAIN (домен как бы не существует) или Custom Address (перенаправить на локальную заглушку с страницей "заблокировано"), что удобнее для отладки — сразу видно, что сработал именно блок-лист, а не сетевая проблема.
Свои DNS-зоны и авторитативный сервер
Это ключевое отличие от Pi-hole и AdGuard Home. В разделе Zones → Add Zone создаёте авторитативную зону для своего домена:
- Primary Zone — основная зона, редактируется здесь.
- Secondary Zone — вторичная, тянет данные с другого DNS-сервера по AXFR/IXFR (например, если основной DNS у вас на BIND9, а Technitium — резервный).
- Forwarder Zone — условная пересылка: запросы к конкретному домену уходят на другой DNS (полезно для внутренних зон корпоративной сети через VPN).
Для primary-зоны добавляете записи через понятный UI: A, AAAA, CNAME, MX, TXT, SRV, CAA — без синтаксиса BIND-файлов. Пример: заводите зону example.com, добавляете A-запись @ → IP вашего сервера, www → CNAME на @, MX на почтовый сервер. SOA и NS создаются автоматически при создании зоны, их можно донастроить (TTL, refresh/retry/expire).
DNSSEC включается для зоны одной кнопкой — Zones → example.com → DNSSEC → Sign Zone, выбираете алгоритм (по умолчанию ECDSAP256SHA256 — компактнее и быстрее RSA) — Technitium сам генерирует ключи (KSK/ZSK), подписывает записи и обновляет подписи по расписанию. Останется вручную добавить DS-запись в регистратора домена — она показывается прямо в интерфейсе зоны для копирования.
Если вы переносите зоны с BIND9 или PowerDNS, импорт возможен через Zones → Import Zone — загружаете стандартный zone-файл, Technitium парсит его и создаёт записи автоматически.
DoH, DoT и защищённый доступ к DNS
Technitium умеет отдавать зашифрованный DNS клиентам — не только пересылать запросы через DoH к чужим резолверам, но и сам выступать DoH/DoT-сервером. Включается в Settings → Optional Protocols:
- DNS-over-HTTPS (DoH) — порт 443 (или отдельный, если 443 занят Nginx/Caddy), путь
/dns-query. - DNS-over-TLS (DoT) — порт 853.
- DNS-over-QUIC (DoQ) — экспериментальный, для клиентов с поддержкой QUIC.
Для DoH/DoT нужен TLS-сертификат — Technitium поддерживает загрузку своего PFX-файла или интеграцию с ACME для автовыпуска через Let's Encrypt прямо из панели (Settings → General → Certificate). Если 443 порт уже занят веб-сервером с Caddy или Nginx, повесьте DoH на альтернативный порт (например, 8443) и настройте проброс через reverse-proxy, либо выделите под DNS-панель отдельный сервер — так вы не рискуете конфликтом сертификатов и портов на боевом веб-сервисе.
После включения клиенты подключаются по адресу https://dns.example.com/dns-query (DoH) в Firefox, Chrome или мобильных настройках — весь DNS-трафик от клиента до вашего сервера будет зашифрован, что закрывает DNS-утечки, актуальные при работе через VPN или общественный Wi-Fi. Подробнее про механику DoH в связке с доступом к зарубежным сервисам — в статье про DNS поверх HTTPS.
Логи, аналитика и резервное копирование
В Dashboard сразу видна статистика: топ запрашиваемых доменов, топ клиентов, соотношение разрешённых/заблокированных запросов, график нагрузки. Это удобнее голого journalctl — видно аномалии (например, резкий рост запросов от одного клиента — признак заражённого устройства или неправильно настроенного приложения).
Логи запросов включаются в Settings → Logging — можно писать в файл или держать только в памяти для дашборда (экономит диск на маленьких VPS). При включённом файловом логе ротация настраивается там же по максимальному размеру файла.
Резервное копирование всей конфигурации (зоны, блок-листы, настройки, пользователи) делается через Settings → Backup & Restore → Backup: выгружается ZIP-архив, который можно восстановить на новом сервере тем же разделом. Для регулярного бэкапа проще всего архивировать директорию конфигурации по cron:
sudo tar -czf /root/backups/technitium-$(date +%F).tar.gz /opt/technitium/dns/config
Держите пару последних архивов и копируйте их за пределы сервера — если DNS ляжет вместе с бэкапом на том же диске, толку от бэкапа не будет.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Technitium конфликтует с systemd-resolved?
Да, оба претендуют на порт 53. Перед установкой отключите systemd-resolved командой из раздела подготовки, иначе сервис DNS не запустится или откажется слушать порт.
Можно ли использовать Technitium вместо AdGuard Home для дома?
Можно, но панель у AdGuard Home чуть проще для новичка именно в блокировке рекламы. Technitium стоит выбирать, если вдобавок нужны свои зоны, DNSSEC или DoH/DoT-сервер — не только фильтр.
Нужен ли отдельный сервер под DNS или хватит одного VPS с другими сервисами?
Для дома и небольшой команды хватает 1 vCPU/1 ГБ RAM в связке с другими лёгкими сервисами. Для продакшена и авторитативной зоны публичного домена лучше выделенный VPS — так DNS не зависит от нагрузки веб-приложений и не делит с ними порты 53/443.
Как перенести существующие зоны с BIND9?
Экспортируйте zone-файл (named-checkzone для проверки), затем в Technitium используйте Zones → Import Zone — сервер сам распарсит стандартный формат и создаст записи.
DNSSEC обязателен?
Нет, но рекомендован для публичных доменов — защищает от подмены ответов (DNS spoofing/cache poisoning). Включается за пару кликов, DS-запись потом добавляете у регистратора.
Работает ли Technitium как вторичный DNS для отказоустойчивости?
Да, через Secondary Zone с AXFR/IXFR от primary-сервера — классическая схема master/slave DNS, знакомая по BIND9 и PowerDNS.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →