Хостим приложения с динамическим IP
Проблема динамического IP в том, что для работы сайта или веб приложения нужно следить за тем, чтобы домен всегда указывал на актуальный адрес, иначе сайт будет недоступе н.
Я столкнулся с этой проблемой, когда настраивал доступ к Raspberry Pi по SSH.
Решение лежит в регулярной актуализации IP, на который указывает домен, но большинство DNS провайдеров не предоставляют возможности управлять записями через API или это не практично в некоторых случаях
Бесплатный сервис DuckDNS предоставляет поддомен и простейший API к нему, через который каждые 5 минут мы будем актуализировать IP
После авторизации создайте любой поддомен и обратите внимание на token, указанный сверху той же страницы. Вы можете указать этот поддомен в качестве CNAME записи (зеркала) своего основного домена, если не хотите пользоваться выданным
Настройка
Полностью процесс описан здесь. Вкратце, что нужно сделать:
- Логинимся на сервере по SSH
- Создаем скрипт для обновления IP
mkdir ~/duckdns && cd ~/duckdns && touch duck.sh
- Заменив exampledomain и token, помещаем вот такую команду в свежесозданный файл:
echo url="https://www.duckdns.org/update?domains=exampledomain&token=a7c4d0ad-114e-40ef-ba1d-d217904a50f2" | curl -k -o ~/duckdns/duck.log -K -
(сделать это можно через echo 'command' > duck.sh) - Делаем файл исполняемым через
chmod 700 duck.sh
- Заставляем выполняться каждые 5 мин, добавив в планировщик
crontab -e
- Вставляем туда
*/5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1
- Запускаем планировщик
sudo service cron start
Проверяем
- Выполняем
bash ~/duckdns/duck.sh
- Должны увидеть OK (KO, если ошибка)
- Если видим KO, то убеждаемся, что в файле верно указали token и domains
- Иначе открываем командную строку и пробуем ping поддомен. duckdns.org. Должен отобразиться IP сервера. Если так, то можем подключаться к SSH, используя поддомен вместо IP
Если вы используете CloudFlare, то можете применить этот API метод вместо использования DuckDNS.