DNSnitch
Отказ от ответственности
Я использую это для себя, но выложил на случай, если кому-то понадобится. Если найдёте ошибки, смело открывайте issue!
Интерактивный терминальный DNS-файрвол
DNSnitch — это локальный DNS-сервер, ориентированный на приватность, который даёт вам полный контроль над сетевым трафиком. В отличие от пассивных блок-листов, DNSnitch работает по принципу «Запрещено всё, что не разрешено»: каждый неизвестный домен по умолчанию блокируется, пока вы не разрешите его через терминальную панель в реальном времени.
Ключевые возможности
- Перехват в реальном времени: работает локально (порт 5353, настраивается) и перехватывает все DNS-запросы, отправляемые с вашей машины.
- Политика «Запрещено по умолчанию»: неизвестные домены мгновенно получают ответ
NXDOMAIN и отображаются в «Очереди ожидающих».
- 4-уровневая система разрешений:
- PERMANENT: внести в белый список навсегда.
- TEMPORARY: разрешить на 5 минут (автоматически истекает, настраивается).
- ONCE: разрешить ровно на один DNS-запрос (отлично для captive-порталов или одноразовых входов).
- BLOCK: явно занести домен в чёрный список, чтобы он больше не запрашивался.
- Поэтапная работа: изменения «подготавливаются» (staged) в рабочей области и вступают в силу только после применения (
Apply).
- Запись трафика: можно переключить режим, разрешив трафик и записывая уникальные домены в историю.
- Перенаправление DNS: мгновенное сопоставление доменов с определёнными IP (для локальной разработки) или с другими доменами (CNAME).
- Интерактивная TUI-панель: многозакладочный интерфейс без использования мыши, построенный на Ncurses.
- Console: история команд и цветная обратная связь.
- Monitor: четырёхколоночный просмотр активных правил в реальном времени.
- Queue: интерактивный список заблокированных запросов.
- Logs: прокручиваемый в реальном времени поток сырых DNS-запросов.
- Redirections: предпросмотр текущих активных перенаправлений.
- Records: отображение записанных имён доменов.
Интерфейс
Управление панелью осуществляется с помощью F-клавиш:
- [F1] CONSOLE: главный командный центр. Вводите команды здесь. Прокрутка истории —
PgUp/PgDn.
- [F2] MONITOR: обзор ваших правил в реальном времени.
- Управление: стрелками
Left/Right выделите колонку (Temp, Once, Perm, Blocked), а стрелками Up/Down прокручивайте конкретную колонку.
- [F3] QUEUE: «входящие» для заблокированных доменов.
- Визуальные подсказки:
> — выделение, * — наличие незафиксированных изменений.
- [F4] LOGS: сырой поток всех запросов, обработанных движком.
- [F5] REDIRECTS: управление пользовательскими A/CNAME-записями.
- [F6] RECORDS: просмотр доменов, собранных в режиме записи.
Справочник команд
DNSnitch управляется с клавиатуры. Ниже приведён полный список команд, доступных в консоли [F1].
Выделение и управление очередью
Прежде чем применить действие, необходимо выбрать цели. Вы можете выбирать ожидающие запросы по ID или домены вручную по имени.
Действия (подготовка изменений)
После выбора доменов используйте эти сокращения для установки их статуса.
Рабочий процесс (применение изменений)
Изменения вступают в силу только после применения.
Режимы и запись
Изменение поведения файрвола в целом.
Перенаправление
Сопоставление доменов с пользовательскими целями (локальный спуфинг DNS).
Системные
Примеры использования
1. Стандартный рабочий процесс (разблокировка сайта)
- Попробуйте зайти на
example.com. Он не загружается.
- Нажмите F3 (Queue). Вы видите
1. example.com.
- Введите
s 1. (Строка подсвечивается).
- Введите
p. (Строка показывает [PERM]).
- Введите
a. (Применить).
- Обновите браузер. Сайт работает.
2. Изменение правила (исправление случайной блокировки)
- Вы случайно заблокировали
google.com.
- Введите
s google.com.
- Введите
rm (удалить) или p (разрешить навсегда), чтобы перезаписать блокировку.
- Введите
a.
3. Локальная разработка
- Вы разрабатываете сайт и хотите обращаться к нему через
mysite.local.
- Нажмите F5.
- Введите
r mysite.local 127.0.0.1.
- Теперь ваша система резолвит этот домен на localhost.
4. Аудит приложения (режим записи)
- Вы установили новое приложение и хотите посмотреть, к каким доменам оно обращается, не ломая его работу.
- Введите
m rec (Mode: Record).
- Используйте приложение в течение 5 минут.
- Нажмите F6.
- Просмотрите список.
- Введите
m dft, чтобы вернуться в безопасный режим.