Bagaimana cara menghapus entri Jaringan usang dari Applet Sambungan Jaringan

17

Saya melihat bahwa saya dapat menghapus jaringan yang "diingat" oleh mesin saya dari nm-applet dengan mengklik ikon nirkabel di panel dan memilih "edit koneksi" -> "nirkabel". Namun, terkadang saya mengklik koneksi nirkabel yang salah secara tidak sengaja di daftar dropdown. Jika koneksi aman, mesin tentu saja tidak pernah berhasil terhubung, tetapi entah bagaimana masih menghafal ESSID. Setiap kali saya dalam jangkauan nirkabel itu, sekarang mencoba untuk terhubung.

Lebih buruk lagi, jika tidak terhubung ke jaringan lain, itu berulang kali meminta saya untuk terhubung ke jaringan ini. Jika dibiarkan tanpa pengawasan, saya mungkin menemukan lusinan salinan jendela yang mendorong saya untuk masuk ke jaringan yang salah ini. Pasti ada file di suatu tempat yang mencatat ID koneksi ini, tetapi saya tidak dapat menemukannya. Satu-satunya koneksi yang muncul di "edit koneksi" yang saya sebutkan di atas adalah mereka yang saya benar-benar terhubung. Bagaimana cara menemukan file dan menghapus baris yang sesuai dengan jaringan "menghafal" yang menyinggung?

EDIT Saya mencari solusi untuk menghapus jaringan-jaringan itu dari daftar apa pun yang ditambahkan ketika saya pertama kali memilihnya. Tampaknya perilaku ini adalah bug di manajer jaringan (?)

cboettig
sumber

Jawaban:

23

Sudahkah Anda mencoba menghapus file di direktori /etc/NetworkManager/system-connections/?

Anda harus memiliki 1 file untuk setiap jaringan yang Anda coba sambungkan, buka terminal dan gunakan perintah:

sudo ls -l /etc/NetworkManager/system-connections/

Untuk daftar semua file, setelah Anda menemukan jaringan yang ingin Anda hapus, hapus dengan perintah:

sudo rm /etc/NetworkManager/system-connections/NETWORK_NAME
Ricciocri
sumber
Keren terima kasih! Saya heran mengapa daftar ini berbeda dari yang disediakan di GUI Appletet Jaringan?
cboettig
Pria yang bekerja ini.
Jerric Lyns John
2
Dengan setelah reboot, nama-nama itu muncul kembali!
Anwar
6

Anda dapat menghapus koneksi menggunakan nmcli con delete (CONNECTION_NAME)

Untuk menghapus semua koneksi tidak pernah digunakan (tidak diperlukan root)

nmcli --fields UUID,TIMESTAMP-REAL con show | grep never |  awk '{print $1}' | while read line; do nmcli con delete uuid  $line;    done
Postadelmaga
sumber
Jawaban yang bagus Untuk menghapus semua koneksi, lakukan: nmcli --fields UUID, TIMESTAMP-REAL con show | awk '{print $ 1}' | saat membaca baris; lakukan nmcli dengan menghapus uuid $ line; selesai
Nadav B
1

Jika masalah utama Anda adalah permintaan yang mengganggu yang meminta Anda untuk masuk ke jaringan, maka setiap kali Anda tidak menggunakan Nirkabel, Anda bisa Menonaktifkan Nirkabel dengan mengklik Enable Wirelessentri di Menu Indikator Jaringan Anda.

Hashken
sumber
Ya, itu solusi saya saat ini di area konektivitas yang buruk. Namun, saya biasanya tidak diminta kecuali saya telah mencoba untuk terhubung ke jaringan itu sebelumnya. Jika saya berhasil terhubung, saya bisa menghapusnya dari daftar dan tidak diminta. Pertanyaan saya adalah tentang di mana menemukan catatan untuk jaringan yang tidak muncul di sana tetapi jelas dihafal oleh mesin. File rekaman harus ada di suatu tempat
cboettig
0

Menambahkan lebih banyak fleksibilitas pada jawaban sebelumnya oleh @Postadelmaga, saya telah menghabiskan lebih banyak upaya untuk mencetak nama SSID yang dihapus. Ini menambah kesulitan: kita sekarang harus menghindari kemungkinan nama SSID yang mengandung kata "tidak pernah" secara tidak sengaja cocok dengan stempel waktu yang berisi "tidak pernah".

Saya juga membuat fungsi lain yang menghapus koneksi dengan nama.

Sumber di: https://github.com/frgomes/debian-bin/blob/master/bash_20nm.sh

#!/bin/bash

function nmcli_list {
  nmcli --pretty --fields NAME,UUID,TIMESTAMP-REAL con show
}

function nmcli_remove {
  if [ ! -z "$1" ] ;then
    nmcli --fields NAME con show | \
      grep "$@" | \
        while read name ;do 
          echo Removing SSID "$name"
          nmcli con delete "$name"
        done
  fi
}

##################################################################################
# The intent here is avoid that a connection named "never drive after you drink" #
# matches a timestamp "never". So, we have to make sure that we match colon      #
# followed by "never" followed by spaces and/or tabs and finally an end of line. #
#                                                                                #
# WARNING: However, I didn't get a chance to test this scenario.                 #
#          So, I provide this code the way it is, in the hope that I've covered  #
#          well the behavior from some other simulations I did.                  #
##################################################################################

function nmcli_remove_never_used {
  nmcli --terse --fields NAME,TIMESTAMP-REAL con show | \
    egrep -e ':never[ \t]*$' | \
      sed -r 's/:never[ \t]*$//' | \
        while read name ;do
          echo Removing SSID "$name"
          nmcli con delete "$name"
        done
}

Kemudian Anda dapat menghapus koneksi tertentu seperti yang ditunjukkan di bawah ini:

$ nmcli_remove ScalaX
$ nmcli_remove "My WiFi @ Home"
$ nmcli_remove "never drive after you drink"
Richard Gomes
sumber
0

Hapus semua koneksi:

nmcli --pretty --fields UUID,TYPE con show | grep wifi | awk "{print $1}" | while read line; do nmcli con delete uuid  $line; done
pengguna3377121
sumber