Основанный на событиях Vert.x сервис DNS-разрешения, который поддерживает динамическое обновление DNS (DDNS), автоматически получает общедоступный IPv4 или IPv6 адрес устройства или использует пользовательский IP-адрес и разрешает его в соответствующий сервис доменных имён.
Программа предоставляет API-операции для управления записями DNS на платформах Alidns, Dnspod, Cloudflare и Huawei Cloud. Она позволяет удалённо создавать, изменять и удалять записи DNS, что избавляет от необходимости каждый раз заходить в панель управления каждого провайдера. Если вам нужна эта программа, возможно, вы используете домашний сервер или NAS и нуждаетесь в динамическом разрешении доменных имён, или не хотите каждый раз входить в панель управления DNS провайдера (например, если вы не обязательно хотите, чтобы домен указывал на ваш локальный IP), то эта программа может быть вам полезна.
> Нет необходимости устанавливать среду выполнения Java, но она не помешает, если уже установлена.
>
> <img alt="Последняя версия" src="https://img.shields.io/github/v/release/gngpp/vertx-ddns.svg?logo=github&style=flat-square">
```shell
# Скачать последнюю версию пакета, где {{version}} — номер версии, а {{runtime-version}} — версия среды выполнения. Дополнительные ссылки для скачивания см. на странице https://github.com/gngpp/vertx-ddns/releases
wget https://github.com/gngpp/vertx-ddns/releases/download/{{version}}/{{runtime-version}}.zip
# Например, выберите версию v1.0.4 и среду выполнения runtime-17-temurin-linux
wget https://github.com/gngpp/vertx-ddns/releases/download/v1.0.4/runtime-17-temurin-linux.zip
# Если нет прокси, можно использовать ускоряющее зеркало
wget https://github91chifun.workers.dev/https://github.com//gngpp/vertx-ddns/releases/download/{{version}}/{{runtime-version}}.zip
# Распаковать пакет установки
unzip ddns-runtime.zip
# Установить
cd ddns-runtime
chmod +x ./install.sh
sudo ./install.sh
# Удалить
cd ddns-runtime
chmod +x ./uninstall.sh
sudo ./uninstall.sh
```
> Если среда выполнения Java уже установлена, этот шаг можно пропустить.
```shell
# Импорт ключа GPG AdoptOpenJDK
wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -
# Импорт репозитория DEB
sudo add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/
# Если терминал выдаёт ошибку «Command not found», выполните следующие команды:
* linux/amd64,
* linux/arm64/v8,
* linux/arm/v7,
* linux/ppc64le,
* linux/s390x.
**Дополнительная информация:** https://hub.docker.com/r/zf1976/vertx-ddns/tags.
Предлагаются четыре тега: latest, debian, ubuntu, alpine.
`ubuntu — OpenJ9-16`, `debian:buster-slim — OpenJ9-16`, `alpine — OpenJDK-17`. Это три базовых образа системы с соответствующими JRE Runtime для образов программ. Все они были упрощены с помощью jlink, что значительно уменьшило размер образов. Использование OpenJ9 позволяет эффективно уменьшить использование памяти во время выполнения ([официальный сайт](https://how-to.vertx.io/openj9-howto/)).
Четыре размера тегов образов: alpine < debian < ubuntu < latest. В реальности, версия 17 runtime лучше всего контролирует память и возвращает её операционной системе.
Поддерживается режим хоста, и не требуется выполнять сопоставление портов (одновременно поддерживаются IPv4 и IPv6).
Если каталог хоста не подключён, при удалении контейнера конфигурация также будет удалена.
Откройте в браузере http://ip:8081, войдите и измените конфигурацию (по умолчанию имя пользователя и пароль: vertx).
После извлечения образа и запуска программы она будет автоматически перезапускаться при перезагрузке системы.
```shell
docker run -d -p 8081:8080 --name vertx-ddns --restart=always zf1976/vertx-ddns:latest
Конфигурация не будет потеряна после удаления контейнера, если подключить каталог хоста. Можно заменить /root/.vertx_ddns
на пользовательские права root по умолчанию, а файл конфигурации сделать скрытым.
docker run -d -p 8081:8080 --name vertx-ddns --restart=always -v /your_path:/root/.vertx_ddns zf1976/vertx-ddns:latest
Чтобы подключить файл журнала к хосту, добавьте параметр -v /your_path:/vertx-ddns/logs
.
Убедитесь, что у вас есть среда разработки JDK16+. Проект использует Gradle 7.x, но вы можете использовать любую другую версию, если она установлена.
# Linux/Unix
./gradlew shadowJar
# Windows, используйте Terminal, замените '/' на '\' в cmd
./gradlew.bat shadowJar
В настоящее время поддерживается временное взаимодействие с тремя службами вебхуков: Lark, DingTalk и Server Sauce.
Анализируются изменения состояния записей журнала (успех, сбой, ошибка), и вызывается предоставленный API вебхука.
Содержимое сообщения поддерживает переменные шаблона. Если содержимое сообщения пусто или система отправляет ошибку, то отправляется содержимое журнала анализа по умолчанию.
Переменная | Описание |
---|---|
#provider | DNS-провайдер |
#sourceIp | Исходный IP |
#targetIp | Изменённый IP |
#time | Время разрешения |
#status | Состояние разрешения: без изменений, сбой, успех, ошибка |
#domain | Доменное имя |
Пример:
DNS Provider: #provider, Status: #status —> DNS Provider: ALIYUN, Status: 2021-08-28 15:14:01.
По умолчанию логин: vertx. Windows и macOS не поддерживают режим хоста Docker. По умолчанию внешний доступ запрещён. Чтобы разрешить его, отредактируйте файл $HOME/.vertx_ddns/secure_config.json и установите значение поля notAllowWanAccess равным false, затем перезапустите службу.
Проект vertx-ddns всегда разрабатывался в интегрированной среде разработки IntelliJ IDEA Ultimate под эгидой компании JetBrains. Разработка основана на бесплатных лицензиях JetBrains Open Source(s), которые предоставляются бесплатно. Я выражаю свою благодарность.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )