С файлом .ovpn ничего не происходит, пока им что-то не владеет. На рабочем столе Pi вероятные владельцы — NetworkManager, который хранит импортированное подключение в собственном файле ключей, и отдельный сервисный юнит, читающий конфигурацию из каталога. Это две модели работы с разным хранением, разным обращением с учётными данными и разными правилами активации. Осознанно выбрать одну из них — вся задача; копирование файла в оба места просто делает выбор случайным.

Оба могут работать на одной машине, но не в одном туннеле в один и тот же момент, и конфликт выглядит как сбой сети, а не как сбой конфигурации.

Два способа владеть одним туннелем

Плагин OpenVPN для NetworkManager добавляет редактор и службу, которые управляют подключением за вас, а установка программы OpenVPN не устанавливает эту интеграцию. Отдельный юнит — обратная схема: без редактора, без интеграции с рабочим столом, один файл конфигурации и те права, которые даёт юнит. Первый хранит состояние подключения в собственной базе данных, второй хранит его там, где говорят профиль и юнит. Большая часть путаницы происходит из предположения, что импортированный профиль и скопированный файл — один и тот же объект.

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

Идите за подключением, которое рабочий стол действительно использует

Документированная операция импорта, nmcli connection import type openvpn file office.ovpn, создаёт подключение через плагин. Запишите его UUID и используйте этот идентификатор дальше, потому что имена редактируются, а два подключения могут делить одну метку. nmcli connection show перечисляет то, что существует, а чтение собственных свойств подключения говорит, из какого файла оно пришло и что хранит. Если UUID, который вы правите, не тот, что активирует рабочий стол, ваши правки — просто украшение.

Секреты живут в хранилище владельца. Вываливать каждый сохранённый секрет, чтобы выяснить, какой профиль активен, медленно и рискованно; спросите объект подключения вместо этого и держите приватный материал там, где владелец его ожидает.

Импортированному подключению не нужна графическая сессия для работы, но ему всё ещё может понадобиться источник учётных данных. Начнётся ли оно без присмотра, зависит от его прав и секретов, а не от присутствия рабочего стола.

Прочитайте шаблон юнита, прежде чем полагаться на него

Там, где пакет поставляет клиентский юнит в стиле upstream, экземпляр с именем office соответствует файлу %i.conf в настроенном каталоге юнита, который для шаблона 2.6 — это /etc/openvpn/client. Прочитайте установленный юнит и любые дополнительные файлы, прежде чем доверять примеру из руководства, потому что дистрибутивы переносят пути. Ручной запуск из терминала ничего не доказывает о том, как служба видит файлы, секреты или права. Окно ввода пароля на рабочем столе тоже не доказывает, что неинтерактивный юнит имеет одобренный способ получить тот же пароль.

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

Выведите дубликат из эксплуатации, не теряя доступа

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

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

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