Numa: портативный DNS-резольвер для блокировки рекламы и управления доменами

Numa: портативный DNS-резольвер для блокировки рекламы и управления доменами

Numa — это портативный DNS-резольвер на Rust, который позволяет блокировать рекламу и создавать локальные доменные имена в одном бинарнике.

Он решает задачу приватности и управления DNS-запросами, предоставляя возможность использовать свои доменные имена без необходимости в облачных службах или дополнительных устройствах, таких как Raspberry Pi. Отличительной особенностью Numa является поддержка ODoH (обеспечения конфиденциальности DNS), что позволяет скрывать информацию о пользователе и его запросах. Он также умеет автоматически отменять переопределения хостнеймов и поддерживает кэширование, что улучшает производительность.

Проект полностью написан на Rust и может быть запущен на различных платформах: macOS, Linux, Windows и даже в Docker. Достаточно выполнить одну из команд из README. Учти, что для работы на порту 53 нужно запустить с правами администратора. В настоящий момент проект пока на ранней стадии, но уже предлагает мощный функционал.

Numa — это переносимый DNS-резолвер, упакованный в один исполняемый файл. Он позволяет блокировать рекламу в любой сети, называть свои локальные сервисы, переопределять любые имена хостов с автоматическим восстановлением, а также шифровать все выходящие запросы с помощью Oblivious DoH (RFC 9230), что исключает возможность одной стороне видеть твою личность и запрашиваемую информацию. Все это возможно без использования облачного аккаунта или Raspberry Pi, прямо на твоем ноутбуке.

Проект написан с нуля на языке Rust, без использования сторонних DNS-библиотек. Numa поддерживает кэширование, блокировку рекламы и локальные сервисные домены из коробки. Также имеется возможность рекурсивного разрешения запросов через корневые серверы имен с полной проверкой цепочки доверия DNSSEC. Для шифрования клиентов доступен слушатель DNS-over-TLS, который можно использовать с различными клиентами, такими как iOS Private DNS. Команда numa relay позволяет превратить Numa в публичную точку ODoH, что значительно расширяет экосистему, позволяя каждому развёрнутому экземпляру Numa участвовать в этом процессе.

Установка и запуск

Установка Numa возможна на различных платформах:

  • На macOS: brew install razvandimescu/tap/numa
  • На Linux: curl -fsSL https://raw.githubusercontent.com/razvandimescu/numa/main/install.sh | sh
  • На Arch Linux: pacman -S numa
  • На Windows — скачай из релизов на GitHub.
  • Для Docker: docker run -d --name numa --network host -v numa-data:/var/lib/numa ghcr.io/razvandimescu/numa
  • Для Nix: nix run github:razvandimescu/numa

Для запуска сервера в поисковом режиме используй команду:

sudo numa

Чтобы открыть панель управления, перейди по адресу http://numa.numa или http://localhost:5380. На локальном интерфейсе вход в систему не требуется, а при доступе из другой сети будет предложено ввести токен API, который Numa генерирует при первом запуске.

Основные функции

Numa предоставляет несколько режимов разрешения запросов:

  • forward (по умолчанию) — прозрачный прокси для твоего существующего системного DNS с кэшированием и блокировкой рекламы;
  • recursive — прямое разрешение запросов от корневых серверов имен;
  • auto — автоматически определяет доступность корневых серверов и переключается на рекурсивное разрешение при их достижимости.

Поддерживается блокировка рекламы и трекеров через Hagezi Pro, обновляемый ежедневно. Также есть поддержка локальных сервисов с авто-выдачей TLS и мDNS для автоматического обнаружения сервисов в сети.

Ограничения

Numa не поддерживает DHCP, кластеризацию или синхронизацию конфигураций между экземплярами. Большинство настроек производится в файле numa.toml, а не через панель управления. Если ты используешь Numa как единственный резолвер и он перестанет работать, DNS-запросы могут потерпеть неудачу. Чтобы вернуть прежние настройки DNS, достаточно выполнить команду sudo numa uninstall.

Заключение

Numa — это многофункциональный инструмент для управления DNS, предлагающий гибкость в настройках и возможность работы в различных сценариях. Его легкость установки и настройки делает его удобным решением для блокировки рекламы и управления локальными сервисами без дополнительных затрат на оборудование.

Радар проекта: 78 из 100 — зрелый и живой проект

ИмпульсТемпЗрелостьСообществоСвежестьСтартПродакшенДовериеДокументацияЭкосистема78
  • Импульс 48 ≈ 12 звёзд в день
  • Темп разработки 84 118 коммитов за 12 недель
  • Зрелость 100 проекту 5 лет, 39 релизов
  • Сообщество 56 16 участников, 140 форков
  • Свежесть 97 последний коммит — 6 дней назад
  • Быстрый старт 90 есть: команда установки, Docker, сайт/демо
  • Готовность к продакшену 75 релиз v0.25.0, автосборка, тесты
  • Безопасность и доверие 65 лицензия MIT, SECURITY.md
  • Документация 97 README 13.6 тыс. знаков, 21 раздел
  • Экосистема 66 11 подписчиков на обновления, 16 тем
Как считаем

Только открытые данные GitHub на 07.11.2026, без оценок нейросети. Каждая ось — от 0 до 100, итог — среднее.

  • Импульс — звёзд в день: за время наших замеров, а пока их нет — за всю жизнь проекта; 200 в день — максимум.
  • Темп разработки — коммитов за последние 12 недель; 300 — максимум. Пока GitHub не досчитал статистику, ось не учитывается.
  • Зрелость — возраст проекта (3 года — максимум) и число релизов (30 — максимум), поровну.
  • Сообщество — участников с коммитами (200 — максимум) и форков (5000 — максимум), поровну.
  • Свежесть — дней с последнего коммита: сегодня — 100, полгода и больше или архив — 0.
  • Быстрый старт — в README есть команда установки, раздел «быстрый старт» или примеры использования, в репозитории — Docker и папка примеров, у проекта есть сайт или демо.
  • Готовность к продакшену — релизы, версия 1.0 и выше, автосборка (GitHub Actions), тесты, лицензия, журнал изменений.
  • Безопасность и доверие — открытая лицензия (своя — половина балла), политика безопасности (SECURITY.md), проект организации, правила для участников, не в архиве.
  • Документация — объём и структура README, папка docs или сайт, оценка «здоровья сообщества» GitHub.
  • Экосистема — звёзды (50 тыс. — максимум), подписчики на обновления (1000 — максимум), темы репозитория.

Открыть на GitHub: razvandimescu/numa →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте