Din distribution tar bort paketet, menyn tappar sin post, och tunneln kommer ändå upp efter nästa omstart. En kommersiell VPN-klient lämnar delar som pakethanteraren aldrig spårade, så en ren avinstallation är inte samma sak som en ren maskin. Fyra av dessa delar förklarar nästan varje spökanslutning: en enhet, en anslutningsprofil, en privilegierad hjälpare och ett leverantörsförråd. Läs alla fyra innan du raderar något, ta sedan bort var och en via komponenten som äger den.

Det avinstallationen aldrig registrerade

En pakethanterare tar bort de filer den själv skrev ner och ingenting annat. Den har ingen uppgift om en anslutningsprofil som klienten skapade under körning, om en enhet som aktiverades efter installationen, eller om en hjälpare som registrerade sig medan den körde med förhöjda rättigheter. Var och en av dessa hör till ett annat delsystem, och var och en kan överleva paketet en eller flera omstarter. Den luckan förklarar varför en tunnel kan vara frisk medan programvaran som skapade den är borta.

Resten har alltid en ägare, vare sig det är systemd, NetworkManager, förrådskonfigurationen eller en autostart-post per användare. Att hitta ägaren först är det som hindrar en städning från att bli en halvkonfigurerad maskin. Direkt radering av filer fungerar oftast tills ägaren återskapar dem, och därför börjar kommandona nedan med frågor.

Fyra ägare, först bara läsning

Börja med frågor i stället för radering och anteckna de exakta namn som kommer tillbaka. Leverantörer skickar ofta en versionshanterad nyttolast bredvid ett metapaket, så en produkt kan dyka upp under två namn. Ett namn som finns i båda listorna är en enda produkt med två ägare, och båda måste tas bort. Den första gruppen täcker paket och enheter, där de flesta rester blir synliga.

dpkg -l | grep -i acmevpn
systemctl list-unit-files | grep -i acmevpn
systemctl list-units --type=service --state=running | grep -i acmevpn

Den andra gruppen täcker de två komponenter som oftast överlever en städning, nämligen anslutningsprofilen och leverantörsförrådet. Läs UUID-kolumnen i stället för namnet, eftersom dubblerade namn är vanliga och raderingskommandot förväntar sig identifieraren. Förrådsraden är värd att läsa även när du inte tar bort den i dag, eftersom en död leverantörsvärd kan förstöra en orelaterad installation månader senare. Ingen av listorna ändrar något, och det är just därför de körs först.

nmcli -f NAME,UUID,TYPE connection show
nmcli connection show --active
grep -ril acmevpn /etc/apt/sources.list.d/ /etc/apt/sources.list

En process som fortfarande lever efter städningen är antingen en aktiv enhet eller ett barn till ett annat program. Läs processtabellen och dess föräldrakedja innan du skyller på en tjänst som inte finns längre. Autostart-poster per användare behöver samma genomgång, och de dyker bara upp i ett färskt inloggningsskal, inte i en root-session.

Tre verb som inte kan bytas ut

Stopp avslutar den aktuella körningen, inaktivering tar bort uppstartslänkarna, och maskning pekar enheten mot /dev/null. Bara det tredje blockerar också aktivering via en socket, en timer eller ett beroende, vilket gör det till det starkaste av de tre. Ordningen spelar roll medan du fortfarande bestämmer vad som ska hända med maskinen. Maskning är rätt tillstånd under det beslutet, eftersom den misslyckas högljutt i stället för att starta tyst vid nästa uppstart.

Ta bort maskningen innan du installerar om, annars ser det nya paketet trasigt ut av en anledning som ingen skrev ner. Samma försiktighet gäller för paketeringsskillnader: ett bygge levererar en enhet som kan stoppas, medan ett annat inte lämnar någon tjänst alls. Fastställ vilken paketering du har innan du väljer ett verb, eftersom städningsvägen skiljer sig.

Med jokertecken raderar du fel profil

Radera profilen med det UUID du antecknade, och aldrig med ett jokertecken. keyfile-katalogen innehåller också alla Wi-Fi- och Ethernet-profiler på maskinen, så en bred träff tar bort saker du fortfarande behöver. En keyfile som raderas för hand kan återskapas av den policy som äger den, vilket får raderingen att verka verkningslös.

nmcli connection delete uuid <uuid>

Exportera gateway och identitet först om den profilen är den enda kopia du har kvar, eftersom en lokal radering inte återkallar något på servern. Förrådet följer samma regel: ta bort den enda leverantörsfilen och dess nyckelring, uppdatera sedan paketlistorna och försök igen med den installation du faktiskt ville ha. Att lämna en inaktuell tredjepartspost kan låsa en gammal beroende eller inte svara alls. Båda borttagningarna är små, och vilken som helst kan ångras från kopian du behåller.

Vad som fortfarande körs efter omstarten

Starta om innan du utropar seger och leta sedan efter artefakter i stället för programmet. Ett tunnelgränssnitt, en inaktuell delad rutt och DNS per länk som den gamla klienten lämnade efter sig behöver var sin kommando. Alla tre kan överleva en städning som tog bort varje paket med framgång.

ip link
ip route
resolvectl status

Öppna också ett färskt inloggningsskal, eftersom en autostart-post bara utlöses där. Läs sedan /etc/NetworkManager/dispatcher.d/ efter ett skript som reser en anslutning varje gång ett gränssnitt byter tillstånd, vilket förklarar en tunnel som kommer tillbaka utan tjänst bakom sig. Om något fortfarande ringer ut, spåra processen till dess förälder i stället för att radera filer tills symtomet slutar. Att städa maskinen och att återkalla kontot förblir separata jobb, och bara ett av dem är klart när omstarten ser tyst ut.

Relaterade artiklar