Vaša distribucija odstrani paket, meni izgubi vnos in tunel se po naslednjem ponovnem zagonu vseeno dvigne. Komercialni odjemalec VPN pušča dele, ki jih upravitelj paketov ni nikoli spremljal, zato čista odstranitev ni isto kot čist stroj. Štirje od teh delov pojasnjujejo skoraj vsako pošastno povezavo: enota, profil povezave, privilegirani pomočnik in shramba ponudnika. Preberite vse štiri, preden karkoli izbrišete, nato vsakega odstranite prek komponente, ki ga ima v lasti.

Česa namestitveni program ni nikoli zabeležil

Upravitelj paketov odstrani datoteke, ki jih je sam zapisal, in nič drugega. Nima evidence o profilu povezave, ki ga je odjemalec ustvaril med izvajanjem, o enoti, omogočeni po namestitvi, niti o pomočniku, ki se je registriral, ko je tekel s povišanimi pravicami. Vsak od teh delov pripada drugemu podsistemu in vsak lahko preživi paket eno ali več ponovnih zagonov. Prav ta vrzel pojasnjuje, zakaj je tunel lahko zdrav, medtem ko programske opreme, ki ga je ustvarila, ni več.

Ostanek ima vedno lastnika, bodisi systemd, NetworkManager, konfiguracijo shrambe bodisi vnos samodejnega zagona na uporabnika. Prav iskanje lastnika najprej prepreči, da bi čiščenje postalo napol nastavljen stroj. Neposredno brisanje datotek običajno deluje, dokler jih lastnik znova ne ustvari, zato se spodnji ukazi začnejo s poizvedbami.

Štirje lastniki, najprej samo branje

Začnite s poizvedbami namesto z brisanjem in zapišite natančna imena, ki se vrnejo. Ponudniki pogosto dobavijo različico paketa poleg metapaketa, zato se lahko en izdelek pojavi pod dvema imenoma. Ime, ki se pojavi na obeh seznamih, je en izdelek z dvema lastnikoma in oba je treba odstraniti. Prva skupina pokriva pakete in enote, kjer postane večina ostankov vidnih.

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

Druga skupina pokriva dve komponenti, ki najpogosteje preživita čiščenje, in sicer profil povezave in shrambo ponudnika. Berite stolpec UUID, ne imena, ker so podvojena imena pogosta in ukaz za brisanje pričakuje identifikator. Vrstico shrambe je vredno prebrati tudi, ko je danes ne odstranite, saj lahko mrtev gostitelj ponudnika mesece pozneje pokvari nepovezano namestitev. Noben seznam ničesar ne spremeni in prav zato se prva zaženeta.

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

Proces, ki je po čiščenju še živ, je bodisi aktivna enota bodisi otrok drugega programa. Preberite tabelo procesov in njegovo starševsko verigo, preden okrivite storitev, ki ne obstaja več. Vnosi samodejnega zagona na uporabnika potrebujejo enak pregled in pojavijo se le v novi prijavni lupini, ne v seji root.

Trije glagoli, ki niso zamenljivi

Ustavitev konča trenutno izvajanje, onemogočanje odstrani povezave ob zagonu, maskiranje pa usmeri enoto na /dev/null. Samo tretje tudi blokira aktivacijo prek vtičnice, časovnika ali odvisnosti, zato je najmočnejše od treh. Vrstni red je pomemben, dokler se še odločate, kaj storiti s strojem. Maskiranje je med to odločitvijo pravilno stanje, ker glasno odpove, namesto da bi se ob naslednjem zagonu tiho zagnalo.

Pred ponovno namestitvijo odstranite maskiranje, sicer bo novi paket videti pokvarjen zaradi razloga, ki ga nihče ni zapisal. Enaka previdnost velja za razlike v pakiranju: ena različica dobavi enoto, ki jo je mogoče ustaviti, druga pa ne pusti nobene storitve. Ugotovite, kakšno pakiranje imate, preden izberete glagol, ker se pot čiščenja razlikuje.

Z nadomestnimi znaki izbrišete napačen profil

Izbrišite profil z zabeleženim UUID in nikoli z nadomestnim znakom. Imenik keyfile vsebuje tudi vse profile Wi-Fi in Ethernet na stroju, zato široko ujemanje odstrani stvari, ki jih še potrebujete. Ročno izbrisan keyfile lahko znova ustvari politika, ki ga ima v lasti, zaradi česar je brisanje videti neučinkovito.

nmcli connection delete uuid <uuid>

Najprej izvozite prehod in identiteto, če je ta profil edina kopija, ki jo še imate, saj lokalno brisanje na strežniku ničesar ne prekliče. Shramba sledi istemu pravilu: odstranite posamezno datoteko ponudnika in njen obroč ključev, nato osvežite sezname paketov in znova poskusite namestitev, ki ste jo res želeli. Če pustite zastarel vnos tretje strani, lahko pripne staro odvisnost ali sploh ne odgovori. Obe odstranitvi sta majhni in vsako je mogoče razveljaviti iz kopije, ki jo hranite.

Kaj še teče po ponovnem zagonu

Znova zaženite, preden razglasite zmago, nato iščite artefakte in ne aplikacije. Vmesnik tunela, zastarela razdeljena pot in DNS za vsako povezavo, ki jih je pustil stari odjemalec, potrebujejo vsak svoj ukaz. Vsi trije lahko preživijo čiščenje, ki je uspešno odstranilo vsak paket.

ip link
ip route
resolvectl status

Odprite tudi novo prijavno lupino, ker se vnos samodejnega zagona sproži samo tam. Nato preberite /etc/NetworkManager/dispatcher.d/ za skript, ki dvigne povezavo vsakič, ko vmesnik spremeni stanje, kar pojasnjuje vrnitev tunela brez storitve za njim. Če kaj še kliče navzven, sledite procesu do njegovega starša, namesto da bi brisali datoteke, dokler simptom ne preneha. Čiščenje stroja in preklic računa ostaneta ločeni opravili in le eno od njiju je končano, ko je ponovni zagon videti tih.

Sorodni članki