Большинство людей считают, что файл .ovpn настраивает VPN. Это не так: он настраивает один клиент, и всё, что он запрашивает, должно уже существовать на другой стороне. Изменение строки в файле может изменить то, что пытается сделать ваша машина, но никогда — то, что предлагает сервер. Именно это различие объясняет большую часть путаницы вокруг профилей, которые не импортируются или не подключаются.

Читайте файл как список запросов, адресованных вашему клиенту, и большинство его строк станут очевидными.

Файл описывает ваш клиент, а не сервер

Профиль объединяет remote конечную точку, транспорт, тип интерфейса, материал идентичности и любое поведение на стороне клиента, которое хочет оператор. Каждая строка выполняется клиентом при запуске. Ни одна из них не попадает на сервер как изменение конфигурации, и ни одна не может создать слушателя, который ещё не работает. Профиль, в котором указан TCP 443 для сервера, слушающего только UDP 1194 терпит неудачу уже на первом пакете.

Поэтому один и тот же файл ведёт себя по-разному на двух клиентах: файл просит, а клиент решает, какую часть запроса он может выполнить.

Строки транспорта должны совпадать со слушателем, который уже существует

proto и remote должны совпадать с тем, что сервер действительно привязывает. UDP — обычный выбор, потому что потерянная датаграмма не останавливает туннель, тогда как TCP может выжить в ограничивающих сетях ценой блокировки головы очереди внутри туннеля. Переключение профиля с UDP на TCP не заставит сервер принимать TCP; оно лишь заставит клиент отправлять данные на порт, который никто не читает.

Порт 443 популярен, потому что проходит через сети, которые почти ничего другого не разрешают, и при этом остаётся сеансом OpenVPN, а не HTTPS-запросом. Если оператор публикует несколько remote строк, клиент пробует их по порядку, и это список переключения при сбое, а не решение о балансировке нагрузки. Сохраняйте комбинации, которые предоставил оператор, вместо того чтобы смешивать хост из одной записи с портом из другой.

Встроенные ключи меняют обращение с файлом

Сертификаты и ключи могут быть встроены между тегами <ca>, <cert> и <key>, либо указаны как отдельные файлы. Встроенный материал делает профиль самодостаточным и одновременно секретом, потому что закрытый ключ клиента путешествует внутри него. Сертификат CA — это публичный материал доверия, и им безопасно делиться; закрытый ключ — нет, даже когда он выглядит как нечитаемый блок текста.

Парольная фраза, защищающая ключ, — отдельный секрет от пароля учётной записи, и их смешение даёт ошибку аутентификации, которая выглядит как неверные учётные данные.

Маршруты и DNS могут вообще не приходить из файла

Маршрутизацию может проталкивать сервер, задавать профиль с помощью redirect-gateway, или она может остаться на собственных значениях по умолчанию клиента. Поэтому скачанный файл не определяет полностью, куда пойдёт трафик после поднятия туннеля. Когда внутренние имена разрешаются, а публичные сайты нет, политика раздельного туннеля делает то, для чего она создана, а не даёт сбой.

DNS следует той же схеме: протолкнутый dhcp-option DNS может применяться клиентом, игнорироваться или переопределяться локальным менеджером резолвера. Проверьте состояние резолвера после подключения, а не перечитывайте профиль.

Неподдерживаемые параметры — это вопрос версии клиента

Предупреждения при импорте обычно означают, что клиент не реализует директиву, а не то, что файл повреждён. Настольные клиенты могут запускать скрипты и плагины под документированным контролем, тогда как мобильные клиенты принимают более узкий набор и могут молча отбрасывать строки, которых не понимают. Настройка шифра или TLS, которую отвергает старый клиент, — это проблема версии, которую нужно решать с оператором. Включение незнакомых привилегий, чтобы навязать импорт, меняет предупреждение на более широкую поверхность атаки.

Сохраните исходный файл для сравнения, укажите в запросе точную неподдерживаемую директиву и попросите профиль, собранный для клиента, который вы действительно используете.

После любой замены убедитесь, какую запись профиля использует приложение, потому что импорт нового файла не всегда перезаписывает старый.

Похожие статьи