Перейти к содержимому
WebShield Docs

Динамический IP (DynDNS)

Как держать DNS-запись домена в WebShield привязанной к меняющемуся адресу домашнего сервера или роутера.

Домашний интернет обычно выдаёт адрес на время: перезагрузили роутер — адрес другой. Динамический DNS решает это так: устройство само сообщает нам свой текущий адрес, а мы обновляем запись. Работает привычный протокол dyndns2 — его понимают Keenetic, MikroTik, ASUS, OpenWrt, ddclient и UniFi. Для всего остального хватит одной команды в cron или в планировщике Windows.

Домен должен быть делегирован на наши NS-серверы.

Настройка конкретных роутеров, Linux и Windows, а также разбор SSH за проксированием — в руководстве Домашний сервер на динамическом адресе.

  1. Откройте Личный кабинет → DNS нужного домена.
  2. В карточке Динамический IP нажмите Добавить имя и введите короткое имя — например home.
  3. Скопируйте токен. Он показывается один раз: потерянный не восстанавливается, выпускается новый.

Записи A/AAAA появятся после первого обновления — до него имя не резолвится.

В разделе DynDNS роутера выберите произвольный сервис (Custom, «Другой», dyndns2) и укажите:

Поле Значение
Сервер / Service dyn.webshield.pro
Имя пользователя имя хоста, например home.example.com
Пароль выпущенный токен

Если прошивка просит полный адрес обновления, подойдёт стандартный путь:

https://dyn.webshield.pro/nic/update?hostname=home.example.com&myip=<IP>

Роутер обращается к нам при смене адреса. Понадобится HTTPS — обновление по незащищённому HTTP мы не принимаем, иначе токен уходил бы по сети открытым текстом.

Если устройство за NAT и своего внешнего адреса не знает — не указывайте его вовсе. Мы возьмём адрес, с которого пришёл запрос:

Окно терминала
curl -fsS "https://dyn.webshield.pro/update?token=ВАШ_ТОКЕН"

Раз в 5–10 минут более чем достаточно:

*/10 * * * * curl -fsS "https://dyn.webshield.pro/update?token=ВАШ_ТОКЕН" >/dev/null

В планировщике Windows та же команда:

Окно терминала
Invoke-RestMethod "https://dyn.webshield.pro/update?token=ВАШ_ТОКЕН"

Ответ OK <адрес> означает, что запись обновлена, KO <причина> — что нет.

Узнать свой внешний адрес отдельно: curl https://dyn.webshield.pro/ip.

Параметр Значение
myip / ip адрес IPv4 или IPv6 (можно оба через запятую)
myipv6 адрес IPv6
hostname имя хоста; необязательно — токен и так привязан к одному имени

Адреса семей независимы: обновление только по IPv4 не удаляет запись AAAA.

Принимаются только публичные адреса. 192.168.*, 10.*, адреса из диапазона операторского NAT и тому подобные мы отклоняем — в публичном DNS от них нет пользы.

Ответ Что значит
good <адрес> адрес принят и записан
nochg <адрес> адрес тот же, ничего менять не потребовалось
badauth токен неверный или не передан
nohost имя не совпадает с тем, для которого выпущен токен, или обновления выключены
dnserr адрес не похож на публичный IP
911 обновлений было слишком много, повторите позже

Ограничение — 10 смен адреса за 10 минут на имя. Повторы с тем же адресом (а именно так выглядит перезагрузка роутера) в этот счёт не идут, поэтому перезагружать устройство можно спокойно.

Имя с динамическим адресом можно включить в проксирование (CDN и защита) — тогда посетители приходят на наш edge, а мы обращаемся к вашему серверу по текущему адресу. Так домашний адрес не виден в DNS, а на самом сервере можно закрыть доступ всем, кроме наших адресов. Сертификат для имени выпускаем мы, открывать 80-й порт наружу не нужно.

После смены адреса переключение занимает до минуты.

  • badauth — токен скопирован не полностью или уже перевыпущен. Выпустите новый в карточке и пропишите его в устройстве.
  • nohost — в роутере указано другое имя хоста либо имя выключено в панели.
  • Запись не появляется — проверьте, что домен делегирован на наши NS и что устройство действительно обращается к dyn.webshield.pro по HTTPS.