🌐
DNShg
DNShostingguru
Полный доступ управления DNS

Управление DNS-инфраструктурой в одной панели

Зоны, записи, GeoDNS, slave-синхронизация с ISPmanager и интеграция с Plesk.

Войти в панель

Учётные данные администратора или реселлера.

🌐
DNShg
DNShostingguru
Главная
📊Дашборд
🌐Домены
🔁Обратные зоны
Пользователи и доступ
👤Пользователи
💼Реселлеры
Мониторинг
📈Статистика
🔐Журнал входов
📜Журнал операций
Инфраструктура
📡GeoDNS
📖API v2
📋Шаблоны зон
🔗NS-серверы
🔐DNSSEC
Система
💾Резервные копии
⚙️Настройки
🚪Выйти
Дашборд
🔍
A
admin
⚠ Лицензия не активна. DNS работает; обновления панели недоступны.
Дашборд
Сервер панели, нагрузка и журнал изменений

Обзор

🌐
—
Зон
📝
—
Записей
📦
2.3.97
Версия · stable
⏱
—
Время сервера

Быстрые действия

Разделы

Последние операции

⏳ Загрузка…

Нагрузка сервера

Хост с панелью (Linux). PPS — суммарный RX+TX по интерфейсам (без loopback).

CPU—
загрузка, %
RAM—
занято, %
Диск /—
использовано, %
Сеть—
пакетов / с

Кластер NS

⏳

Журнал изменений панели

⏳ Загрузка…
🌐 Домены
Управление DNS-зонами
🌐
—
Всего зон
📝
—
Записей
🔗
—
NS-серверов
👤
—
Пользователей
🔍
ДоменВладелецMaster NSSOA EmailTTLSerialЗаписейAPI IP
⏳ Загрузка...
📝 DNS-записи
Выберите домен
🔒 Зона из ISPmanager: запись в списке появляется сразу после API, а в authoritative DNS (PowerDNS) — через несколько секунд. Сразу после правки в ISP используйте 🔍 Проверить в DNS (есть повторы). На slave NS — до 1–2 мин или «Sync все NS».
⚙️ Параметры зоны
Домен
—
Master NS
—
Serial
—
TTL
—
SOA Email
—
DNSSEC
—
Сервер интеграции (Plesk / ISPmanager)
—
IP с правами API: + добавление, ~ изменение, - удаление, * полная замена зоны. Несколько IP через запятую или в редакторе ниже.
Первичный NS
Email администратора
60–86400
Опрос slave. Реком: 3600–10800
Повтор при ошибке. Реком: 600–3600
Срок жизни зоны. Реком: 604800
NXDOMAIN кеш. Реком: 300–3600
Авто при пустом поле
До нескольких master-серверов (Plesk/ISPmanager). Права: «Добавление» — record.add / PTR; «Изменение» — правка записей; «Удаление» — delete; «Полная замена» — Plesk create/update (снимок всей зоны). Пустой список — привязка при первом запросе.
🔍
ИмяТипЗначениеTTL, секДополнительно
Выберите домен
👤 Пользователи
Управление учётными записями
ЛогинРольРеселлер (ID / имя)ДоменыСтатусСоздан
⏳
Реселлеры
Лимиты и биллинг
IDЛогинМакс. зонМакс. записейМакс. юзеровБалансТариф/мес
⏳
🔗 NS-серверы (Slave)
Добавьте NS — панель настроит allow-axfr и NOTIFY на master (этот сервер или ISP/Plesk — откуда зона) и AXFR на slave. Синхронизация зон — автоматически.
🛰 Состояние кластера DNS
⏳ Загрузка состояния кластера…
📜 События синхронизации
ВремяДоменДействиеSerialNS
⏳
ИмяIP-адресЗдоровьеПоследняя syncНагрузкаДействия
⏳
📡 GeoDNS
Географическая маршрутизация трафика
⚙️ Статус GeoDNS-сервера
⏳
📌 Зона для редактирования GeoDNS
Текущая зона
Зона не выбрана
Нажмите «Выбрать зону…» — выбор сохраняется отдельно от раздела «Домены». Список обновляется кнопкой «Обновить список».
🌍 Правила маршрутизации —
Фильтр:
⏳
🧪 Тестер (хост + страна + город)
Город — как в GeoLite2-City (часто англ. название), например Moscow. Для live-запросов нужен GEOLITE2_CITY_MMDB на NS.
➕ Новое правило
Пусто = всё государство. Иначе узкое правило для города.
📋 Шаблоны зон
Сохранённые наборы DNS-записей для быстрого применения к новым зонам
➕ Создать шаблон из зоны
В шаблон попадают все записи зоны, кроме NS и SOA.
📝 Создать шаблон из JSON
📚 Сохранённые шаблоны
ИмяЗаписейСозданДействия
⏳
🔐 Журнал входов
IP, браузер, дата и результат авторизации
Дата и времяЛогинРольIPБраузерРезультат
⏳
📜 Журнал операций
История изменений
⏳
📈 Статистика
Мониторинг системы
🌐
—
Зон
📝
—
Записей
👤
—
Пользователей
🔗
—
Slave NS
🔍 Состояние PowerDNS
⏳
🔐 DNSSEC
Подписанные зоны PowerDNS и экспорт DS-записей для регистратора
🌐
—
Зон проверено
✅
—
Подписано
⏳
—
Ожидание
○
—
Без DNSSEC
Зоны
ДоменСтатусDSДействия
⏳
💾 Резервные копии
Локальные снимки, FTP/SFTP, инкремент, ротация и выборочное восстановление
📁 Каталог бэкапов
—
Зон: — · Записей: — · Пользователей: —
—
🐘 PostgreSQL
—
—
☁️ Удалённое хранилище (FTP / SFTP)
Пароль хранится в data/backup-config.json в зашифрованном виде (AES-256-GCM). Ключ задаётся в Настройки → Безопасность → Шифрование (или DNSMGR_BACKUP_ENC_KEY в .env как резерв).
—
⚙️ Политика бэкапов
📖 PostgreSQL Streaming Replication (DR)
Загрузка инструкции…
♻️ Восстановление
Выберите JSON-бэкап и отметьте зоны/пользователей. Пустой выбор в режиме «только…» = все из файла.
0
Выберите JSON-бэкап
0
Выберите JSON-бэкап
—
📁 Файлы резервных копий
ФайлТипРазмерДата
⏳
📖 REST API v2
Документация по вашей роли — только для авторизованных пользователей
Загрузка…
Аутентификация: POST /auth/login → заголовок Authorization: Bearer <JWT>. Endpoints в документации соответствуют правам вашей учётной записи.
⏳ Загрузка документации…
⚙️ Настройки
Параметры по категориям — firewall, мониторинг, уведомления

🏷 White-label — ваш продукт для клиентов

Настройте шаблон DNS (NS, MX, SOA для зон ваших user), бренд (домен панели, логотип, вход) и при необходимости API v2 для биллинга. Клиенты видят ваши NS и вашу панель по вашему домену.

🌐 Возможности DNS
Шаблон DNS:

IPv4 (A-записи)

Поддержка IPv4 адресации для доменных имён

IPv6 (AAAA-записи)

Поддержка IPv6 адресации

DNSSEC

Включается для каждой зоны в «Домены → записи → Редактировать SOA». После сохранения панель вызывает pdnsutil secure-zone; DS-запись у регистратора — отдельно. Глобального переключателя нет.

GeoDNS (сервер)

Глобальное включение GeoDNS на порту :53. Только администратор. Сохраняется сразу при переключении.

Формат SOA: hostmaster.домен или hostmaster@домен — точка в конце убирается автоматически.
Одно имя NS без точки в конце. Если Master NS зоны пустой — подставится это значение.
Через запятую; лишние точки в конце имён убираются (иначе в PowerDNS возможна ошибка ns..).
Имена MX-хостов без хвостовой точки.
Только метки поддомена (www), не FQDN.
Справочно (в БД). Только IPv4/IPv6. Для AXFR — раздел NS-серверы и «Хосты панели».
💾 Сохранить для новых — только шаблон для будущих зон. ✅ Применить к существующим — добавляет недостающие NS, MX и CNAME из шаблона, обновляет SOA email / Master NS (в фоне). Для реселлера — только зоны ваших клиентов (user под вами), не чужие.
Ваш личный шаблон DNS для новых зон и опции «Применить к существующим». Пустые поля при первом открытии могут быть унаследованы от реселлера или глобальных настроек — после сохранения используются ваши значения.
🏷 Профили регистраторов (DNSSEC DS)
Webhook: POST JSON на apiUrl с полями domain, records[], registrarText. Авторизация — Bearer из секрета (если задан). Provider manual — только dry-run / копирование.
ИмяProviderURLСекрет
⏳
🔌 Plesk / ISPmanager
Секрет для заголовка X-DnsGuru-Token при POST …/integrations/plesk/dns. Plesk или ISPmanager на вашем сервере передаёт зоны и записи в эту панель. У каждого пользователя — свой токен; администратор может использовать глобальный. IP источника закрепляется за зоной; за прокси нужен TRUST_PROXY=1.
Глобальный токен администратора — для legacy-установок. Новым клиентам выдайте учётную запись user — они сгенерируют свой токен здесь.
Загрузка…
После bootstrap установите расширение DNShg DNS Integration в Plesk → Extensions. В расширении: настройки, статус синхронизации, обновление моста.
—
—
🔗 API v2 / WHMCS / биллинг
Автоматизация через REST API v2 с JWT: WHMCS, HostBill, Blesta, собственный биллинг. Создавайте конечных пользователей (role=user) — они подключают Plesk/ISPmanager со своим интеграционным токеном. Токен Plesk здесь не используется.
POST /auth/login → Authorization: Bearer <JWT>
POST /admin/users
{ "login": "client@example.com", "password": "…", "role": "user" }
GET/POST /api/v2/zones · POST /api/v2/zones/:id/records · шаблоны · GeoDNS
GET /admin/users — только user, привязанные к вашему реселлеру
🖥 Хосты панели и Nginx
Имена ниже попадают в автоматический server_name для nginx. Новый домен бренда принимается только если в DNS есть A/AAAA на указанные IP сервера (если включена проверка).
Для white-label добавьте домен в разделе «Бренд» — он автоматически попадёт в Nginx. Глобальные хосты и AXFR master настраивает только администратор.
IP этого сервера, где установлена панель (prod VDS или test). Обычно совпадает с AXFR master, если PowerDNS на том же хосте.
Prod (PDNS на :53): укажите 53. Test с GeoDNS (PDNS на :5300): 5300 или 0 (авто). NS-серверы — в разделе «NS-серверы».
🔄 Высокая доступность панели (главный + вторичный)
Главный — основная VDS с панелью и PostgreSQL (все записи идут сюда, пока он доступен). Вторичный — резервная VDS с копией БД (streaming replication). При падении главного вторичный повышается до главного (полный функционал). После восстановления главного — возврат роли и синхронизация БД.

Сейчас в интерфейсе — одна пара «главный + один вторичный». Несколько вторичных серверов можно добавить вручную на уровне PostgreSQL; автоматический failover в панели настроен на один вторичный (поля ниже).
Роль этой машины
—
где установлена эта панель
Сейчас обслуживает клиентов
—
по конфигу HA (не всегда = DNS)
PostgreSQL на этой машине
—
Запись в панели
—
Загрузка…
Настройки этого сервера
Не роль «будущего» сервера: укажите, на какой машине вы сейчас открыли эту страницу. На вторичной VDS выберите «Вторичный» и заполните данные главного ниже.
Одна A-запись для клиентов. При сбое переключите её на IP активной ноды (главный или вторичный после переключения).
Главный сервер (основная VDS)
Полный адрес, по которому доступен главный (для ping с вторичного).
Публичный IP VDS главного. Нужен для PostgreSQL replication и DNS.
Вторичный сервер (резервная VDS, один)
Может совпадать с общим hostname или быть отдельным (для проверки с главного).
Куда переключить DNS при failover, если вторичный стал активным.
Дополнительные вторичные VDS (2-й, 3-й…) в этой версии UI не ведутся — настройте их как standby в PostgreSQL вручную; failover кнопками здесь — только для одного вторичного из полей выше.
PostgreSQL (репликация между главным и вторичным)
На главном и вторичном обычно одинаковый путь.
Учётная запись PostgreSQL для streaming replication (создаётся на главном).
—
🎨 Настройка бренда
Бренд применяется к экрану входа, боковому меню и акцентным элементам панели. Для white-label сохраните профиль на домен панели — он попадёт в Nginx (server_name).
A/AAAA в DNS должны указывать на IP сервера панели.
В сайдбаре и на входе, если нет картинки логотипа.
PNG/SVG/JPG. Лучше с того же домена, что и панель.
Превью — вход
🌐
DNShg
DNShostingguru
Превью — меню
🌐
DNShg
DNShostingguru
🔐 Шифрование и безопасный импорт

Legacy import: разрешить private IP

По умолчанию импорт с другого DNSmanager блокирует частные и loopback адреса (защита от SSRF). Включайте только в dev/lab, когда источник на 10.x, 192.168.x или 127.0.0.1. В production держите выключенным.


AES-256-GCM для пароля SFTP/FTP в data/backup-config.json и чувствительных полей remote backup. Пустое поле при сохранении — не менять уже сохранённый ключ. Рекомендуется отдельная случайная строка, не совпадающая с JWT.
Шифрует сгенерированные пароли пользователей в отчётах (data/import-reports/). Если не задан — используется ключ бэкапов. Без ключа пароли в отчётах не сохраняются (только факт создания учётки).
—
🚫 Запрещенные домены
🔑 Лицензия панели
Один тариф — безлимит зон. Без активной лицензии DNS работает, но обновления панели недоступны.
Статус лицензии—
Период оплаты—
Дата истечения—
Стоимость—
—
🛡️ Безопасность и обновления
Авто-harden: UFW + Fail2Ban на master и всех активных slave (без ручной возни).
Тюнинг: sysctl, limits, nginx (worker_connections, proxy), systemd overrides для nginx/pm2, опционально PHP-FPM. Нужны права root у процесса панели (обычно pm2 под root).
—
Если «впереди 0 коммитов», а кодировка старая: на сервере ветка может называться main, а не stable — задайте DNSMGR_UPDATE_BRANCH_STABLE=main. Если git не виден: DNSMGR_REPO_ROOT=/path/to/clone (каталог с .git).
🔄 Опционально: миграция со старого DNS (не ISPmanager)
Не нужно для ISPmanager: синхронизация идёт через совместимый API (вызовы с вашего ISP). Поле DNSMGR_SOURCE_URL — только если есть отдельный старый сервер DNSmanager для разового переноса.
DNSMGR_SOURCE_USER
Обычный режим: запись зон через ISPmanager / API-адаптер, без обращения к стороннему DNSmanager. Импорт со старого DNS выключен.
📡 Синхронизация с ISPmanager master
Пример полей (подставьте свои данные мастера). Сохраняются в базу панели и дублируют DNSMGR_ISP_PULL_* в .env.
Пусто при сохранении — не менять уже сохранённый пароль.
AXFR, ISP API и доверие domain.refresh с этого IP.

Учётка этой slave-панели для вызовов с мастера (DNSMGR_ISP_SLAVE_PANEL_*):
В ISPmanager: URL https://dns2.24hg.ru, логин admin, пароль — как при входе в эту панель. После смены пароля в профиле обновите его и здесь, и в ISP.
—
🔔 Уведомления (Telegram / Email)
Сохранит настройки и отправит тест в Telegram и/или на почту

                
                
Master + все slave NS: службы, CPU/RAM/Disk, падение и восстановление.
Несколько чатов/групп: каждый ID через запятую. Узнать ID — @userinfobot
Если прямой доступ к Telegram заблокирован. Пусто — прямое подключение или DNSMGR_TELEGRAM_PROXY в .env
📡 Мониторинг служб
Проверяет PowerDNS, Nginx, PostgreSQL, API (pm2) на master и PDNS+SSH на каждом slave. Отчёт — ниже.
—
🛡 Firewall и anti-abuse
—
📥 Миграция с DNSmanager 5/6
Массовый импорт зон, записей и учётных записей через HTTP API старой панели (domain, domain.record, user, reseller, admin). Импорт выполняется в фоне — можно закрыть страницу; лог и история задач сохраняются на сервере.
Пароли из DNSmanager через API недоступны — каждому новому пользователю назначается сильный случайный пароль (20 символов). Отчёт с логинами и паролями сохраняется ниже и доступен позже.
—
—
📋 Лог импорта
Лог появится после запуска импорта в фоне.
📄 Отчёты импорта (логин / пароль)
Загрузка…
🗂 История задач импорта
—
💾 Бэкапы и DR
Удалённое хранилище, ротация, восстановление и статус PG streaming replica — в разделе «Резервные копии» в меню. Здесь — краткая справка по DR.
Загрузка…
ℹ️ О системе
DNShg — DNShostingguru v2.3.97 · stable
Backend: NestJS + TypeORM + PostgreSQL
DNS-backend: PowerDNS (gpgsql, PostgreSQL)
Node.js: 20.20.2
🔁 Обратные зоны (rDNS)
PTR-записи
ℹ️ Здесь отображаются только reverse-зоны (.in-addr.arpa и .ip6.arpa). Клик по зоне открывает записи.
ЗонаMaster NSTTLЗаписейAPI IP
⏳
🌐 Добавить домен
При выборе шаблона стандартные NS/MX/CNAME не добавляются — только записи из шаблона.
👤 Добавить пользователя
✏️ Редактировать пользователя
DNS-записи и PowerDNS не меняются — меняется только владелец в панели.
↪ Перенос зон на другой аккаунт
Выбрано зон: 0. Записи в DNS и PowerDNS остаются без изменений.
📝 Редактировать запись
👤 Настройки пользователя
🔗 Добавить NS-сервер
DS-записи

    
📤 Отправить DS
Сначала проверьте dry-run — запрос не уйдёт, покажет payload.
🔑 Токен интеграции Plesk
Токен показывается один раз. Сохраните его в dnshg-plesk.ini на сервере Plesk или передайте в команду установки ниже.
Предпросмотр обновления
🖥️ Live-лог
Ожидание лога...
📈 Нагрузка slave

    
    
■ CPU ■ RAM ■ Disk
Выбор зоны GeoDNS
⏳
📥 Выбор для импорта
—
👤 Учётные записи
—
🌐 Зоны
—
📋 Шаблон
ИмяТипЗначениеTTLPri
⏳
✏️ Редактировать шаблон
NS и SOA при сохранении отфильтровываются. Формат как при создании из JSON.
📋 Клонировать GeoDNS-правила
Дубликаты (host+страна+город) в целевой зоне обновятся (upsert).
📄 Отчёт импорта пользователей
—
Имя пользователяПарольРольДействие
⏳
📊 Лимиты реселлера