Почему профиль OpenVPN работает дома, но не работает в отеле
Тот же профиль, другая сеть: портал входа, отфильтрованный порт UDP, пересекающаяся подсеть или APN только с IPv6 могут остановить туннель ещё до запуска.
Офисный Wi-Fi и гостиничный номер могут дать одному и тому же ноутбуку две совершенно разные сети, а профиль между ними об этом ничего не знает. То, что работает дома, предполагает снисходительный восходящий канал, работающее разрешение имён и локальную подсеть, не пересекающуюся с тем, что несёт туннель. Каждое из этих допущений может отказать отдельно.
Полезный способ отладки — рассматривать сеть как четыре отдельных факта и затем проверять их по порядку. Догадки о профиле в первую очередь обычно дают изменение, которое ничего не исправляет и скрывает доказательства.
Четыре сетевых факта меняются между местами
Первый факт — выпускает ли локальная сеть вас вообще наружу. Портал входа пускает устройство на страницу входа и блокирует всё остальное, пока эта страница не завершена, то есть туннель не может начаться, каким бы правильным ни был профиль.
Второй — разрешение имён. Портал, перехватывающий DNS, отвечает на каждый запрос своим адресом, поэтому имя хоста VPN разрешается в портал, и клиент пытается построить туннель к веб-странице.
Третий — фильтрация транспорта. Сети, которые хотят разрешать только просмотр, пропускают TCP 443 к произвольным назначениям и отбрасывают почти всё остальное, включая UDP.
Четвёртый — адресация. Локальная подсеть может пересекаться с сетью за туннелем, или восходящий канал вообще не даёт пригодного пути IPv4.
Разрешение имён и портал входа
Замените имя хоста в профиле на числовой адрес сервера и повторите попытку. Если IP соединяется, а имя нет, виновато разрешение имён, а сам профиль в порядке.
Откройте браузер и попробуйте обычную HTTP-страницу, прежде чем трогать VPN. Перенаправление на страницу входа означает, что портал ещё не пройден; завершите его и затем подключитесь снова. Многие отели также завершают сеанс через несколько часов, что выглядит как обрыв среди дня, а не как проблема входа.
Если числовой адрес тоже не работает, разрешение имён не объяснение, поэтому переходите к транспорту. Сохраните проверенный адрес, потому что он скажет следующей проверке, покидали ли пакеты машину вообще.
Фильтрация транспорта: сначала UDP, TCP 443 как резерв
Поток OpenVPN через UDP 1194 не похож ни на что, что узнаёт гостиничный межсетевой экран, поэтому отбрасывается без ошибки. Клиент повторяет попытки, пока не истечёт его тайм-аут, и пользователь видит соединение, которое так и не устанавливается, вместо отказа. Межсетевые экраны, ведущие себя так, редко журналируют отбрасывание там, где это видно. Отсутствие отказа само по себе является подсказкой.
TCP 443 — надёжный резерв, потому что сеть не может отличить его от обычного HTTPS. Используйте TCP-профиль оператора, если он есть, так как сервер тоже должен слушать на этом транспорте и порту; изменение только клиента даёт другой вид сбоя. Если TCP-профиля нет, спросите оператора, а не изобретайте его, редактируя порт. Серверная сторона должна согласиться, и несоответствие снова выглядит как проблема межсетевого экрана.
Ожидайте цену в производительности. TCP внутри TCP усиливает повторные передачи на канале с потерями, поэтому работающий TCP-туннель может всё равно казаться медленным в перегруженной гостиничной сети. Это обмен на доступность, а не дефект, за которым нужно гнаться.
Конфликты адресов и восходящие каналы без IPv4
Туннель может установиться и всё равно ничего не передавать. Когда локальная LAN и удалённая сеть делят префикс вроде 192.168.1.0/24, клиент считает удалённый хост подключённым напрямую и отправляет пакет в локальное звено вместо туннеля. Симптом — успешное подключение с одной недоступной подсетью, что легко прочитать неправильно как проблему маршрута на стороне сервера.
Постоянное исправление — перенести удалённую LAN в необычный частный диапазон. Выбор диапазона, который никто не использует дома, например 10.42.0.0/24, предотвращает проблему для каждого будущего места, а не для одного. Локальное обходное решение — избегать того отеля, точки доступа или маршрутизатора, что вовсе не исправление.
Мобильные восходящие каналы добавляют два варианта. NAT на уровне оператора означает, что входящие соединения не доходят, что важно, если вы размещаете сервер, но не для исходящего клиента. APN, настроенный только с IPv6 и трансляцией NAT64, может подвести клиента, который требует настоящего пути IPv4, и обычное средство — сменить протокол APN на IPv4 или двойной стек.
Симптомы после поднятия туннеля
Туннель, который подключается и затем замолкает, обычно имеет проблему с keepalive или MTU, а не с заблокированным портом. Соединение, падающее через фиксированное число минут, указывает на таймер keepalive или пересогласования. Настройте клиент проверять своего партнёра и перезапускаться, когда ответы прекращаются, и проверьте меньший MTU туннеля, если пинг проходит, а большие передачи стоят.
Прежде чем просить о помощи, запишите три вещи: адрес, который вы пробовали, и ответил ли он, транспорт и порт, которые вы использовали, и локальную подсеть сети, которая отказала. Вместе они отделяют разрешение имён от фильтрации транспорта и от конфликта адресов, и это причины, которые выдерживают столкновение с доказательствами.