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

Туннель исчез, политика нет

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

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

Прочитайте объекты, которыми пакет никогда не владел

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

nmcli device status
nmcli connection show --active
ip -4 route
ip -6 route

Запишите, что нашли, потому что исправление — это удалить один конкретный объект, а не сбросить всё. Любое более широкое действие рискует вторым сбоем. В этом разница между починкой и догадкой.

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

Удалите профиль, а не файл ключа

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

sudo nmcli connection delete pvpn-killswitch
sudo systemctl restart NetworkManager

Если фиктивная связь сохранилась, удалите и её, затем проверьте адрес и имя отдельно. Чистая маршрутизация с неудачным именем указывает на DNS, а неудачный адрес — на маршрут или межсетевой экран.

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

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

systemctl list-unit-files | grep -i vpn
grep -rl -i vpn /etc/systemd/system /etc/network/if-up.d

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

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