¿Cómo conectar y desconectar a una red manualmente en la terminal?


113

Como el administrador de la red me está molestando tanto, quiero reemplazarlo (posiblemente wicdo NMde ppa: volanin ).

No sé cómo conectarme y desconectarme a la red a través del terminal sin usar el administrador de red.

Me gustaría una forma de administrar la red en la línea de comandos.


2
Si va a estar jugando con el administrador de conexión de red de su sistema, le recomiendo que lo haga mientras está conectado a través de ethernet con cable, que es menos probable que pierda su conexión y más fácil de configurar desde la línea de comandos, en caso de que sea necesario.
Ryan Thompson

Yo uso wicd-curses, que creo que es la interfaz de usuario más fácil con diferencia. Debe usar <kbd> → </kbd> (tecla de flecha derecha ->) para establecer configuraciones; todo lo demás es obvio por las instrucciones en pantalla.
isomorfismos

Respuestas:


139

Esto se aplica a 12.04+ ya que estos son los que podría probar, pero también podrían usarse en versiones anteriores. He separado esta guía en varias partes, que consisten en:

  • Parte 1 Enrutadores inalámbricos sin contraseña o clave WEP
  • Parte 2 Enrutadores inalámbricos con clave de seguridad WPA o WPA2
    • Parte 2.1 Conexión a un enrutador WPA con wpa_supplicant
    • Parte 2.2 Conexión a un enrutador WPA con Network Manager
  • Parte 3 Conexión fácil a través de nmcli
  • Parte 4 Desconectarse de un enrutador inalámbrico
  • Parte 5 Eliminar una conexión (incluido el archivo de configuración)
  • Parte 6 Conexión automática al iniciar sesión
  • Bonus Cómo encontrar el nombre de su interfaz de red a través de GUI

Las siguientes líneas de comando se pueden usar para conectar y desconectar dependiendo de la configuración de la tarjeta inalámbrica, la seguridad inalámbrica y el enrutador inalámbrico. Antes de continuar, asegúrese de que el servicio de red esté habilitado (para casos en los que puede iniciar Ubuntu usando el modo de recuperación):

Dependiendo de su versión de Ubuntu, necesitará iniciarlo usando una de las siguientes formas:

Si usa SystemD (desde 14.10+):

sudo systemctl start networking

Si usa la forma Legacy init.d: sudo /etc/init.d/networking restart

Si usa el modo Legacy Upstart: sudo service network-manager restart

Parte 1: enrutadores inalámbricos sin contraseña o clave WEP

Para los casos en que el enrutador inalámbrico no tiene contraseña o seguridad WEP, haga lo siguiente:

  1. Abra el terminal y busque la conexión inalámbrica:

    iwlist wlan0 s  
    

    (La s es para Escanear. Wlan0 es mi tarjeta inalámbrica pero podría ser diferente para cada usuario. Algunos tienen eth0, otros wlan2 .. Necesita sudoejecutar esta opción. Para averiguar el nombre de su tarjeta inalámbrica simplemente escriba iwlist y presione TAB. Esto debería completar automáticamente la línea con el nombre de la tarjeta de red. También puede escribir iwconfigy encontrar el nombre en la lista que se mostrará).

    Si no conoce el nombre de sus dispositivos inalámbricos, escriba: iwconfigque le mostrará sus dispositivos con cable / inalámbricos y sus nombres. Pueden ser algo como wlan0, wlan1, eth1, eth2 ...

  2. La búsqueda le mostrará todos los puntos de acceso (AP) posibles visibles para usted. Después de ver su enrutador en la lista, intente conectarse a él:

    Si no tiene contraseña, haga lo siguiente:

    iwconfig wlan0 essid NAME_OF_ACCESS_POINT  
    

    Por ejemplo

    iwconfig wlan0 essid CYREX  
    

    después de eso, asegúrese de usarlo dhclientpara que pueda obtener una IP dinámica en caso de que el enrutador no le asigne una. Eso debería dejarlo conectado al enrutador CYREX.

    Si tiene una contraseña, haga lo siguiente:

    iwconfig wlan0 essid CYREX key PASSWORD
    

    Eso debería conectarse usando la CONTRASEÑA que dio allí.

    Nuevamente, hazlo dhclientdespués de conectarte para asegurarte de que tienes asignada una IP.

  3. Siempre es bueno asegurarse de que está conectado correctamente, así que ejecute iwconfigpara asegurarse de que su tarjeta inalámbrica esté conectada al SSID que mencionó anteriormente. Debería mostrar su dispositivo conectado y la IP asignada a usted. Si no lo hace y le da un error como Interfaz no admite escaneo, pruebe las siguientes 2 opciones:

    • Prueba si tu interfaz está UP: sudo ifconfig wlan0 up
    • Intente agregar sudoal hacer el escaneo:sudo iwlist wlan0 s
    • Intente bajar el dispositivo y luego volver a subirlo:

      sudo ifconfig wlan0 down  
      sudo ifconfig wlan0 up
      

Parte 2: enrutadores inalámbricos con clave de seguridad WPA o WPA2

Para los casos en que el enrutador inalámbrico tiene una contraseña WPA / WPA2, hay algunas formas de hacerlo. Mencionaré los 2 más populares ::

  1. Abra el terminal y busque la conexión inalámbrica:

    iwlist wlan0 s  
    

    (La s es para Escanear. Wlan0 es mi tarjeta inalámbrica pero podría ser diferente para cada usuario. Algunos tienen eth0, otros wlan2 .. Necesita sudoejecutar esta opción. Para averiguar el nombre de su tarjeta inalámbrica simplemente escriba iwlist y presione TAB. Esto debería completar automáticamente la línea con el nombre de la tarjeta de red. También puede escribir iwconfigy encontrar el nombre en la lista que se mostrará).

    Si no conoce el nombre de sus dispositivos inalámbricos, escriba: iwconfigque le mostrará sus dispositivos con cable / inalámbricos y sus nombres. Pueden ser algo como wlan0, wlan1, eth1, eth2 ...

  2. La búsqueda le mostrará todos los puntos de acceso (AP) posibles visibles para usted. Después de ver su enrutador en la lista, intente conectarse a él:

Parte 2.1 GUÍA PARA EL SUMINISTRADOR WPA: Conexión a un enrutador WPA con wpa_supplicant

  1. Escriba lo siguiente en el terminal (suponiendo que tenga wpasupplicantinstalado el paquete que instala todos los comandos necesarios que usaremos aquí):

    wpa_passphrase SSID PASSWORD > CONFIG_FILE
    

    Ejemplo: wpa_passphrase Virus LinuxFTW > wpa.conf

    Donde Virus es el nombre de mi enrutador, LinuxFTW es mi contraseña y wpa.confes el archivo donde quiero almacenar toda esta información. Tenga en cuenta que puede guardar el archivo en otro lugar, muchos usuarios guardan el archivo en /etc/wpa_supplicant.conflugar de wpa.conf. Los datos del archivo wpa.conf deberían ser algo como esto:

    network={  
            ssid="Virus"  
            #psk="LinuxFTW"  
            psk=1d538d505f48205589ad25b2ca9f52f9cbb67687e310c58a8dd940ccc03fbfae  
    }  
    
  2. Hasta este punto, debemos saber el nombre de nuestra interfaz de tarjeta inalámbrica (por ejemplo: Wlan0, eth2, Wlan2 ...). Ahora necesitamos saber qué controlador está en uso. para esto tecleamos:

    wpa_supplicant
    

    Debería mostrarnos mucha información, pero habrá una sección llamada ** Controladores * que muestra todos los controladores disponibles (estos están disponibles al compilar wpa_supplicant). En mi caso es así:

    drivers:  
      wext = Linux wireless extensions (generic)  
      nl80211 = Linux nl80211/cfg80211  
      wired = Wired Ethernet driver  
      none = no driver (RADIUS server/WPS ER)  
    

    Toda la lista es hostap, hermes, madwifi, wext, broadcom, wired, roboswitch, bsd, ndis. Esto puede cambiar dependiendo de cómo wpa_supplicantse compiló, pero el que se muestra para mí debería ser similar al de su sistema. La mayoría de los usuarios seleccionarán el wextcontrolador.

  3. Entonces, ahora que tenemos nuestro nombre de tarjeta de interfaz inalámbrica y el nombre del controlador, procedemos a conectarnos a él utilizando el archivo de configuración ya creado con el siguiente formato:

    wpa_supplicant -iINTERFACE_NAME -cCONFIGURATION_FILE -DDRIVER_NAME
    

    Por ejemplo:

    wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -Dwext
    

    Dónde -iestá el nombre de su tarjeta de interfaz, -cdónde se encuentra su archivo de configuración y -Des el nombre del controlador que utilizará para conectarse. Si se conecta correctamente, entonces presionamos CTRL+ Cpara cancelarlo y luego ejecutamos la línea nuevamente, pero esta vez lo enviamos al fondo -Bpara que podamos continuar usando el terminal:

    wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext  
    

    Después de eso, simplemente haga una sudo dhclient wlan0para obtener una IP del enrutador.

  4. Algunos usuarios informaron que eliminaron el hash y dejaron solo la contraseña en la configuración, por ejemplo:

         network={  
                ssid="Virus"  
                psk="LinuxFTW"  
        }  
    

    Otros han agregado ssid_scan al archivo de configuración:

        network={  
                ssid="Virus"
                scan_ssid=1  
                #psk="LinuxFTW"  
                psk=1d538d505f48205589ad25b2ca9f52f9cbb67687e310c58a8dd940ccc03fbfae  
        }  
    

    O incluso agregando el tipo de clave:

        network={  
                ssid="Virus"
                scan_ssid=1  
                key_mgmt=WPA-PSK
                #psk="LinuxFTW"  
                psk=1d538d505f48205589ad25b2ca9f52f9cbb67687e310c58a8dd940ccc03fbfae  
        }  
    

    Más información sobre esto en man wpa_supplicant.conf

Parte 2.2 GUÍA DEL ADMINISTRADOR DE RED: Conexión a un enrutador WPA con Network Manager

Lo bueno del administrador de red es que viene con un par de buenos scripts y herramientas. Dos de estos son nmcliy create_connection(secuencia de comandos Neat Python 3) que usaremos en este caso.

  1. Después de realizar los pasos mencionados anteriormente para encontrar el nombre SSID de su enrutador (recuerde la parte iwlistanterior), hacemos lo siguiente:

    sudo /usr/share/checkbox/scripts/create_connection -S SECURITY_TYPE -K PASSWORD SSID_NAME
    

    Donde SEGURIDAD es el tipo de seguridad que utiliza el enrutador (WPA, WEP), CONTRASEÑA es ... bueno ... la contraseña y SSID_NAME es el nombre SSID del enrutador. Por ejemplo:

    sudo /usr/share/checkbox/scripts/create_connection -S wpa -K LinuxFTW Virus
    

    Creará una conexión para Network Manager que debería verse así:

      $ sudo /usr/share/checkbox/scripts/create_connection -S wpa -K LinuxFTW Virus
      [sudo] password for cyrex: 
      Connection Virus registered
      Connection Virus activated.
    
  2. Después de esto, debe obtener una IP asignada desde el enrutador. Si no, simplemente hazlo sudo dhclient wlan0(suponiendo que wlan0 es el nombre de tu interfaz). También puede verificar las conexiones de su administrador de red usando nmcli de esta manera: nmcli cque debería mostrar algo como esto:

     $ nmcli c
      NAME                      UUID                                   TYPE              TIMESTAMP-REAL                    
      Xcentral                  f51a5a64-8a91-47d6-897c-28efcd84d2b0   802-11-wireless   Fri 22 Mar 2013 02:25:54 PM VET   
      Realtek                   9ded7740-ad29-4c8f-861f-84ec4da87f8d   802-3-ethernet    Tue 05 Mar 2013 01:18:31 AM VET   
      Intel                     e25b1fd8-c4ff-41ac-a6bc-22620296f01c   802-3-ethernet    Fri 05 Apr 2013 10:04:05 PM VET   
      Virus                     3f8ced55-507b-4558-a70b-0d260441f570   802-11-wireless   Tue 09 Apr 2013 06:31:10 AM VET   
    

Menciono la forma del administrador de red porque hay un par de casos en los que el uso wpa_supplicantsimplemente no funciona (problemas entre el enrutador y la tarjeta inalámbrica, problemas de seguridad, etc.). En mi caso, todos los intentos de uso wpa_supplicanten una PC no funcionaron, pero en otra funcionó la primera vez que lo intenté. Así que estoy publicando ambos métodos para ayudar en cada caso y para que sea más fácil para los usuarios decidir cuál quieren.

Parte 3: Conexión fácil a través de nmcli

Aunque hemos hablado sobre las formas de conectarse a él sin un administrador de red, también existe el caso de usar nmcli (versión CLI del administrador de red) cuando corresponde. Para hacer esto, hacemos lo siguiente:

  1. Verifique qué ESSID podemos ver:

    nmcli dev wifi
    
  2. Verifique el nombre del ESSID y procedemos a usarlo en la siguiente línea, incluida la contraseña necesaria para ello (esto incluye las contraseñas de tipo WEP y WPA):

    nmcli dev wifi connect ESSID_NAME password ESSID_PASSWORD
    

    Aquí hay un ejemplo de mi conexión al ESSID Linux5G

    captura de pantalla

    Si tiene varios dispositivos inalámbricos en su computadora, puede especificar cuál usar usando el ifnameparámetro de la siguiente manera:

    nmcli dev wifi connect ESSID_NAME contraseña ESSID_PASSWORD ifname WIRELESS_DEVICE_NAME

    Por ejemplo, en mi caso, el nombre del dispositivo es wlp9s0así que usaría esta línea para especificar el dispositivo que usaré para conectarme con:

    captura de pantalla

Se puede obtener más información sobre nmcli utilizando el parámetro de ayuda. Por ejemplo, si desea saber acerca de nmcli devusted, escriba nmcli dev help. Si quisieras saber más nmcli dev wifi, escribirías nmcli dev wifi helpy así sucesivamente.

Parte 4: desconectarse de un enrutador inalámbrico

Hay varias formas de lograr esto:

  • Desconectarse por "fuerza": sudo ifconfig wlan0 down

    Esto apagará la interfaz de su tarjeta inalámbrica (el controlador se apaga). Para activar simplemente escriba ifconfig wlan0 upseguido de a sudo dhclient wlan0. Todavía se mostrará como conectado si es visto por Network Manager, pero en realidad no habrá conexión al enrutador. Intentando pingarrojará un connect: Network is unreachableerror.

  • Libere la IP de DHCP: sudo dhclient -r wlan0

    Recuerde hacer sudo dhclient wlan0para asignarse una IP nuevamente.

  • Desconectarse usando Network Manager: nmcli nm enable false

    Donde nm es el parámetro de nmcli que administra y establece los estados de Network Manager. La opción enablepuede ser verdadera o falsa , lo que significa que si se establece en falso , todas las conexiones de red administradas por Network Manager se desconectarán. tenga en cuenta que nmcli no necesita permisos de root.

Para ver el estado del tipo de Network Manager nmcli nm, debe mostrar algo similar a esto:

      $ nmcli nm
      RUNNING         STATE           WIFI-HARDWARE   WIFI       WWAN-HARDWARE   WWAN      
      running         connected       enabled         enabled    enabled         enabled   

Otra forma de encender o apagar la conexión (conectar / desconectar) es haciendo lo siguiente:

nmcli c down id NAME` - Will disconnect the connection NAME  

nmcli c up id NAME` - Will connect the connection NAME

Parte 5: Eliminar una conexión

Eliminar una conexión existente es bastante fácil. Primer tipo en la terminal:

nmcli c

Producirá algo como esto:

$ nmcli c
NAME                      UUID                                   TYPE              TIMESTAMP-REAL                    
Realtek                   9ded7740-ad29-4c8f-861f-84ec4da87f8d   802-3-ethernet    Tue 05 Mar 2013 01:18:31 AM VET   
PrivateSys                86b2b37d-4835-44f1-ba95-46c4b747140f   802-11-wireless   Sun 21 Apr 2013 07:52:57 PM VET   
pepe                      9887664b-183a-45c0-a81f-27d5d0e6d9d8   802-11-wireless   Thu 18 Apr 2013 02:43:05 AM VET   
Virus                     3f8ced55-507b-4558-a70b-0d260441f570   802-11-wireless   Tue 16 Apr 2013 11:33:24 AM VET   
Intel                     e25b1fd8-c4ff-41ac-a6bc-22620296f01c   802-3-ethernet    Sun 21 Apr 2013 08:12:29 PM VET   
Xcentral                  f51a5a64-8a91-47d6-897c-28efcd84d2b0   802-11-wireless   Fri 22 Mar 2013 02:25:54 PM VET  

Ahora digamos que queremos eliminar Xcentral , luego procedemos con el siguiente comando:

nmcli c delete id Xcentral

Después de hacerlo, debería verse así:

$ nmcli c delete id Xcentral
$ nmcli c
NAME                      UUID                                   TYPE              TIMESTAMP-REAL                    
Realtek                   9ded7740-ad29-4c8f-861f-84ec4da87f8d   802-3-ethernet    Tue 05 Mar 2013 01:18:31 AM VET   
PrivateSys                86b2b37d-4835-44f1-ba95-46c4b747140f   802-11-wireless   Sun 21 Apr 2013 07:52:57 PM VET   
pepe                      9887664b-183a-45c0-a81f-27d5d0e6d9d8   802-11-wireless   Thu 18 Apr 2013 02:43:05 AM VET   
Virus                     3f8ced55-507b-4558-a70b-0d260441f570   802-11-wireless   Tue 16 Apr 2013 11:33:24 AM VET   
Intel                     e25b1fd8-c4ff-41ac-a6bc-22620296f01c   802-3-ethernet    Sun 21 Apr 2013 08:12:29 PM VET   

Todas las conexiones se almacenan en /etc/NetworkManager/system-connections/

Si tuviera que buscar en esa carpeta en este momento, vería los siguientes archivos:

$ ls /etc/NetworkManager/system-connections
Intel  pepe  PrivateSys  Realtek  Virus

Esto es solo en caso de que desee editar / eliminar / agregar una conexión a mano.

Parte 6: conexión automática al iniciar sesión

Para los casos en los que desea iniciar sesión automáticamente en un enrutador inalámbrico, estos son los pasos:

  1. Abre el interfacearchivo:

    sudo nano /etc/network/interfaces
    
  2. Agregue la siguiente información (suponiendo que su interfaz se llame wlan0):

    auto wlan0
    iface wlan0 inet static
    address ASSIGNED_IP
    netmask 255.255.255.0
    gateway THE_GATEWAY
    wireless-essid YOURSSID
    wireless-key WIRELESSKEY_HERE
    
  3. Guarde el archivo y reinicie la computadora. Tenga en cuenta que esto se guardará en un archivo de texto sin formato al que se puede acceder desde la misma computadora.

Bonificación: encuentre el nombre de su conexión inalámbrica Estilo GUI

  1. Haga clic en el Administrador de red y vaya a Información de conexión

    captura de pantalla

  2. Vaya a la pestaña que contiene su tarjeta inalámbrica

    captura de pantalla

En esta imagen, esta tarjeta de red se llama eth1 (Dentro del paréntesis) pero esto puede ser diferente para cada usuario. Normalmente sería un wlan (como wlan0, wlan1, wlan2 ...) pero también puede ser eth1, eth2, etc. Por lo tanto, debe ver qué nombre tiene.

Otra forma de encontrar el nombre rápidamente es escribiendo iwconfiglo que mostrará todas las tarjetas de red inalámbrica disponibles.


3
Si ha encontrado otra forma de línea de comando para encontrar el nombre de la interfaz inalámbrica. después de escribir, iwlistpresione la tecla dos veces y el terminal escribirá automáticamente el nombre de la interfaz despuésiwilst
Suhaib

2
Podía adivinar correctamente el autor mirando la integridad de la respuesta.
jobin

1
@douglaswalrath Usarías comillas, como en "el hada del azúcar"
Luis Alvarado

Gracias por la extensa guía! Me pregunto si hay otras formas de vincular a una conexión inalámbrica en el inicio sin tener la contraseña escrita en texto plano en un archivo ... ¿Tienes alguna idea?
Michele

1
@Michele esta otra respuesta brinda orientación sobre cómo evitar que la contraseña se guarde en el historial askubuntu.com/a/279333/237654
Hector Correa

36

Es bastante fácil si sabes cómo hacerlo.

Mostrar puntos de acceso wlan disponibles:

nmcli dev wifi

Conéctese con el punto de acceso:

nmcli dev wifi connect $ACCESS_POINT password $PASSWORD

2
Esto es mucho mejor que la respuesta votada de Alvarado, que no funcionó en mi caso (Linux Mint 17.1). ¡Pero esto es bastante simple y simplemente FUNCIONA!
Thorben

1
funcionó para mí en Linux Mint 17
David Okwii

Esta es la respuesta ganadora para mí. Simplemente rápido, fácil y seguro. ¡Gracias!.
GTRONICK

3
@Thorben En mi humilde opinión, esta no es la respuesta aceptada, porque network manager command line interfaceno responde la pregunta original How to connect without a network manager.
Vorac

+1 porque esta respuesta, aunque no se aplica a la pregunta, ayudaría a alguien en el modo de recuperación y ahorraría tiempo. Excelente trabajo user82110.
Luis Alvarado

13

wicd viene con 2 utilidades de línea de comandos: wicd-curses y wicd-cli (pueden requerir una instalación separada) wicd-curse le permite configurar / conectar desconectar a redes (cableadas o inalámbricas) de forma interactiva, wicd-cli ofrece la misma funcionalidad pero a través de solo opciones de línea de comando (útil para scripts) Lo uso en un trabajo cron para solucionar algunos errores de conexión automática:

wicd-cli -y -c -m MY_NETWORK_SSID

También puede "simplemente" tener una configuración wpa_supplicant similar a:

/ etc / network / interface:

auto wlan0 
iface wlan0 inet dhcp 
wpa-conf /etc/wpa.conf

y (como ejemplo de WPA) /etc/wpa.conf:

network={
  ssid="MY_NETWORK_SSID"
  proto=RSN
  key_mgmt=WPA_PSK
  pairwise=CCMP_TKIP
  group=CCMP_TKIP
  psk="my network key in the clear"
}

Hay muchas consideraciones al respecto, de las cuales la preocupación de seguridad de tener la clave previamente compartida en texto claro (wpa_supplicant puede permitirle presentar una clave cifrada o tal vez ofuscada, verifique la página de manual), también haciendo que ese archivo sea propiedad y legible solamente de raíz es una mitigación.

Creo que tener varias secciones de red permitiría conectar varias redes, por orden de prioridad.


wicd no está instalado de manera predeterminada, no estoy seguro si es compatible con el administrador de red.
Guntbert

Es incompatible. Puedes seguir help.ubuntu.com/community/WICD
tr33hous el

5

Yo uso wicd-curses, que creo que es la interfaz de usuario más fácil con diferencia.

maldiciones

Debe usar la (tecla de flecha derecha ->) para establecer configuraciones; todo lo demás es obvio por las instrucciones en pantalla.

Por supuesto, necesita encontrar alguna forma de conectarse a Internet sin wicd; Supongo que ya has resuelto eso o de lo contrario no estarías publicando.

(Esto no es oportuno para el OP, solo publica para la posteridad, ya que esta pregunta aún aparece en Google. Para los buscadores de Google: si estás leyendo esto desde un café o la computadora de un amigo o algo así, tal vez puedas usar un cable en alguna parte para wicd-cursesinstalarlo sudo apt-get install wicd-curses; ¡luego asegúrese de probarlo en una red que funciona antes de salir!)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.