VPN клиентът е деинсталиран, но тунелът все още стартира при зареждане
Премахнат VPN клиент може да остави systemd unit, запазен профил, помощник и apt хранилище. Направете опис на четирите, преди да изчистите каквото и да е друго.
Дистрибуцията ви премахва пакета, менюто губи записа си, а тунелът все още се вдига след следващото рестартиране. Търговският VPN клиент оставя части, които мениджърът на пакети никога не е проследявал, така че чистото премахване не е същото като чиста машина. Четири от тези части обясняват почти всяка призрачна връзка: unit, профил на връзка, привилегирован помощник и хранилище на доставчика. Прочетете и четирите, преди да изтриете нещо, после премахнете всяка през компонента, който я притежава.
Какво деинсталаторът така и не записа
Мениджърът на пакети премахва файловете, които е записал, и нищо друго. Той няма запис за профил на връзка, който клиентът е създал по време на работа, за unit, активиран след инсталиране, или за помощник, който се е регистрирал, докато е работил с повишени права. Всяка от тях принадлежи на друга подсистема и всяка може да надживее пакета с едно или няколко рестартирания. Тази разлика обяснява защо тунелът може да е здрав, докато софтуерът, който го е създал, вече го няма.
Остатъкът винаги има собственик — бил той systemd, NetworkManager, конфигурацията на хранилището или запис за автоматично стартиране на отделен потребител. Именно намирането на собственика първо не позволява почистването да се превърне в наполовина конфигурирана машина. Директното изтриване на файлове обикновено работи, докато собственикът не ги възстанови, и затова командите по-долу започват със заявки.
Четири собственика, първо само четене
Започнете със заявки, а не с изтриване, и запишете точните имена, които се връщат. Доставчиците често доставят версиониран пакет до метапакет, така че един продукт може да се появи под две имена. Име, което се среща и в двата списъка, е един продукт с два собственика и двамата трябва да бъдат премахнати. Първата партида обхваща пакетите и unit-ите, където повечето остатъци стават видими.
dpkg -l | grep -i acmevpn
systemctl list-unit-files | grep -i acmevpn
systemctl list-units --type=service --state=running | grep -i acmevpn
Втората партида обхваща двата компонента, които най-често оцеляват след изтриване, а именно профилът на връзката и хранилището на доставчика. Четете колоната UUID, а не името, защото дублираните имена са чести, а командата за изтриване очаква идентификатора. Редът на хранилището си струва да се прочете дори когато не го премахвате днес, защото мъртъв хост на доставчик може месеци по-късно да счупи несвързана инсталация. Нито един от списъците не променя нищо и точно затова първо се пускат те.
nmcli -f NAME,UUID,TYPE connection show
nmcli connection show --active
grep -ril acmevpn /etc/apt/sources.list.d/ /etc/apt/sources.list
Процес, който е още жив след изтриването, е или активен unit, или дете на друга програма. Прочетете таблицата на процесите и веригата на родителите му, преди да обвините услуга, която вече не съществува. Записите за автоматично стартиране на отделен потребител се нуждаят от същия преглед и се появяват само в нова обвивка за вход, а не в root сесия.
Три глагола, които не са взаимозаменяеми
Спирането прекратява текущото изпълнение, деактивирането премахва връзките при зареждане, а маскирането насочва unit-а към /dev/null. Само третото също блокира активиране през сокет, таймер или зависимост, което го прави най-силното от трите. Редът има значение, докато още решавате какво да правите с машината. Маскирането е правилното състояние по време на това решение, защото се проваля шумно, вместо да стартира тихо при следващото зареждане.
Свалете маската преди преинсталиране, иначе новият пакет ще изглежда счупен по причина, която никой не е записал. Същото внимание важи и за разликите в пакетирането: една сборка доставя unit, който може да бъде спрян, а друга не оставя никаква услуга. Установете какво пакетиране имате, преди да изберете глагол, защото пътят на почистване се различава между тях.
Шаблоните са начинът да изтриете грешния профил
Изтрийте профила с UUID, който сте записали, и никога с шаблон. Директорията с ключови файлове съдържа и всички Wi-Fi и Ethernet профили на машината, така че широкото съвпадение премахва неща, които още ви трябват. Ръчно изтрит ключов файл може да бъде възстановен от политиката, която го притежава, което прави изтриването да изглежда неефективно.
nmcli connection delete uuid <uuid>
Първо експортирайте шлюза и идентичността, ако този профил е единственото копие, което още имате, защото локалното изтриване не отменя нищо на сървъра. Хранилището следва същото правило: премахнете единствения файл на доставчика и неговия ключодържател, после обновете списъците с пакети и опитайте отново инсталацията, която наистина искате. Оставянето на остарял запис от трета страна може да закова остаряла зависимост или да не отговори изобщо. И двете премахвания са малки и всяко от тях може да бъде върнато от копието, което пазите.
Какво още работи след рестартирането
Рестартирайте, преди да обявите победа, и после търсете артефакти, а не приложението. Тунелен интерфейс, остарял разделен маршрут и DNS за всяка връзка, оставени от стария клиент, всяко от тях иска собствена команда. И трите могат да надживеят почистване, което е премахнало успешно всеки пакет.
ip link
ip route
resolvectl status
Отворете и нова обвивка за вход, защото записът за автоматично стартиране се задейства само там. После прочетете /etc/NetworkManager/dispatcher.d/ за скрипт, който вдига връзка при всяка промяна на състоянието на интерфейс, което обяснява тунел, който се връща без услуга зад него. Ако нещо все още се свързва навън, проследете процеса до родителя му, вместо да триете файлове, докато симптомът не изчезне. Почистването на машината и отнемането на акаунта остават отделни задачи и само една от тях е завършена, когато рестартирането изглежда тихо.