Skip to content

vesh95/dnso

Repository files navigation

DNSO

DNSO — это локальный DNS-сервер с веб-интерфейсом для управления DNS-зонами и записями. Позволяет создавать собственные DNS-зоны, добавлять записи типов A, AAAA, CNAME, MX, TXT, NS, SOA и проксировать остальные запросы к вышестоящему DNS-серверу.

Написан на Go, данные хранит в SQLite.


Возможности

  • Локальный DNS-сервер (UDP) с поддержкой кастомных зон
  • Управление зонами и DNS-записями через веб-интерфейс (SPA, тёмная тема)
  • Проксирование запросов к upstream DNS (по умолчанию 8.8.8.8:53)
  • In-memory кэширование DNS-ответов с учётом TTL
  • Автоматический CNAME-резолвинг (до 8 уровней)
  • Graceful shutdown по SIGINT/SIGTERM
  • REST API для программного управления
  • Миграции базы данных

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

Требования

  • Go 1.26.1 или выше

Сборка и запуск

# Сборка
go build -o dnso .

# Применение миграций
./dnso migrate up

# Запуск сервера
./dnso serve

После запуска:

  • DNS-сервер127.0.0.1:5354 (UDP)
  • Веб-интерфейсhttp://127.0.0.1:8080

Проверка

dig @127.0.0.1 -p 5354 example.com
dig @127.0.0.1 -p 5354 google.com

Конфигурация

Все параметры настраиваются через переменные окружения:

Переменная По умолчанию Описание
DNSO_DB_PATH ./dnso.db Путь к файлу SQLite
DNSO_BIND_ADDR :5354 Адрес DNS-сервера
DNSO_UPSTREAM 8.8.8.8:53 Вышестоящий DNS-сервер
DNSO_CACHE true Включение кэширования
DNSO_WEB_ADDR :8080 Адрес веб-интерфейса
DNSO_MIGRATIONS_PATH file://migrations Путь к миграциям

Команды CLI

Команда Описание
dnso serve Запуск DNS-сервера и веб-интерфейса
dnso migrate up Применить миграции БД
dnso migrate down Откатить миграции БД

Лицензия

MIT — подробнее в файле LICENSE.


Дополнительная документация

About

DNS сервер для локальных зон

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors