Это утилита для автоматического назначения A записи для доменов BeGet. На запуске она определяет текущий внешний IP адрес, проходится по доменам и меняет A-запись на текущий IP.
Лицензия: MIT.
Домены, для которых нужно сконфигурировать приложение должны быть в подзоне, и у них должен быть одна A запись.
Возможны и записи других типов:
TXT
,MX
, прочие... ноA
запись должна быть только одна!
Не важно какую A запись вы создадите, приложение её перезатерёт. Поэтому можно смело делать A запись на что угодно, например
1.1.1.1
Домены, для которых нужно сконфигурировать приложение должны быть в "моих доменах" (после редактирования DNS их можно туда просто добавить).
Склонируйте репозиторий на компьютер/сервер, чей внешний айпи нужно назначить для днс-записи доменов.
Зайдя в каталог с репозиторием, запустите npm install
для установки зависимостей проекта.
Для конфигурации приложения (обязательно) нужно создать файл .config.json
в корне репозитория. Пример:
{
"login": "amogus228", // ваш логин в beget
"password": "123456", // ваш пароль в beget
"domains": ["gallery.vy.ru.net", "src.vy.ru.net"] // список доменов для смены IP адресов
}
Каждое поле в конфиге обязательно должно присутствовать. В том числе, ваш логин и пароль!
Логин и пароль указывать в тексте и хранить его на жестком диске крайне не безопасно! Но наличие их является требованием для работы с Beget.API. Поэтому, при запуске приложения на сервере/на компьютере сделайте всё возможное, чтобы ни один пользователь, ни одна мальварь на вашей железяке не смогла дотянуться до файла конфигурации, кроме текущего приложения!
Комментарии в JSONе выше представлены для понятности. Их нужно удалить при создании конфигурации!
Чтобы проверить, что всё работает, и конфигурация указана верно, нужно запустить команду из корня репозитория: node ./index.js
. Если всё прошло успешно, программа выдаст all records updated successfully
. Иначе - подробное сообщение об ошибке.
Может возникнуть ошибка: приложение ругается на IPv6 адрес. Пока что фича с IPv6 не имплементирована, приложение не умеет с ним работать. Поэтому пока что следует выключать IPv6 в настройках у вашего интернет провайдера!
Поскольку нужно менять A-запись динамично, при каждой смене внешнего IP адреса, программа должна запускаться с каким-то интервалом постоянно. Самый простой способ для этого - cron
.
Допустим, репозиторий находится в каталоге /root/dynamic-dns-beget
, тогда запускаем crontab -e
, и прописываем строчку:
*/5 * * * * node /root/dynamic-dns-beget/index.js
Готово!
Логи приложения можно чекать в каталоге с репозиторием в папке logs
.