Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
numa — Портативный DNS-резолвер на Rust — локальные домены .numa, блокировка рекламы, переопределения для разработчиков | Kitploit
Инструменты/GitHubGitHub/razvandimescu/numa
Инструменты шифрования/дешифрованияПеречисление DNS и поддоменовСетевая безопасностьКонфиденциальностьDNS-ФаззингАнализ DNS
GitHubrazvandimescu/numa

numa

Портативный DNS-резолвер на Rust — локальные домены .numa, блокировка рекламы, переопределения для разработчиков

Репозиторий
1.4k10115 ч 34 мин назадПроверено Kitploit

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Numa

CI crates.io License: MIT

Свой DNS. Везде, где ты. — numa.rs

Портативный DNS-резолвер в одном бинарнике. Блокируйте рекламу в любой сети, называйте свои локальные сервисы (frontend.numa), переопределяйте любые имена хостов с авто-откатом и шифруйте каждый исходящий запрос с помощью ODoH (RFC 9230) — ни одна сторона не увидит одновременно, кто вы и что вы спросили. Всё с ноутбука: ни облачных аккаунтов, ни Raspberry Pi не нужно.

Создан с нуля на Rust. Никаких DNS-библиотек. Кэширование, блокировка рекламы и домены локальных сервисов из коробки. Опционально — рекурсивное разрешение от корневых серверов с полной проверкой цепочки доверия DNSSEC, плюс DNS-over-TLS-слушатель для зашифрованных клиентских соединений (iOS Private DNS, systemd-resolved и др.). Запустите numa relay — и тот же бинарник станет публичной ODoH-ретрансляцией. В списке DNSCrypt сейчас остался один рабочий ретранслятор, так что каждый развёрнутый Numa реально расширяет экосистему. Один бинарник ~8 МБ — всё встроено.

Панель Numa

Быстрый старт

root@kitploit:~
# 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 Releases
# Все платформы
cargo install numa

# Docker
docker run -d --name numa --network host ghcr.io/razvandimescu/numa

# Nix
nix run github:razvandimescu/numa
root@kitploit:~
sudo numa                              # запустить в фоне (порт 53 требует root/admin)

Откройте панель: http://numa.numa (или http://localhost:5380)

Установка как системного DNS:

На macOS и Linux numa работает как системный сервис (launchd/systemd). На Windows numa запускается автоматически при входе в систему через реестр. Windows также привязывается к 127.0.0.2:53 (встроенный Dnscache занимает 127.0.0.1:53) и устанавливает правило NRPT для маршрутизации запросов к нему — поэтому настраивайте bind_addr/api_bind_addr на 127.0.0.2, а не на 127.0.0.1.

Локальные сервисы

Дайте имена своим dev-сервисам, а не запоминайте номера портов:

root@kitploit:~
curl -X POST localhost:5380/services \
  -d '{"name":"frontend","target_port":5173}'

Теперь https://frontend.numa работает в браузере — зелёный замок, валидный сертификат, WebSocket-прокси для HMR. Ни mkcert, ни nginx, ни /etc/hosts.

Добавляйте маршрутизацию на основе пути (app.numa/api → :5001), делитесь сервисами между машинами через LAN-обнаружение или настраивайте всё в numa.toml.

Блокировка рекламы и конфиденциальность

Блокируется 385К+ доменов через Hagezi Pro. Работает в любой сети — кофейни, отели, аэропорты. Путешествует с вашим ноутбуком.

Три режима разрешения:

  • forward (по умолчанию) — прозрачный прокси к существующему системному DNS. Всё работает как раньше, только с кэшированием и блокировкой рекламы сверху. Учитываются captive-порталы, VPN, корпоративные DNS.
  • recursive — разрешение напрямую от корневых серверов. Никакой зависимости от вышестоящего, ни одна сторона не видит полный шаблон ваших запросов. Добавьте [dnssec] enabled = true для полной проверки цепочки доверия.
  • auto — при запуске проверяет доступность корневых серверов: если есть — рекурсивный режим, если блокируются — зашифрованный DoH-запасной вариант.

DNSSEC проверяет полную цепочку доверия: подписи RRSIG, проверку DNSKEY, делегирование DS, доказательства отрицания NSEC/NSEC3. Читайте как работает →

DNS-over-TLS-слушатель (RFC 7858) — принимает зашифрованные запросы на порту 853 от строгих клиентов, таких как iOS Private DNS, systemd-resolved или stubby. Два режима:

  • Самоподписанный (по умолчанию) — numa автоматически генерирует локальный CA. numa install добавляет его в системное хранилище доверия на macOS, Linux (Debian/Ubuntu, Fedora/RHEL/SUSE, Arch) и Windows. На iOS установите .mobileconfig из numa setup-phone. Firefox хранит собственное хранилище NSS и игнорирует системное — добавьте CA вручную, если вам нужен HTTPS для .numa-сервисов в Firefox.
  • Свой сертификат — укажите [dot] cert_path / key_path на публично доверенный сертификат (например, Let's Encrypt с DNS-01-челленджем на домене, указывающем на ваш экземпляр numa). Клиенты подключаются без настройки хранилища — такой же UX, как у AdGuard Home или Cloudflare 1.1.1.1.

ALPN "dot" объявляется и применяется в обоих режимах; рукопожатие с несовпадающим ALPN отклоняется для защиты от путаницы протоколов.

Настройка телефона — подключите iPhone или Android к Numa одним шагом:

root@kitploit:~
numa setup-phone

Печатает QR-код. Сканируйте, установите профиль, включите доверие к сертификату — DNS вашего телефона теперь маршрутизируется через Numa по TLS. Требует [mobile] enabled = true в numa.toml.

LAN-обнаружение

Запустите Numa на нескольких машинах. Они находят друг друга автоматически через mDNS:

root@kitploit:~
Machine A (192.168.1.5)              Machine B (192.168.1.20)
┌──────────────────────┐             ┌──────────────────────┐
│ Numa                 │    mDNS     │ Numa                 │
│  - api (port 8000)   │◄───────────►│  - grafana (3000)    │
│  - frontend (5173)   │  discovery  │                      │
└──────────────────────┘             └──────────────────────┘

С машины B: curl http://api.numa → проксируется на порт 8000 машины A. Включите с помощью numa lan on.

Режим хаба: запустите один экземпляр с bind_addr = "0.0.0.0:53" и направьте DNS других устройств на него — они получат блокировку рекламы + разрешение .numa без установки чего-либо. bind_addr также принимает список для привязки к определённому набору интерфейсов.

Docker

root@kitploit:~
# Рекомендуется — host-сеть (Linux)
docker run -d --name numa --network host ghcr.io/razvandimescu/numa

# Проброс портов (macOS/Windows Docker Desktop)
docker run -d --name numa -p 53:53/udp -p 53:53/tcp -p 5380:5380 ghcr.io/razvandimescu/numa

Панель по адресу http://localhost:5380. По умолчанию образ привязывает API и прокси к 0.0.0.0. Переопределите пользовательской конфигурацией:

root@kitploit:~
docker run -d --name numa --network host \
  -v /path/to/numa.toml:/root/.config/numa/numa.toml \
  ghcr.io/razvandimescu/numa

Multi-arch: linux/amd64 и linux/arm64.

Готовые compose-рецепты:

  • packaging/client/ — режим ODoH-клиента (анонимный DNS), Numa + стартовый numa.toml.
  • packaging/relay/ — публичная ODoH-ретрансляция, Numa + Caddy + ACME.

Сравнение

Производительность

Запросы из кэша за 0.1 мс — наравне с Unbound и AdGuard Home. Кэш на уровне сырых байтов с прямым патчем TTL. Request hedging устраняет p99-всплески: холодный рекурсивный p99 538 мс против 748 мс у Unbound (−28%), σ в 4 раза уже. Бенчмарки →

Подробнее

  • Блог: Numa как ваш tailnet-резолвер
  • Блог: DNS-over-TLS с нуля на Rust
  • Блог: Реализация DNSSEC с нуля на Rust
  • Блог: Я написал DNS-резолвер с нуля
  • Справочник по конфигурации — все опции с описанием
  • REST API — переопределения, кэш, блокировка, сервисы, диагностика
  • numa-metrics — долговременная история запросов и аналитика, по замыслу вне хоста (без записи на SD-карту)

План развития

  • Пересылка DNS, кэширование, блокировка рекламы, переопределения разработчика
  • Локальные домены .numa — авто TLS, маршрутизация по пути, WebSocket-прокси
  • LAN-обнаружение сервисов — mDNS, кросс-машинный DNS + прокси
  • DNS-over-HTTPS — шифрованный апстрим + серверная точка (RFC 8484)
  • DNS-over-TLS — слушатель для шифрованных клиентов (RFC 7858) + пересылка (tls://)
  • Oblivious DoH — анонимный режим клиента + публичная ретрансляция (numa relay, RFC 9230)
  • Рекурсивное разрешение + DNSSEC — цепочка доверия, NSEC/NSEC3
  • Выбор nameserver по SRTT
  • Отказоустойчивость нескольких пересылок — несколько апстримов с ранжированием SRTT, запасной пул
  • Request hedging — параллельные запросы спасают от потери пакетов и хвостовой задержки (все протоколы)
  • Serve-stale + prefetch — RFC 8767, фоновое обновление при <10% TTL и при отдаче устаревших данных

Лицензия

MIT

Скачать инструмент
ПлатформаУстановкаУдаление
macOSsudo numa installsudo numa uninstall
Linuxsudo numa installsudo numa uninstall
Windowsnuma install (администратор) + перезагрузкаnuma uninstall (администратор) + перезагрузка
Pi-holeAdGuard HomeUnboundNuma
Прокси локальных сервисов + авто TLS———Домены .numa, HTTPS, WebSocket
LAN-обнаружение сервисов———mDNS, без настройки
Переопределения разработчика (REST API)———Авто-откат, скриптуемо
Рекурсивный резолвер——ДаДа, с выбором по SRTT
Валидация DNSSEC——ДаДа (RSA, ECDSA, Ed25519)
Блокировка рекламыДаДа—385К+ доменов
Веб-интерфейсПолныйПолный—Панель управления
Шифрованный апстрим (DoH/DoT)Через cloudflaredТолько DoHТолько DoTDoH + DoT (tls://)
Шифрованные клиенты (DoT-слушатель)Нужен stunnel sidecarДаДаВстроенный (RFC 7858)
Серверная точка DoH—Да—Да (RFC 8484)
Request hedging———Все протоколы (UDP, DoH, DoT)
Serve-stale + prefetch——Prefetch при 90% TTLRFC 8767, prefetch при 90% TTL
Условное перенаправление—ДаДаДа (правила по суффиксам)
Портативность (ноутбук)Нет (аппаратный)Нет (аппаратный)СерверОдин бинарник, macOS/Linux/Windows
Зрелость сообщества56K звёзд, 10 лет33K звёзд20 летНовый
  • Условное перенаправление — правила по суффиксам для split-horizon DNS (Tailscale, VPN)
  • Прогрев кэша — проактивное разрешение для настроенных доменов
  • Онбординг мобильных устройств — QR-поток setup-phone, мобильное API, профили mobileconfig
  • Интеграция pkarr — суверенный DNS через Mainline DHT
  • Глобальные имена .numa — DHT, без регистратора