
DNSnitch - это локальный DNS-сервер, ориентированный на конфиденциальность, который дает вам полный контроль над вашим сетевым трафиком. В отличие от пассивных списков блокировки, DNSnitch работает по философии «Запрещено по умолчанию»: каждый неизвестный домен блокируется по умолчанию, пока вы не авторизуете его через информационную панель терминала в реальном времени.
Отказ от ответственности Я использую это для себя, но выложил на случай, если кому-то понадобится. Если найдёте ошибки, смело открывайте issue!
Интерактивный терминальный DNS-файрвол
DNSnitch — это локальный DNS-сервер, ориентированный на приватность, который даёт вам полный контроль над сетевым трафиком. В отличие от пассивных блок-листов, DNSnitch работает по принципу «Запрещено всё, что не разрешено»: каждый неизвестный домен по умолчанию блокируется, пока вы не разрешите его через терминальную панель в реальном времени.
NXDOMAIN и отображаются в «Очереди ожидающих».Apply).Управление панелью осуществляется с помощью F-клавиш:
PgUp/PgDn.Left/Right выделите колонку (Temp, Once, Perm, Blocked), а стрелками Up/Down прокручивайте конкретную колонку.> — выделение, * — наличие незафиксированных изменений.DNSnitch управляется с клавиатуры. Ниже приведён полный список команд, доступных в консоли [F1].
Прежде чем применить действие, необходимо выбрать цели. Вы можете выбирать ожидающие запросы по ID или домены вручную по имени.
| Команда | Пример использования | Описание |
|---|---|---|
s | s | Сбросить текущее выделение. |
s <id> | s 1 3 5 | Выбрать ожидающие домены по их ID в очереди (видно на F3). |
s <domain> | s google.com | Выбрать конкретный домен по имени (даже если его нет в очереди). Полезно для редактирования существующих правил. Поддерживается множественный выбор. |
q, ls | q | Переключиться на вкладку Queue [F3]. |
clear | clear | Очистить очередь ожидающих (удалить все ожидающие запросы из поля зрения). |
После выбора доменов используйте эти сокращения для установки их статуса.
| Команда | Использование | Описание |
|---|---|---|
p | p | Пометить выбранные как Permanent Allow (постоянное разрешение). |
t | t | Пометить выбранные как Temporary (временное, 5 минут). |
o | o | Пометить выбранные как Allow Once (разрешить один раз). |
b | b | Пометить выбранные как Blocked (заблокировано, чёрный список). |
rm, del | rm | Удалить правило для выбранного домена (забыть его, начать с чистого листа). |
Изменения вступают в силу только после применения.
| Команда | Использование | Описание |
|---|---|---|
cc | cc | Check Config: вывести текстовую сводку подготовленных изменений. |
d, ditch | d | Discard: сбросить рабочую область и отменить все подготовленные изменения. |
a | a | Apply: зафиксировать рабочую область в базе активного файрвола. |
Изменение поведения файрвола в целом.
| Команда | Использование | Описание |
|---|---|---|
m dft | m dft | Default Mode: блокировать всё неизвестное (стандартная безопасность). |
m rec | m rec | Record Mode: разрешить всё + записывать уникальные домены на [F6]. |
m rbl | m rbl | Record + Blocklist: разрешить всё кроме известных блокировок + записывать уникальные домены. |
crec | crec | Clear Records: очистить список записанных доменов на [F6]. |
Сопоставление доменов с пользовательскими целями (локальный спуфинг DNS).
| Команда | Пример использования | Описание |
|---|---|---|
r | r dev.loc 127.0.0.1 | Перенаправить dev.loc на локальный IP (A-запись). |
r | r my.net google.com | Перенаправить my.net на google.com (CNAME). |
ur | ur dev.loc | Unredirect: удалить пользовательское правило для dev.loc. |
| Команда | Использование | Описание |
|---|---|---|
logs | logs | Переключиться на вкладку Logs [F4]. |
help | help | Вывести список всех доступных команд. |
exit | exit | Остановить DNS-сервер. |
example.com. Он не загружается.1. example.com.s 1. (Строка подсвечивается).p. (Строка показывает [PERM]).a. (Применить).google.com.s google.com.rm (удалить) или p (разрешить навсегда), чтобы перезаписать блокировку.a.mysite.local.r mysite.local 127.0.0.1.m rec (Mode: Record).m dft, чтобы вернуться в безопасный режим.