Come rimuovo le voci di rete obsolete dall'applet di connessione di rete


17

Vedo che posso eliminare le reti che la mia macchina "ricorda" da nm-applet facendo clic sull'icona wireless nel pannello e selezionando "modifica connessioni" -> "wireless". Tuttavia, a volte faccio clic sulla connessione wireless errata per errore nell'elenco a discesa. Se la connessione è sicura, la macchina ovviamente non si collega mai correttamente, ma in qualche modo sembra ancora memorizzare l'ESSID. Ogni volta che mi trovo nel raggio di quel wireless, ora prova a connettermi.

Peggio ancora, se non connesso a nessun'altra rete, mi spinge ripetutamente a collegarmi a questa rete. Se lasciato incustodito, potrei trovare dozzine di copie della finestra che mi spingono ad accedere a questa rete sbagliata. Deve esserci un file da qualche parte che registra questo ID di connessione, ma non riesco a trovarlo. Le uniche connessioni che compaiono nelle "modifiche connessioni" che menziono sopra sono quelle a cui mi sono effettivamente connesso. Come posso trovare il file ed eliminare la riga corrispondente alla rete "memorizzata" offensiva?

EDIT Cerco una soluzione per rimuovere quelle reti dall'elenco a cui vengono aggiunte quando le seleziono per la prima volta. Sembra che questo comportamento sia un bug nel gestore della rete (?)

Risposte:


23

hai provato a eliminare i file nella directory /etc/NetworkManager/system-connections/?

Dovresti avere 1 file per ogni rete che hai provato a connetterti, aprire un terminale e usare i comandi:

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

Per elencare tutti i file, dopo aver trovato la rete che si desidera eliminare, rimuoverli con il comando:

sudo rm /etc/NetworkManager/system-connections/NETWORK_NAME

Fantastico, grazie! Mi chiedo perché questo elenco sia diverso da quello fornito nella GUI di Network Applet?
cboettig,

Questo ha funzionato.
Jerric Lyns John,

2
Dopo il riavvio, quei nomi riappaiono di nuovo!
Anwar,

6

Puoi eliminare le connessioni usando nmcli con delete (CONNECTION_NAME)

Per eliminare tutte le connessioni mai utilizzate (nessuna radice necessaria)

nmcli --fields UUID,TIMESTAMP-REAL con show | grep never |  awk '{print $1}' | while read line; do nmcli con delete uuid  $line;    done

Bella risposta. Per rimuovere tutte le connessioni, fare: nmcli --fields UUID, TIMESTAMP-REAL con show | awk '{print $ 1}' | mentre leggi la riga; do nmcli con elimina uuid $ line; fatto
Nadav B,

1

Se il tuo problema principale sono quelle fastidiose istruzioni che ti chiedono di accedere a una rete, ogni volta che non stai utilizzando Wireless, puoi semplicemente disabilitare Wireless facendo clic sulla Enable Wirelessvoce nel menu Indicatore di rete.


Sì, questa è la mia attuale soluzione in una scarsa area di connettività. Tuttavia, di solito non mi viene richiesto se prima non ho tentato di connettermi a quella rete. Se mi sono connesso correttamente, posso eliminarlo dall'elenco e non essere richiesto. La mia domanda è su dove trovare il record per le reti che non vengono visualizzate lì ma che sono chiaramente memorizzate dalla macchina. Il file di registrazione deve esistere da qualche parte
cboettig il

0

Aggiungendo una maggiore flessibilità alla precedente risposta di @Postadelmaga, ho speso un po 'più di fatica a stampare il nome dell'SSID da rimuovere. Ciò ha aggiunto una difficoltà: ora dobbiamo evitare la possibilità che un nome SSID contenente la parola "mai" corrisponda accidentalmente al timestamp contenente "mai".

Ho anche creato un'altra funzione che rimuove una connessione per nome.

Fonti all'indirizzo: 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
}

Quindi è possibile eliminare una connessione specifica come mostrato di seguito:

$ nmcli_remove ScalaX
$ nmcli_remove "My WiFi @ Home"
$ nmcli_remove "never drive after you drink"

0

Elimina tutte le connessioni:

nmcli --pretty --fields UUID,TYPE con show | grep wifi | awk "{print $1}" | while read line; do nmcli con delete uuid  $line; done
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.