Din distribution fjerner pakken, menuen mister sin post, og tunnelen dukker stadig op efter næste genstart. En kommerciel VPN-klient efterlader dele, som pakkehåndteringen aldrig har sporet, så en ren afinstallation er ikke det samme som en ren maskine. Fire af disse dele forklarer næsten enhver spøgelsesforbindelse: en unit, en forbindelsesprofil, en privilegeret hjælper og et leverandørlager. Læs alle fire, før du sletter noget, og fjern derefter hver enkelt gennem den komponent, der ejer den.

Det, afinstallationsprogrammet aldrig registrerede

Pakkehåndteringen fjerner de filer, den har skrevet ned, og intet andet. Den har ingen registrering af en forbindelsesprofil, som klienten oprettede under kørsel, af en unit, der blev aktiveret efter installationen, eller af en hjælper, der registrerede sig selv, mens den kørte med forhøjede rettigheder. Hver af disse hører til et forskelligt delsystem, og hver af dem kan overleve pakken med en genstart eller flere. Det hul forklarer, hvorfor en tunnel kan være sund, mens softwaren, der skabte den, er væk.

Resten har altid en ejer, hvad enten det er systemd, NetworkManager, lagerkonfigurationen eller en automatisk opstartspost per bruger. Det er netop at finde ejeren først, der forhindrer, at en oprydning bliver en halvkonfigureret maskine. Direkte sletning af filer virker normalt, indtil ejeren genskaber dem, og derfor begynder kommandoerne nedenfor med forespørgsler.

Fire ejere, kun læsning først

Begynd med forespørgsler frem for sletning, og noter de præcise navne, der kommer tilbage. Leverandører sender ofte en versioneret pakke ved siden af en metapakke, så ét produkt kan optræde under to navne. Et navn, der dukker op på begge lister, er ét produkt med to ejere, og begge skal fjernes. Den første gruppe dækker pakker og units, hvor de fleste rester bliver synlige.

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

Den anden gruppe dækker de to komponenter, der oftest overlever en udrensning, nemlig forbindelsesprofilen og leverandørlageret. Læs UUID-kolonnen i stedet for navnet, fordi dublerede navne er almindelige, og slettekommandoen forventer identifikatoren. Lagerlinjen er værd at læse, selv når du ikke fjerner den i dag, da en død leverandørvært kan ødelægge en urelateret installation måneder senere. Ingen af listerne ændrer noget, og det er meningen, at de skal køres 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 proces, der stadig lever efter udrensningen, er enten en aktiv unit eller et barn af et andet program. Læs procestabellen og dens forældrekæde, før du bebrejder en tjeneste, der ikke findes længere. Automatiske opstartsposter per bruger har brug for samme gennemgang, og de optræder kun i en frisk loginskal, ikke i en root-session.

Tre verber, der ikke kan byttes

Stop afslutter den aktuelle kørsel, deaktivering fjerner opstartslinks, og maskning peger uniten mod /dev/null. Kun det tredje blokerer også aktivering via en socket, en timer eller en afhængighed, hvilket gør det til det stærkeste af de tre. Rækkefølgen betyder noget, mens du stadig beslutter, hvad der skal ske med maskinen. Maskning er den rigtige tilstand under den beslutning, fordi den fejler højlydt i stedet for at starte stille ved næste opstart.

Fjern maskningen, før du geninstallerer, ellers vil den nye pakke se ødelagt ud af en grund, som ingen har skrevet ned. Den samme advarsel gælder pakningsforskelle: ét build leverer en unit, der kan stoppes, mens et andet slet ikke efterlader nogen tjeneste. Fastslå, hvilken pakning du har, før du vælger et verbum, fordi oprydningsvejen er forskellig.

Jokertegn er måden, hvorpå du sletter den forkerte profil

Slet profilen med det UUID, du noterede, og aldrig med et jokertegn. Keyfile-mappen indeholder også alle Wi-Fi- og Ethernet-profiler på maskinen, så et bredt match fjerner ting, du stadig har brug for. En keyfile, der slettes manuelt, kan også genskabes af den politik, der ejer den, hvilket får sletningen til at virke ineffektiv.

nmcli connection delete uuid <uuid>

Eksportér gateway og identitet først, hvis den profil er det eneste eksemplar, du har tilbage, da en lokal sletning ikke tilbagekalder noget på serveren. Lageret følger samme regel: fjern den ene leverandørfil og dens nøglering, opdater derefter pakkelisterne, og prøv igen den installation, du faktisk ønskede. At lade en forældet tredjepartspost blive stående kan fastholde en gammel afhængighed eller slet ikke svare. Begge fjernelser er små, og hver af dem kan fortrydes fra den kopi, du beholder.

Hvad der stadig kører efter genstarten

Genstart, før du erklærer sejr, og led derefter efter artefakter i stedet for efter programmet. Et tunnelinterface, en forældet opdelt rute og DNS per link, som den gamle klient efterlod, kræver hver deres egen kommando. Alle tre kan overleve en udrensning, der fjernede hver pakke med succes.

ip link
ip route
resolvectl status

Åbn også en frisk loginskal, fordi en automatisk opstartspost kun udløses der. Læs derefter /etc/NetworkManager/dispatcher.d/ for et script, der rejser en forbindelse, hver gang et interface skifter tilstand, hvilket forklarer en tunnel, der vender tilbage uden nogen tjeneste bag sig. Hvis noget stadig ringer ud, spor processen til dens forælder i stedet for at slette filer, indtil symptomet stopper. At rydde maskinen og at tilbagekalde kontoen forbliver separate opgaver, og kun den ene af dem er færdig, når genstarten ser stille ud.

Relaterede artikler