OpenVPN сообщает о завершении инициализации: почему приглашение не возвращается
Последняя строка журнала обозначает конец запуска, а не конец программы. Выберите между отладкой на переднем плане, юнитом службы и режимом демона.
Ничего не зависло, когда терминал замолкает после последней строки журнала. Это ожидаемая форма для клиента на переднем плане: он закончил запуск и теперь сидит там, перенося трафик. Приглашение оболочки — не тот признак успеха, каким кажется.
Воспринимайте сообщение как границу между запуском и устойчивым состоянием, потому что именно это оно и обозначает.
Сообщение обозначает конец запуска, а не конец процесса
OpenVPN печатает эту строку после того, как открыл устройство, настроил интерфейс, установил маршруты и завершил обмен TLS с партнёром. Затем процесс продолжает работать, потому что его задача — держать туннель открытым и передавать пакеты. Программа на переднем плане не возвращается к приглашению, пока выполняет эту задачу. Тихий вывод после этого нормален, поскольку клиент говорит только тогда, когда что-то меняется.
Если строка появилась, а соединение позже умерло, это другое событие, и журнал скажет об этом задним числом.
Ctrl+C — это решение, а не исправление
Нажатие Ctrl+C посылает прерывание, которое клиент воспринимает как запрос на выключение. Приглашение возвращается, туннель исчезает, и любая сессия, которая его использовала, заканчивается. Это выглядит как прогресс и на самом деле является обратным. Если цель — постоянное соединение, ответ в том, чтобы перенести процесс туда, где он может работать без вашего терминала, а не прерывать его.
Оставлять его на переднем плане — правильный выбор, пока вы отлаживаете, потому что последующие ошибки остаются видны в том же окне. Тихая минута ничего не доказывает ни в одну сторону; проверьте ресурс через туннель, вместо того чтобы следить за выводом.
Чего сообщение не доказывает
Завершение — это локальное утверждение о собственной настройке клиента. Оно не говорит, что дальняя сторона отвечает, что установленные маршруты соответствуют тому, что вам нужно, или что разрешение имён через туннель работает. Профиль с раздельным туннелем может быть полностью инициализирован, пока корпоративный ресурс остаётся недоступным, потому что маршрут или политика DNS никогда его не покрывали. Экземпляры на стороне сервера печатают похожую строку, когда готовы принимать клиентов, что не то же самое, что подключённый клиент.
«Сервер запустился» и «ноутбук может открыть общий ресурс» — наблюдения из двух разных мест, и их смешение отправляет вас отлаживать не тот хост.
Запуск без терминала
Для постоянного развёртывания используйте ту службу, которую поддерживает платформа. На хосте с systemd это экземпляр openvpn-client@office с профилем в /etc/openvpn/client, запущенный и включённый, чтобы переживать перезагрузки. Community OpenVPN также предлагает --daemon вместе с --log или --log-append, что отсоединяет процесс и направляет вывод в файл. Оба подхода меняют то, как работает процесс; ни один не исправляет маршрут и не делает удалённое приложение здоровым.
Проверьте, что не запускаете второй экземпляр рядом с тем, которым уже управляет служба. Два клиента, претендующих на один и тот же профиль, дают путаные журналы и один туннель, который вы не имели в виду.
Выберите схему, подходящую к задаче
Передний план для диагностики, служба для всего, что должно пережить сеанс, режим демона, когда нет менеджера служб, на который можно опереться. Эти три покрывают обычные случаи, и у каждого есть ясная причина существовать. Именно случайный выбор одного из них и создаёт отчёт «работает, пока не закроешь окно».
Когда туннель должен остаться, после этого подтвердите, что он возвращается после перезагрузки и что его журналы попадают туда, куда вы будете смотреть. Строка инициализации появляется и в этих журналах, и тогда никому не нужно следить за терминалом ради неё.