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

Флаг, который вы снимаете, не учитывается

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

Документированный механизм — это список вторичных соединений в базовом профиле. Когда соединение Wi-Fi или Ethernet активируется, менеджер активирует и перечисленные там UUID VPN. Сегодня в этом списке поддерживаются только VPN-соединения, и если в нём несколько записей, одна правка затрагивает все.

Приоритет автоподключения упорядочивает кандидатов; он тоже не выключатель.

Прочитайте оба профиля перед правкой

Сначала запишите имена, UUID и типы, потому что отображаемые имена повторяются, а базовое соединение легко спутать с VPN. Затем прочитайте свойства, которые важны с каждой стороны.

nmcli -f NAME,UUID,TYPE connection show
nmcli -f connection.secondaries connection show "Wired connection 1"
nmcli -f connection.autoconnect,connection.autoconnect-priority connection show "Work VPN"

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

Удалите одну запись, а не весь список

Свойство является списком, поэтому присвоение нового значения заменяет всё в нём. Используйте ведущий минус, чтобы удалить один UUID и оставить остальную часть списка нетронутой.

nmcli connection modify uuid BASE_UUID -connection.secondaries VPN_UUID
nmcli -f connection.secondaries connection show "Wired connection 1"

Проверьте список до и после, особенно на машине, которая зависит от второго VPN.

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

Проверяйте настоящий переход, а не ручную перезагрузку

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

nmcli connection show --active
ip -brief address
ip route get 10.8.0.1

Если туннель всё ещё появляется, оставшимся владельцем обычно является скрипт. Журнал менеджера показывает, какой профиль был активирован и когда, а каталог dispatcher — это место, где жил бы hook, вызывающий nmcli connection up при событии интерфейса. Hook не виден в редакторе профилей, поэтому он переживает каждый эксперимент с флажком.

Держите ручной путь рабочим, потому что это и есть настоящее требование.

Как выглядит хороший результат

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

Запишите UUID базового соединения в runbook, потому что именно этот профиль вы будете править в следующий раз.

VPN, который доступен, но не автоматичен, — это выбор конфигурации, а не отсутствующая функция, и до него остаётся одно свойство.

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