conectar a internet por wifi desde consola (wpa supplicant + DHCPCD)

fundamentos GNU/Linux fun-gnu


Siempre instalo GNU/Linux desde una conexión ethernet. Es más simple, rápido y lo único que hago es activar DHCP y este le asignará automáticamente una IP a la interfaz de red.

Más adelante, si instalo Gnome, este instala NetworkManager y la conexión wifi se convierte en algo banal.

El otro día, tras una nueva instalación de Gentoo, me negué a instalar Gnome, hice una minimalista instalación con i3, personalizada, simple, hermosa, rápida y perfecta. Y así mismo me negué a instalar NetworkManager.

Así que me dije, es el momento de conectar a internet por wifi desde la consola o un terminal.

Esto se puede hacer de diferentes formas, pero la que describo es muy sencilla y pensada para que tu ordenador se conecte automáticamente siempre a TU wifi, sin hacer nada ni preguntarte nada. No está pensada para cambiar de conexión wifi, eso se hace de otra manera que algún día contaré.

Vamos allá:

Se instala el paquete «wpa supplicant»:

sudo apt install wpasupplicant
sudo pacman -S wpa_supplicant
sudo emerge wpa_supplicant

Para Debian, Arch y Gentoo, respectivamente.

En un terminal se utiliza wpa_passphrase para generar los datos de conexión adecuados:

wpa_passphrase nombre-de-tu-wifi frase-contraseña

lo que genera algo así adaptado a tus datos:

*************************************************************

network={
ssid=»nombre-de-tu-wifi»
#psk=»frase-contraseña»
psk=f5d1c49e15e679bebe385c37648d4141bc5c9297796a8a185d7bc5ac62f954e3
}

*************************************************************
editamos el archivo wpa_supplicant.conf

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Y copiamos el resultado de wpa_passphrase más la autorización de wpa_supplicant para el grupo wheel.

O sea, algo similar a todo esto:

*************************************************************

# Allow users in the ‘wheel’ group to control wpa_supplicant
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel

# Make this file writable for wpa_gui
update_config=1

network={
ssid=»nombre-de-tu-wifi»
#psk=»frase-contraseña»
psk=f5d1c49e15e679bebe385c37648d4141bc5c9297796a8a185d7bc5ac62f954e3
}

*************************************************************

Lógicamente, tu usuario debe pertenecer el grupo wheel (el mismo de sudo).

Miras si estás en el grupo wheel:

groups pepito

Si no perteneces a wheel te añades así:

sudo usermod -a -G wheel pepito

Y ya casi está. Para que DHCP le asigne una IP al arranque hace falta que DHCPCD arranque al inicio:

Le decimos a Systemd que inicie DHCPDC en cada arranque del sistema.

sudo systemctl enable dhcpcd

No es necesario añadir wpa_supplicant al inicio, pues DHCPDC buscará automáticamente si hay un fichero /etc/wpa_supplicant/wpa_supplicant.conf válido, y si lo hay conectará la interfaz wifi a esa red con esa contraseña.

Y ya está, rebootea, arranca y comprueba con ifconfig que la interfaz wifi tiene asignada una IP.

Este es el resultado de mi ifconfig:

*************************************************************

enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.8 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fdf4:8e92:3d68:8400:2f2e:90d9:4dd8:faea prefixlen 64 scopeid 0x0<global>
inet6 fe80::4641:ce9d:3f9f:4268 prefixlen 64 scopeid 0x20<link>
ether 74:d0:2b:1e:3a:1d txqueuelen 1000 (Ethernet)
RX packets 9590 bytes 7058517 (6.7 MiB)
RX errors 0 dropped 1 overruns 0 frame 0
TX packets 8932 bytes 1072214 (1.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 19
wlp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.3 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fdf4:8e92:3d68:8400:51b6:4f49:48df:7e88 prefixlen 64 scopeid 0x0<global>
inet6 fe80::a79b:2de:a75f:c590 prefixlen 64 scopeid 0x20<link>
ether 48:d2:24:75:4b:c7 txqueuelen 1000 (Ethernet)
RX packets 154 bytes 37043 (36.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 14 bytes 1820 (1.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

*************************************************************

DHCPCD le ha asignado la IP 10.0.0.8 a la interfaz de red ethernet (enp3s0) y
la IP 10.0.0.3 a la interfaz de red wifi (wlp2s0).

Por lo que tendré siempre conexión a mi wifi y, por tanto a internet, aunque desenchufe el cable de red  ;-P

He probado esto en Gentoo y en Arch y funciona sin problema, y de la misma forma debería funcionar en cualquier otra distro LINUX.

Anuncio publicitario

5 opiniones en “conectar a internet por wifi desde consola (wpa supplicant + DHCPCD)”

  1. Necesitaria tu ayuda si puedes.
    En el CD de instalación de Arch hago esto:

    wpa_passphrase MYSSID Frase de contraseña > /etc/wpa_supplicant/wpa_supplicant.conf
    wpa_supplicant -B -iwlp0s6u1 -c/etc/wpa_supplicant/example.conf

    hasta ahi todo perfecto.
    Cuando hago:

    dhcpcd wlp0s6u1

    dice:

    wlp0s6u1: waiting for carrier
    timed out
    dhcpcd exited

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: