Jak usunąć przestarzałe wpisy sieciowe z apletu połączenia sieciowego

17

Widzę, że mogę usunąć sieci, które „zapamiętuje” moja maszyna z apletu nm, klikając ikonę sieci bezprzewodowej w panelu i wybierając „edytuj połączenia” -> „sieć bezprzewodowa”. Czasami jednak przypadkowo klikam nieprawidłowe połączenie bezprzewodowe na liście rozwijanej. Jeśli połączenie jest bezpieczne, urządzenie oczywiście nigdy się nie łączy, ale jakoś nadal zapamiętuje ESSID. Ilekroć jestem w zasięgu tego połączenia bezprzewodowego, teraz próbuje się połączyć.

Co gorsza, jeśli nie jest podłączony do żadnej innej sieci, wielokrotnie monituje mnie o połączenie z tą siecią. Jeśli pozostanie bez nadzoru, mogę znaleźć dziesiątki kopii okna z monitem o zalogowanie się do tej błędnej sieci. Musi być gdzieś plik, który rejestruje ten identyfikator połączenia, ale nie mogę go znaleźć. Jedyne połączenia pojawiające się w „połączeniach edycji”, o których wspomniałem powyżej, to te, z którymi faktycznie się łączyłem. Jak znaleźć plik i usunąć wiersz odpowiadający naruszającej „zapamiętanej” sieci?

EDYCJA Szukam rozwiązania, aby usunąć te sieci z dowolnej listy, do której zostaną dodane, kiedy pierwszy raz je wybiorę. Wygląda na to, że takie zachowanie jest błędem w menedżerze sieci (?)

cboettig
źródło

Odpowiedzi:

23

próbowałeś usunąć pliki z katalogu /etc/NetworkManager/system-connections/?

Powinieneś mieć 1 plik na każdą sieć, którą próbujesz połączyć, otwórz terminal i użyj poleceń:

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

Aby wyświetlić listę wszystkich plików, po znalezieniu sieci, którą chcesz usunąć, usuń je za pomocą polecenia:

sudo rm /etc/NetworkManager/system-connections/NETWORK_NAME
ricciocri
źródło
Wielkie dzieki! Zastanawiam się, dlaczego ta lista różni się od tej podanej w graficznym interfejsie apletu sieciowego?
cboettig
To pracował człowiek.
Jerric Lyns John,
2
Po ponownym uruchomieniu nazwy te pojawią się ponownie!
Anwar
6

Możesz usunąć połączenia za pomocą nmcli con delete (CONNECTION_NAME)

Aby usunąć wszystkie połączenia nigdy nieużywane (nie wymaga roota)

nmcli --fields UUID,TIMESTAMP-REAL con show | grep never |  awk '{print $1}' | while read line; do nmcli con delete uuid  $line;    done
Postadelmaga
źródło
Świetna odpowiedź. Aby usunąć wszystkie połączenia: nmcli --fields UUID, CONIM TIMESTAMP-REAL | awk „{print $ 1}” | podczas odczytu linii; wykonaj nmcli z linią uuid $; gotowe
Nadav B
1

Jeśli Twoim głównym problemem są irytujące monity o zalogowanie się do sieci, wtedy za każdym razem, gdy nie korzystasz z sieci bezprzewodowej, możesz po prostu wyłączyć sieć bezprzewodową, klikając Enable Wirelesspozycję w menu wskaźnika sieci.

Hashken
źródło
Tak, to moje obecne rozwiązanie w obszarze słabej łączności. Zazwyczaj jednak nie pojawia się monit, chyba że wcześniej próbowałem połączyć się z tą siecią. Jeśli udało mi się nawiązać połączenie, mogę usunąć go z listy i nie wyświetlać monitu. Moje pytanie dotyczy tego, gdzie znaleźć rekord dla sieci, które się tam nie pokazują, ale są wyraźnie zapamiętane przez maszynę. Plik nagrania musi gdzieś
cboettig,
0

Dodając większą elastyczność do poprzedniej odpowiedzi @Postadelmaga, poświęciłem trochę wysiłku na wydrukowanie nazwy usuwanego identyfikatora SSID. To dodało trudność: musimy teraz unikać możliwości, aby nazwa SSID zawierająca słowo „nigdy” przypadkowo nie pasowała do znacznika czasu zawierającego „nigdy”.

Stworzyłem również inną funkcję, która usuwa połączenie według nazwy.

Źródła na: 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
}

Następnie możesz usunąć określone połączenie, jak pokazano poniżej:

$ nmcli_remove ScalaX
$ nmcli_remove "My WiFi @ Home"
$ nmcli_remove "never drive after you drink"
Richard Gomes
źródło
0

Usuń wszystkie połączenia:

nmcli --pretty --fields UUID,TYPE con show | grep wifi | awk "{print $1}" | while read line; do nmcli con delete uuid  $line; done
użytkownik3377121
źródło