Дашборд
Сервер панели, нагрузка и журнал изменений
Обзор
🌐
—
Зоны
📝
—
Записи
📦
2.3.130
Версия · testing
⏱
—
Время сервера
Быстрые действия
Разделы
Последние операции
⏳ Загрузка…
Нагрузка сервера
Хост с панелью (Linux). PPS — суммарный RX+TX по интерфейсам (без loopback).
CPU—
загрузка, %
RAM—
занято, %
Диск /—
использовано, %
Сеть—
пакетов / с
Кластер NS
⏳
Что нового
⏳ Загрузка…
🌐 Домены
Зоны и записи
🌐
—
Всего зон
📝
—
Записей
🔗
—
NS-серверов
👤
—
Пользователей
| Домен | Владелец | Master NS | SOA Email | TTL | Serial | Записей | API IP | ||
|---|---|---|---|---|---|---|---|---|---|
| ⏳ Загрузка... | |||||||||
📝 DNS-записи
Выберите домен
⚙️ Параметры зоны
Домен
—
Master NS
—
Serial
—
TTL
—
SOA Email
—
DNSSEC
—
Сервер интеграции (Plesk / ISPmanager)
—
IP с правами API:
+ добавление, ~ изменение, - удаление, * полная замена зоны. Несколько IP через запятую или в редакторе ниже.| Имя | Тип | Значение | TTL, сек | Дополнительно | |
|---|---|---|---|---|---|
| Выберите домен | |||||
👤 Пользователи
Учётки и роли
| Логин | Роль | Реселлер (ID / имя) | Домены | Статус | Создан | ||
|---|---|---|---|---|---|---|---|
| ⏳ | |||||||
Реселлеры
Лимиты и биллинг
| ID | Логин | Макс. зон | Макс. записей | Макс. юзеров | Баланс | Тариф/мес | |
|---|---|---|---|---|---|---|---|
| ⏳ | |||||||
🔗 NS-серверы (Slave)
Добавьте NS — панель настроит allow-axfr и NOTIFY на master (этот сервер или ISP/Plesk — откуда зона) и AXFR на slave. Синхронизация зон — автоматически.
🛰 Состояние кластера DNS
⏳ Загрузка состояния кластера…
📜 События синхронизации
| Время | Домен | Действие | Serial | NS |
|---|---|---|---|---|
| ⏳ | ||||
| Имя | IP-адрес | Здоровье | Последняя sync | Нагрузка | Действия |
|---|---|---|---|---|---|
| ⏳ | |||||
📡 GeoDNS
Ответы по стране / городу
⚙️ Статус GeoDNS-сервера
⏳
📌 Зона для редактирования GeoDNS
Текущая зона
Зона не выбрана
Нажмите «Выбрать зону…» — выбор сохраняется отдельно от раздела «Домены». Список обновляется кнопкой «Обновить список».
🌍 Правила маршрутизации
—
Фильтр:
⏳
🧪 Тестер (хост + страна + область/город)
Приоритет: город → область → страна → A зоны. Для live DNS нужен
GEOLITE2_CITY_MMDB.➕ Новое правило
📋 Шаблоны зон
Наборы записей для новых зон
➕ Создать шаблон из зоны
В шаблон попадают все записи зоны, кроме NS и SOA.
📝 Создать шаблон из JSON
📚 Сохранённые шаблоны
| Имя | Записей | Создан | Действия | |
|---|---|---|---|---|
| ⏳ | ||||
🔐 Журнал входов
IP, браузер, дата и результат авторизации
| Дата и время | Логин | Роль | IP | Браузер | Результат |
|---|---|---|---|---|---|
| ⏳ | |||||
🐞 Баг-репорты
Входящие отчёты с панелей на dns2.24hg.ru
| Дата | Статус | Заголовок | Панель | Отправитель | |
|---|---|---|---|---|---|
| ⏳ | |||||
📜 Журнал операций
История изменений
⏳
📈 Статистика
Зоны, записи, PDNS
🌐
—
Зон
📝
—
Записей
👤
—
Пользователей
🔗
—
Slave NS
🔍 Состояние PowerDNS
⏳
🔐 DNSSEC
Подпись зон и DS для регистратора
🌐
—
Зон проверено
✅
—
Подписано
⏳
—
Ожидание
○
—
Без DNSSEC
Зоны
| Домен | Статус | DS | Действия |
|---|---|---|---|
| ⏳ | |||
💾 Резервные копии
Снимки, FTP/SFTP, ротация, восстановление
📁 Каталог бэкапов
Зон: — · Записей: — · Пользователей: —
—
🐘 PostgreSQL
—
☁️ Удалённое хранилище (S3 / SFTP / FTP)
Секреты хранятся в
data/backup-config.json в зашифрованном виде. Ключ: Настройки → Безопасность → Шифрование или DNSMGR_BACKUP_ENC_KEY.—
⚙️ Политика бэкапов
📖 PostgreSQL Streaming Replication (DR)
Загрузка инструкции…
📖 REST API v2
Эндпоинты, curl, OpenAPI
Загрузка…
1)
POST /auth/login → JWT · 2) заголовок Authorization: Bearer … · 3) вызывайте /api/v2/…. Документация и OpenAPI зависят от роли (admin / reseller / user).⏳ Загрузка документации…
⚙️ Настройки
DNS, панель, безопасность, HA
🌐 DNS
IPv4 (A-записи)
A-записи
IPv6 (AAAA-записи)
AAAA-записи
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 (в фоне).
🏷 Профили регистраторов (DNSSEC DS)
Webhook: POST JSON на
apiUrl с полями domain, records[], registrarText. Авторизация — Bearer из секрета (если задан). Provider manual — только dry-run / копирование.| Имя | Provider | URL | Секрет | |
|---|---|---|---|---|
| ⏳ | ||||
🔌 Plesk / ISPmanager
Секрет для заголовка
X-DnsGuru-Token при POST …/integrations/plesk/dns. Plesk или ISPmanager на вашем сервере передаёт зоны и записи в эту панель. У каждого пользователя — свой токен; администратор может использовать глобальный. IP источника закрепляется за зоной; за прокси нужен TRUST_PROXY=1.Загрузка…
После 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 · шаблоны · GeoDNSGET /admin/users — только user, привязанные к вашему реселлеру
🖥 Хосты панели и Nginx
Имена ниже попадают в автоматический
server_name для nginx. Новый домен бренда принимается только если в DNS есть A/AAAA на указанные IP сервера (если включена проверка).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 в панели настроен на один вторичный (поля ниже).
Сейчас в интерфейсе — одна пара «главный + один вторичный». Несколько вторичных серверов можно добавить вручную на уровне 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
DNS Hosting Guru DEV
Превью — меню
🔐 Шифрование и безопасный импорт
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 работает, но обновления панели недоступны.
Статус лицензии—
Период оплаты—
Дата истечения—
Стоимость—
—
🛡️ Безопасность и обновления
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.130 · testing
Backend: NestJS + TypeORM + PostgreSQL
DNS-backend: PowerDNS (gpgsql, PostgreSQL)
Node.js: 20.20.2
🔁 Обратные зоны (rDNS)
PTR-записи
ℹ️ Здесь отображаются только reverse-зоны (
.in-addr.arpa и .ip6.arpa). Клик по зоне открывает записи.| Зона | Master NS | TTL | Записей | API IP | |
|---|---|---|---|---|---|
| ⏳ | |||||