Скрипт моста VPN по-прежнему вызывает brctl: что это значит
Помощник моста, сбоящий на brctl, — это локальная проблема зависимостей, а не неисправность туннеля. Решите, поддерживать скрипт или перенести его работу с мостом.
Клиент туннеля установлен, профиль действителен, а помощник по-прежнему сбоит на команде brctl. Переустановка пакета VPN этого не исправляет, потому что отсутствующая программа не входит в туннель. Она входит в локальный скрипт моста, и скрипт требует инструмент, который текущая система больше не поставляет по умолчанию. Две проблемы кажутся связанными только потому, что скрипт запускается при подключении.
Отсутствующая вспомогательная программа — не неисправность туннеля
Начните с точного вызова и его окружения. Команда, которая есть в вашей интерактивной оболочке, может отсутствовать в ограниченном пути поиска службы, поэтому ошибка «не найдено» может означать две разные вещи. Запустите command -v brctl от имени пользователя службы и прочитайте юнит, который запускает скрипт с помощью systemctl cat openvpn-bridge-helper или его эквивалента. Текст ошибки обычно называет отсутствующий бинарный файл, и это имя — зависимость, которую нужно решить.
Переустановка клиента туннеля даёт туннель, а не утилиту моста. Это отдельные пакеты с отдельными сопровождающими.
Что делал brctl и почему он устарел
Инструмент создавал и администрировал мосты Ethernet в Linux: addbr создавал мост, а addif подключал порт. Руководство Debian помечает его устаревшим и указывает на мостовые инструменты iproute2, которые покрывают больше. Устаревший не значит удалённый везде, и наличие более нового инструмента не делает буквальный вызов brctl в скрипте успешным.
Значит, вопрос не в том, хорош ли brctl. Вопрос в том, поддерживается ли скрипт до сих пор и какой пакет, если он есть, поставляет для него ваш дистрибутив.
Два честных варианта: поддерживать или переносить
Поддерживать — значит установить документированную зависимость из поддерживаемого пакета вашего дистрибутива и подтвердить происхождение скрипта, ожидаемую версию и путь исполнения. Это удовлетворяет отсутствующий исполняемый файл и ничего больше: имена мостов, план адресов и поведение очистки в скрипте остаются непроверенными. Переносить — значит переписать предполагаемые операции под поддерживаемую конфигурацию сети. Создание моста, подключение портов, адресация хоста и активация звена — четыре отдельные изменения, а псевдоним в оболочке с brctl на другую утилиту не является переводом.
Эквиваленты в iproute2 коротки: ip link add name br-vpn type bridge создаёт мост, а ip link set tap0 master br-vpn подключает порт.
Запишите, какой вариант вы выбрали и кто владеет скриптом. Наполовину перенесённый помощник, который вызывает оба инструмента, хуже любого из них.
Посмотрите на проект моста прежде обоих
Мост Ethernet подходит проекту, которому нужны передача Ethernet и партнёры TAP. Установка мостовых утилит не превращает маршрутизируемое подключение TUN в мост, и поддерживаемый маршрутизируемый профиль не стоит гнуть под несвязанный скрипт. Если профиль маршрутизирует, выясните, почему помощник моста вообще запускается.
Прежде чем трогать настоящий мост, сохраните путь управления и определите единственного владельца конфигурации сети.
Затем прочитайте следующую ошибку после исправления зависимости. Локальная настройка моста, удалённая аутентификация и разрешённый трафик через результат — три отдельных исхода, и только один из них когда-либо касался brctl.