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

Што дэінсталятар так і не запісаў

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

У рэшткі заўсёды ёсць уладальнік: ці то systemd, ці NetworkManager, ці канфігурацыя рэпазітара, ці запіс аўтазапуску асобнага карыстальніка. Менавіта пошук уладальніка спачатку не дае чыстцы ператварыцца ў паўналаджаныя машыны. Прамое выдаленне файлаў звычайна працуе, пакуль уладальнік не адновіць іх, і таму каманды ніжэй пачынаюцца з запытаў.

Чатыры ўладальнікі, спачатку толькі чытанне

Пачынайце з запытаў, а не з выдалення, і запішыце дакладныя назвы, якія вернуцца. Пастаўшчыкі часта дастаўляюць версіяваны пакет побач з метапакетам, таму адзін прадукт можа выглядаць пад двума назвамі. Назва, якая ёсць у абодвух спісах, — гэта адзін прадукт з двума ўладальнікамі, і выдаляць трэба абодвух. Першая партыя ахоплівае пакеты і модулі, менавіта там большасць рэштак становіцца бачнай.

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

Працэс, які яшчэ жывы пасля выдалення, — гэта альбо актыўны модуль, альбо дзіця іншай праграмы. Прачытайце табліцу працэсаў і ланцуг ягоных бацькоў, перш чым вінаваціць службу, якой ужо няма. Запісы аўтазапуску асобных карыстальнікаў патрабуюць такога ж праходу, а яны з’яўляюцца толькі ў свежай абалонцы ўваходу, а не ў root-сесіі.

Тры дзеясловы, якія не ўзаемазаменныя

Спыненне завяршае бягучы запуск, адключэнне выдаляе спасылкі часу загрузкі, а маскіраванне накіроўвае модуль на /dev/null. Толькі трэцяе таксама блакуе актывацыю праз сокет, таймер або залежнасць, што робіць яго самым моцным з трох. Парадак важны, пакуль вы яшчэ вырашаеце, што рабіць з машынай. Маскіраванне — правільны стан падчас гэтага рашэння, бо яно гучна падае, замест таго каб ціха стартаваць пры наступнай загрузцы.

Зніміце маску перад пераўсталяваннем, інакш новы пакет будзе выглядаць зламаным з прычыны, якую ніхто не запісаў. Тая ж асцярога датычыцца адрозненняў упакоўкі: адна зборка пастаўляе модуль, які можна спыніць, а іншая не пакідае ніякай службы наогул. Вызначце, якая ў вас упакоўка, перш чым выбіраць дзеяслоў, бо шлях чысткі ў іх розны.

Шаблоны — гэта тое, як выдаляюць не той профіль

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

nmcli connection delete uuid <uuid>

Спачатку экспартуйце шлюз і ідэнтычнасць, калі гэты профіль — адзіная копія, якая ў вас засталася, бо лакальнае выдаленне нічога не адклікае на серверы. Рэпазітар падпарадкоўваецца таму ж правілу: выдаліце адзіны файл пастаўшчыка і ягонае кола ключоў, потым абнавіце спісы пакетаў і паўтарыце ўсталяванне, якое вам сапраўды патрэбнае. Пакінуты састарэлы запіс трэцяга боку можа замацаваць старую залежнасць або наогул не адказаць. Абодва выдаленні невялікія, і любое з іх можна адкаціць з копіі, якую вы захоўваеце.

Што ўсё яшчэ працуе пасля перазагрузкі

Перазагрузіцеся, перш чым абвясціць перамогу, і потым шукайце артэфакты, а не праграму. Тунельны інтэрфейс, састарэлы раздвоены маршрут і DNS для кожнага злучэння, пакінутыя старым кліентам, кожнае патрабуе ўласнай каманды. Усе тры могуць перажыць чыстку, якая паспяхова выдаліла ўсе пакеты.

ip link
ip route
resolvectl status

Адкрыйце таксама свежую абалонку ўваходу, бо запіс аўтазапуску спрацоўвае толькі там. Потым прачытайце /etc/NetworkManager/dispatcher.d/ у пошуку скрыпта, які ўздымае злучэнне пры кожнай змене стану інтэрфейса, што тлумачыць вяртанне тунеля без службы за ім. Калі нешта ўсё яшчэ злучаецца звонку, прасачыце працэс да ягонага бацькі, замест таго каб выдаляць файлы, пакуль сімптом не знікне. Чыстка машыны і адкліканне ўліковага запісу застаюцца асобнымі задачамі, і толькі адна з іх завершана, калі перазагрузка выглядае ціхай.

Падобныя артыкулы