Dağıtımınız paketi kaldırır, menünüz girişini kaybeder ve tünel bir sonraki yeniden başlatmadan sonra yine de açılır. Ticari bir VPN istemcisi paket yöneticisinin hiç izlemediği parçalar bırakır, bu yüzden temiz bir kaldırma temiz bir makineyle aynı şey değildir. Bu parçalardan dördü neredeyse her hayalet bağlantıyı açıklar: bir birim, bir bağlantı profili, ayrıcalıklı bir yardımcı ve bir satıcı deposu. Herhangi bir şeyi silmeden önce dördünü de okuyun, sonra her birini sahibi olan bileşen üzerinden kaldırın.

Kaldırıcının hiç kaydetmediği şeyler

Bir paket yöneticisi yalnızca kendi yazdığı dosyaları kaldırır, başka bir şeyi değil. İstemcinin çalışma zamanında oluşturduğu bir bağlantı profiline, kurulumdan sonra etkinleştirilen bir birime ya da yükseltilmiş haklarla çalışırken kendini kaydeden bir yardımcıya dair kaydı yoktur. Bunların her biri farklı bir alt sisteme aittir ve her biri paketi bir veya birkaç yeniden başlatma boyunca atlatabilir. Tam da bu boşluk, tünel sağlıklı olabildiği hâlde onu üreten yazılım ortadan kalktığında ne olduğunu açıklar.

Kalıntının her zaman bir sahibi vardır: systemd, NetworkManager, depo yapılandırması veya kullanıcı başına otomatik başlatma girdisi. Önce sahibi bulmak, bir temizliğin yarı yapılandırılmış bir makineye dönüşmesini engelleyen şeydir. Dosyaları doğrudan silmek genellikle sahip onları yeniden üretene kadar işe yarar, bu yüzden aşağıdaki komutlar sorgularla başlar.

Dört sahip, önce yalnızca okuma

Silmek yerine sorgularla başlayın ve geri dönen tam adları not edin. Satıcılar sıklıkla bir meta paketin yanında sürümlenmiş bir yük gönderir, bu yüzden tek bir ürün iki ad altında görünebilir. Her iki listede de görünen bir ad, iki sahibi olan tek bir üründür ve ikisi de kaldırılmalıdır. İlk grup paketleri ve birimleri kapsar; kalıntıların çoğu orada görünür hâle gelir.

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

İkinci grup, temizlikten sonra en sık ayakta kalan iki bileşeni kapsar: bağlantı profili ve satıcı deposu. Adı değil UUID sütununu okuyun, çünkü yinelenen adlar yaygındır ve silme komutu tanımlayıcıyı bekler. Depo satırı bugün kaldırmasanız bile okumaya değer, çünkü ölü bir satıcı sunucusu aylar sonra ilgisiz bir kurulumu bozabilir. Listelerin hiçbiri hiçbir şeyi değiştirmez ve bu yüzden önce onlar çalıştırılır.

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

Temizlikten sonra hâlâ yaşayan bir süreç, etkin bir birim ya da başka bir programın çocuğudur. Artık var olmayan bir hizmeti suçlamadan önce süreç tablosunu ve onun ebeveyn zincirini okuyun. Kullanıcı başına otomatik başlatma girdileri de aynı geçişi gerektirir ve yalnızca yeni bir oturum açma kabuğunda görünürler, root oturumunda değil.

Birbirinin yerine geçmeyen üç fiil

Durdurma geçerli çalışmayı bitirir, devre dışı bırakma açılış bağlantılarını kaldırır ve maskeleme birimi /dev/null adresine yönlendirir. Yalnızca üçüncüsü soket, zamanlayıcı veya bağımlılık üzerinden etkinleştirmeyi de engeller, bu da onu üçün en güçlüsü yapar. Makineyle ne yapacağınıza hâlâ karar verirken sıra önemlidir. Maskeleme o karar sırasında doğru durumdur, çünkü bir sonraki açılışta sessizce başlamak yerine yüksek sesle başarısız olur.

Yeniden kurmadan önce maskelemeyi kaldırın, yoksa yeni paket kimsenin yazmadığı bir nedenle bozuk görünecektir. Aynı dikkat paketleme farklılıkları için de geçerlidir: bir derleme durdurulabilen bir birim gönderirken, diğeri hiç hizmet bırakmaz. Bir fiil seçmeden önce hangi paketlemeye sahip olduğunuzu belirleyin, çünkü temizlik yolu aralarında farklıdır.

Joker karakterlerle yanlış profil silinir

Profili not ettiğiniz UUID ile silin ve asla joker karakterle silmeyin. keyfile dizini makinedeki her Wi-Fi ve Ethernet profilini de barındırır, bu yüzden geniş bir eşleşme hâlâ ihtiyacınız olan şeyleri kaldırır. Elle silinen bir keyfile, ona sahip olan ilke tarafından yeniden oluşturulabilir, bu da silmeyi etkisiz gösterir.

nmcli connection delete uuid <uuid>

O profil hâlâ sahip olduğunuz tek kopyaysa önce ağ geçidini ve kimliği dışa aktarın, çünkü yerel bir silme sunucuda hiçbir şeyi iptal etmez. Depo da aynı kuralı izler: tek satıcı dosyasını ve anahtarlık halkasını kaldırın, ardından paket listelerini yenileyin ve gerçekten istediğiniz kurulumu yeniden deneyin. Eski bir üçüncü taraf girdisini bırakmak eski bir bağımlılığı sabitleyebilir veya hiç yanıt vermeyebilir. Her iki kaldırma da küçüktür ve her biri sakladığınız kopyadan geri alınabilir.

Yeniden başlatmadan sonra hâlâ ne çalışıyor

Zafer ilan etmeden önce yeniden başlatın, sonra uygulamayı değil artefaktları arayın. Eski istemcinin bıraktığı bir tünel arayüzü, eski bir bölünmüş rota ve bağlantı başına DNS'in her biri kendi komutunu gerektirir. Üçü de her paketi başarıyla kaldıran bir temizliği atlatabilir.

ip link
ip route
resolvectl status

Yeni bir oturum açma kabuğu da açın, çünkü otomatik başlatma girdisi yalnızca orada tetiklenir. Ardından bir arayüz durum değiştirdiğinde bağlantıyı yükselten bir betik için /etc/NetworkManager/dispatcher.d/ dizinini okuyun; bu, arkasında hizmet olmadan geri dönen bir tüneli açıklar. Bir şey hâlâ dışarı arıyorsa, belirti durana kadar dosya silmek yerine süreci ebeveynine kadar izleyin. Makineyi temizlemek ve hesabı iptal etmek ayrı işler olarak kalır ve yeniden başlatma sessiz göründüğünde yalnızca biri bitmiştir.

İlgili makaleler