Ошибка OpenVPN: Link remote address is not known (DNS resolution failed)
- Клиент завершает попытку соединения с логом:
RESOLVE: Cannot resolve host address: vpn.example.com:1194 (Name or service not known). - В журнале фиксируется:
Link remote address is not known. - Клиент циклически перезапускается без отправки первого UDP/TCP пакета.
- Проблема проявляется при загрузке системы до инициализации Wi-Fi/Ethernet или при сбое локального DNS-сервера.
1. Проверка разрешения доменного имени вручную
Проверьте, отвечает ли системный DNS-резолвер на запросы адреса вашего сервера:
# Linux
resolvectl query vpn.example.com
nslookup vpn.example.com 1.1.1.1
# Windows (PowerShell)
Resolve-DnsName -Name "vpn.example.com" -Server 8.8.8.82. Настройка устойчивости к сетевым задержкам в .ovpn
Добавьте директивы для бесконечного повтора DNS-запросов и привязки к IPv4:
# Не падать при первой неудаче DNS, а повторять попытки бесконечно
resolv-retry infinite
# Принудительно запрашивать A-записи (IPv4) вместо AAAA (IPv6)
proto udp4
# или proto tcp43. Указание резервных IP-адресов или нескольких директив remote
OpenVPN поддерживает перебор адресов серверов в случае отказа основного:
remote vpn-primary.example.com 1194
remote vpn-backup.example.com 1194
remote 198.51.100.25 1194
remote-random4. Исправление задержки старта systemd службы
Если OpenVPN стартует раньше, чем сетевой интерфейс получает IP от DHCP:
# Редактирование зависимости юнита
systemctl edit openvpn-client@client.serviceВставьте:
[Unit]
After=network-online.target systemd-resolved.service
Wants=network-online.target Частые вопросы (FAQ)
Почему прямое указание IP в remote решает проблему?
Прямой IP-адрес исключает шаг DNS-резолвинга через системный сокет glibc, предотвращая сбой при еще не поднятом сетевом интерфейсе.
Что делает директива remote-random?
Она заставляет клиент случайно перемешивать список директив remote для балансировки нагрузки между несколькими точками входа VPN.
Как указать нестандартный DNS сервер только для резолвинга remote хоста?
Сам OpenVPN использует системный резолвер ОС. Для использования конкретного DNS настройте его в параметрах сетевого адаптера или /etc/resolv.conf.
Может ли брандмауэр блокировать DNS запросы OpenVPN?
Да, если локальный файрвол (ufw/iptables/Windows Defender) блокирует исходящий UDP порт 53 для пользователя openvpn.