¿Cómo elimino las entradas de red obsoletas del Applet de conexión de red?

17

Veo que puedo eliminar las redes que mi máquina "recuerda" del nm-applet haciendo clic en el icono inalámbrico en el panel y seleccionando "editar conexiones" -> "inalámbrico". Sin embargo, a veces hago clic en la conexión inalámbrica incorrecta por accidente en la lista desplegable. Si la conexión es segura, la máquina, por supuesto, nunca se conecta con éxito, pero de alguna manera todavía parece memorizar el ESSID. Cada vez que estoy dentro del alcance de esa conexión inalámbrica, ahora intenta conectarse.

Peor aún, si no está conectado a ninguna otra red, me solicita repetidamente que me conecte a esta red. Si no se atiende, puedo encontrar docenas de copias de la ventana que me solicitan que inicie sesión en esta red equivocada. Debe haber un archivo en algún lugar que registre este ID de conexión, pero no puedo encontrarlo. Las únicas conexiones que aparecen en las "conexiones de edición" que menciono anteriormente son aquellas a las que realmente me he conectado. ¿Cómo encuentro el archivo y elimino la línea correspondiente a la red ofensiva "memorizada"?

EDITAR Busco una solución para eliminar esas redes de cualquier lista a la que se agreguen cuando las seleccione por primera vez. Parece que este comportamiento es un error en el administrador de red (?)

cboettig
fuente

Respuestas:

23

¿Has intentado eliminar los archivos en el directorio /etc/NetworkManager/system-connections/?

Debería tener 1 archivo por cada red que haya intentado conectar, abrir una terminal y usar los comandos:

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

Para enumerar todos los archivos, después de encontrar la red que desea eliminar, elimínelos con el comando:

sudo rm /etc/NetworkManager/system-connections/NETWORK_NAME
ricciocri
fuente
¡Genial gracias! Me pregunto por qué esta lista es diferente a la que se proporciona en la GUI de Applet de red.
cboettig el
Este hombre trabajado.
Jerric Lyns John
2
Después de reiniciar, ¡esos nombres vuelven a aparecer!
Anwar
6

Puede eliminar conexiones usando nmcli con delete (CONNECTION_NAME)

Para eliminar toda la conexión nunca utilizada (no se necesita root)

nmcli --fields UUID,TIMESTAMP-REAL con show | grep never |  awk '{print $1}' | while read line; do nmcli con delete uuid  $line;    done
Postadelmaga
fuente
Gran respuesta. Para eliminar todas las conexiones, haga: nmcli --fields UUID, TIMESTAMP-REAL con show | awk '{print $ 1}' | mientras lee la línea; do nmcli con delete uuid $ line; hecho
Nadav B
1

Si su principal problema son esas molestas indicaciones que le piden que inicie sesión en una red, entonces, cuando no esté usando la conexión inalámbrica, puede simplemente Desactivar la conexión inalámbrica haciendo clic en la Enable Wirelessentrada en el Menú del indicador de red.

Hashken
fuente
Sí, esa es mi solución actual en un área de conectividad deficiente. Sin embargo, generalmente no se me solicita a menos que haya intentado conectarme a esa red antes. Si me conecté con éxito, puedo eliminarlo de la lista y no recibir ningún aviso al respecto. Mi pregunta es sobre dónde encontrar el registro de las redes que no aparecen allí pero que la máquina memoriza claramente. El archivo de registro debe existir en algún lugar
cboettig
0

Añadiendo más flexibilidad a la respuesta anterior de @Postadelmaga, he dedicado un poco más de esfuerzo a imprimir el nombre del SSID que se está eliminando. Esto agregó una dificultad: ahora tenemos que evitar la posibilidad de que un nombre SSID que contenga la palabra "nunca" coincida accidentalmente con la marca de tiempo que contiene "nunca".

También he creado otra función que elimina una conexión por nombre.

Fuentes en: 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
}

Luego puede eliminar una conexión específica como se muestra a continuación:

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

Eliminar todas las conexiones:

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