Сеть
Dynamic DNS — DDNS для self-host VPN с динамическим IP
Сервис, автоматически обновляющий DNS-запись при смене IP. Критичен для self-host VPN-серверов на домашних роутерах. DuckDNS, No-IP, Cloudflare API, Yandex Cloud DNS.
Определение
Dynamic DNS (DDNS) — сервис, автоматически обновляющий DNS A-запись при смене IP-адреса клиента. Используется на хостах, которые не имеют статического IP (домашние интернет-подключения, мобильный 4G, ряд VPS-провайдеров). Клиент периодически (раз в 5 минут или по событию смены IP) запрашивает у DDNS-провайдера API-апдейт записи home.example.com → новый IP.
В контексте self-host VPN DDNS позволяет хранить устойчивое имя для подключения, даже если провайдер ротирует выданный IP каждые сутки/неделю.
Как работает
- Регистрация: создаёшь поддомен у DDNS-провайдера (например,
mihail-vpn.duckdns.orgна DuckDNS). - Получение токена: сервис выдаёт API-token для аутентификации updates.
- Установка update-клиента:
- На роутере: встроенная функция (OpenWrt, ASUS Merlin, Mikrotik — все имеют).
- На Linux-сервере:
ddclient, кастомный bash-скрипт через curl + cron. - На VPS: cron + curl с API endpoint провайдера.
- Обновление: клиент шлёт HTTP GET/POST с токеном и текущим IP. Сервер DDNS обновляет A-запись.
- TTL: обычно низкий (60-300 сек), чтобы изменения распространялись быстро.
DDNS-провайдеры (2026)
| Провайдер | Бесплатный tier | Свой домен | Notes |
|---|---|---|---|
| DuckDNS | Да, 5 поддоменов | Нет | Легендарный free, API простой |
| No-IP | 1 поддомен, требует подтверждение раз в 30 дней | Pro tier | Старый, надёжный |
| Cloudflare API | Бесплатно, если домен в Cloudflare | Свой домен обязателен | Лучший вариант если уже на CF |
| Yandex Cloud DNS | Свой домен на Yandex Зоне | Бесплатно в рамках Yandex DNS | РФ-friendly, но требует Yandex-аккаунт |
| deSEC.io | Бесплатно с DNSSEC | Поддомен у deSEC или свой | Берлинский некоммерческий |
| dynv6.net | Бесплатно, IPv6-friendly | Поддомен | Хорош для IPv6-only setups |
Использование в self-host VPN
Сценарий: дом → роутер → подключение к OpenVPN/WireGuard серверу, работающему дома на NAS или Mini-PC, к нему хочешь подключаться из города.
- Настройка DDNS на роутере →
home.duckdns.orgвсегда показывает текущий public IP. - VPN-сервер слушает UDP:51820 (WG), TCP:1194 (OpenVPN).
- На роутере port forwarding WAN:51820 → LAN:51820.
- На VPN-клиенте: endpoint =
home.duckdns.org:51820. - Клиент сам перерезолвит имя если IP сменился (но WG не делает re-resolve при потере handshake — нужен
PersistentKeepaliveили ручной reconnect).
DDNS и WireGuard
Подводный камень: WireGuard НЕ делает re-resolve endpoint после первого DNS-запроса. Если IP сменится — туннель «зависнет», ожидая ответ от старого IP.
Решения:
- Bash-script на клиенте: при потере handshake более 60 сек —
wg-quick down && wg-quick up. - wireguard-tools v1.0.20210914+: добавлена опция
Endpoint = home.duckdns.org:51820— re-resolve при reconnect. - systemd-networkd:
EndpointResolveType=(Linux).
DDNS и приватность
- DDNS-провайдер видит ваш public IP. Если использовать noip или duckdns с реальным email/аккаунтом — DDNS-оператор знает связь «вы → этот IP».
- DNS-запросы при resolve hostname видны вашему провайдеру (если без DoH/DoT).
- Лучший пример приватности: Cloudflare с anonymous API-token, либо self-host BIND9 + nsupdate.
Альтернативы для self-host VPN
- Static IP от провайдера: 50-300₽/месяц обычно. Полностью устраняет DDNS.
- VPS с публичным IP: stop-host для VPN-сервера на DigitalOcean/Hetzner — 5$/мес. IP не меняется.
- Tailscale / ZeroTier: mesh-VPN с собственным relay-fallback’ом. Hostname резолвится через их сервис. Полностью обходит DDNS.
- IPv6: если провайдер даёт IPv6-prefix (большинство РФ-домашних 2025+) — он часто статический. Меньше нужно DDNS.
В России 2026
- DuckDNS, No-IP: не блокируются. Работают.
- Cloudflare: домен на CF — рабочая опция, но сам Cloudflare IP периодически попадает в РКН-blocklist (см. историю с CF-proxy в 2022). DNS-only mode + Yandex DNS как backup.
- Yandex Cloud DNS: РФ-вариант, юридически чист.
Источники
- DuckDNS — официальный сайт.
- Cloudflare DNS API.
Связанные термины
- Bridge mode — связанная проблема при self-host setup.
- NAT traversal — другая часть self-host puzzle.
- Split tunneling — часто нужно для home-VPN.
- WireGuard — основной протокол для self-host.
- OpenVPN — альтернатива WG для self-host.