Klien VPN sudah dihapus, tetapi terowongan tetap menyala saat boot
Klien VPN yang dihapus bisa meninggalkan unit systemd, profil tersimpan, helper, dan repositori apt. Inventarisasi keempatnya sebelum membersihkan apa pun.
Distro Anda menghapus paketnya, menu kehilangan entrinya, dan terowongan tetap muncul setelah reboot berikutnya. Klien VPN komersial meninggalkan bagian yang tidak pernah dilacak pengelola paket, jadi penghapusan bersih bukan berarti mesin bersih. Empat bagian itu menjelaskan hampir semua koneksi hantu: unit, profil koneksi, helper berhak istimewa, dan repositori vendor. Baca keempatnya sebelum menghapus apa pun, lalu hapus masing-masing melalui komponen yang memilikinya.
Apa yang tidak pernah dicatat oleh uninstaller
Pengelola paket menghapus file yang dicatatnya dan tidak ada yang lain. Ia tidak memiliki catatan tentang profil koneksi yang dibuat klien saat runtime, tentang unit yang diaktifkan setelah pemasangan, atau tentang helper yang mendaftarkan dirinya saat berjalan dengan hak istimewa. Masing-masing milik subsistem berbeda, dan masing-masing bisa bertahan setelah paket hilang satu atau beberapa reboot. Celah itulah yang menjelaskan mengapa terowongan bisa sehat sementara perangkat lunak pembuatnya sudah tidak ada.
Sisanya selalu punya pemilik, entah systemd, NetworkManager, konfigurasi repositori, atau entri autostart per pengguna. Menemukan pemiliknya lebih dulu itulah yang mencegah pembersihan menjadi mesin setengah terkonfigurasi. Menghapus file secara langsung biasanya berhasil sampai pemiliknya membuatnya kembali, dan itulah sebabnya perintah di bawah dimulai dengan kueri.
Empat pemilik, baca dulu
Mulailah dengan kueri, bukan penghapusan, dan catat nama persis yang muncul. Vendor sering mengirim muatan berversi di samping metapaket, sehingga satu produk bisa muncul dengan dua nama. Nama yang muncul di kedua daftar adalah satu produk dengan dua pemilik, dan keduanya perlu dihapus. Batch pertama mencakup paket dan unit, tempat sebagian besar sisa terlihat.
dpkg -l | grep -i acmevpn
systemctl list-unit-files | grep -i acmevpn
systemctl list-units --type=service --state=running | grep -i acmevpn
Batch kedua mencakup dua komponen yang paling sering bertahan setelah pembersihan, yaitu profil koneksi dan repositori vendor. Baca kolom UUID, bukan namanya, karena nama duplikat umum terjadi dan perintah hapus mengharapkan pengenal itu. Baris repositori layak dibaca meski hari ini tidak Anda hapus, sebab host vendor yang mati bisa merusak pemasangan tak terkait berbulan-bulan kemudian. Tidak satu pun daftar mengubah apa pun, dan itulah gunanya menjalankannya lebih dulu.
nmcli -f NAME,UUID,TYPE connection show
nmcli connection show --active
grep -ril acmevpn /etc/apt/sources.list.d/ /etc/apt/sources.list
Proses yang masih hidup setelah pembersihan adalah unit aktif atau anak program lain. Baca tabel proses dan rantai induknya sebelum menyalahkan layanan yang sudah tidak ada. Entri autostart per pengguna juga perlu pemeriksaan yang sama, dan entri itu hanya muncul di shell login baru, bukan di sesi root.
Tiga kata kerja yang tidak bisa ditukar
Menghentikan mengakhiri jalan saat ini, menonaktifkan menghapus tautan saat boot, dan masking mengarahkan unit ke /dev/null. Hanya yang ketiga juga memblokir aktivasi lewat socket, timer, atau dependensi, sehingga menjadikannya paling kuat dari ketiganya. Urutannya penting selagi Anda masih memutuskan apa yang akan dilakukan dengan mesin. Masking adalah keadaan yang tepat selama keputusan itu, karena ia gagal dengan nyaring alih-alih menyala diam-diam pada boot berikutnya.
Lepas masking sebelum memasang ulang, atau paket baru akan tampak rusak karena alasan yang tidak dicatat siapa pun. Kehati-hatian yang sama berlaku untuk perbedaan pengemasan: satu build mengirim unit yang bisa dihentikan, sementara yang lain tidak meninggalkan layanan sama sekali. Pastikan pengemasan mana yang Anda miliki sebelum memilih kata kerja, karena jalur pembersihannya berbeda.
Dengan wildcard, profil yang salah terhapus
Hapus profil dengan UUID yang Anda catat, dan jangan pernah dengan wildcard. Direktori keyfile juga menyimpan setiap profil Wi-Fi dan Ethernet di mesin, jadi kecocokan luas menghapus hal yang masih Anda butuhkan. Keyfile yang dihapus manual bisa dibuat ulang oleh kebijakan yang memilikinya, sehingga penghapusan tampak tidak efektif.
nmcli connection delete uuid <uuid>
Ekspor gateway dan identitas lebih dulu jika profil itu satu-satunya salinan yang masih Anda miliki, sebab penghapusan lokal tidak mencabut apa pun di server. Repositori mengikuti aturan yang sama: hapus satu file vendor dan ring kuncinya, lalu segarkan daftar paket dan coba lagi pemasangan yang benar-benar Anda inginkan. Membiarkan entri pihak ketiga yang basi dapat memaku dependensi lama atau tidak menjawab sama sekali. Kedua penghapusan itu kecil, dan keduanya bisa dibatalkan dari salinan yang Anda simpan.
Apa yang masih berjalan setelah reboot
Reboot sebelum menyatakan kemenangan, lalu cari artefak, bukan aplikasinya. Antarmuka terowongan, rute terbelah yang basi, dan DNS per tautan yang ditinggalkan klien lama masing-masing butuh perintahnya sendiri. Ketiganya bisa bertahan setelah pembersihan yang berhasil menghapus setiap paket.
ip link
ip route
resolvectl status
Buka juga shell login baru, karena entri autostart hanya terpicu di sana. Lalu baca /etc/NetworkManager/dispatcher.d/ untuk skrip yang menaikkan koneksi setiap kali antarmuka berubah status, yang menjelaskan terowongan yang kembali tanpa layanan di belakangnya. Jika ada yang masih menelepon keluar, telusuri prosesnya sampai induknya alih-alih menghapus file sampai gejalanya berhenti. Membersihkan mesin dan mencabut akun tetap dua pekerjaan terpisah, dan hanya satu yang selesai saat reboot tampak tenang.