Wi-Fi No Funciona en Linux? Aquí te Decimos Cómo Arreglarlo

Una fotografía de una ventana con un logo de Wi-Fi en ella.

Uno de los grandes desafíos que los usuarios tienden a enfrentar con Linux es el Wi-Fi. Los controladores de Wi-Fi a menudo no están incluidos en el núcleo y, como resultado, hay muchos problemas para que los módulos de Wi-Fi que no son Intel funcionen bien en Linux. Aquí cubrimos lo que sucede cuando el Wi-Fi no está funcionando en Linux y cómo solucionarlo.

Tabla de Contenidos

  • Problemas de Hardware vs. Software de Wi-Fi
  • Instalar Controladores desde el ISO de Ubuntu
  • Problema Uno: Dispositivo No Detectado
  • Problema Dos: Módulo de Controlador Ausente
  • Problema Tres: DNS
  • Problema Cuatro: Sin Gestor de Red

Consejo: aprende cómo puedes encontrar las contraseñas de Wi-Fi guardadas en Linux.

Problemas de Hardware vs. Software de Wi-Fi

Un problema de conexión Wi-Fi puede ser un problema de hardware o software. Los problemas de hardware son relativamente fáciles de diagnosticar: todo lo que tienes que hacer es abrir el terminal e ingresar el siguiente comando:

ping localhost

Un terminal mostrando una prueba de bucle en localhost.

Esta es una forma sencilla de verificar si tu hardware físico está funcionando. localhost funciona como una dirección para revisar el circuito de tu NIC. Si esto no está funcionando, es posible que necesites hacer algún trabajo en el hardware, ya sea tú mismo o alguien más.

Si ese ping regresa limpio o ni siquiera ves tu tarjeta Wi-Fi, probablemente tengas un problema de software.

Además, también puedes verificar si tu sistema detecta una interfaz de red activa ejecutando ip addr. La mayoría de las distribuciones etiquetan las tarjetas inalámbricas actualmente activas como “wl” seguido de los números de bus y ranura del dispositivo en la placa base de la computadora.

Por ejemplo, una etiqueta de “wlp0s1” significa que es una interfaz de red inalámbrica en el bus 0, ranura 1.

Un terminal resaltando el dispositivo inalámbrico que actualmente está funcionando en el sistema.

Nota: Si no puedes navegar por la web, es posible que debas desactivar IPv6 en tu máquina Linux.

Instalar Controladores desde el ISO de Ubuntu

Si tu distribución no está detectando tu red Wi-Fi en absoluto, o si estás recibiendo errores, puedes intentar instalar o reinstalar los controladores de Wi-Fi desde el archivo ISO de Ubuntu. Primero, debes descargar el ISO de Ubuntu correspondiente a tu versión de Ubuntu. (Presumiblemente, necesitas descargarlo en un dispositivo diferente o descargarlo usando tu conexión Ethernet en Ubuntu.)

Abre un Terminal, luego ingresa la siguiente secuencia de comandos para montar el ISO de Ubuntu en una unidad virtual:

sudomkdir/media/cdrom  
sudomount-o loop ~/Downloads/ubuntu-*.iso /media/cdrom

Ve a “Actualizador de Software” desde el panel, luego haz clic en el botón Configuración en la esquina inferior izquierda de la ventana.

Una captura de pantalla resaltando el botón

Haz clic en la pestaña Controladores Adicionales, luego selecciona la opción Adaptador de Red Inalámbrica y haz clic en Aplicar Cambios.

Problema Uno: Dispositivo No Detectado

Si el dispositivo inalámbrico no es detectado por Ubuntu (o cualquier distribución, para el caso), abre una sesión de terminal y escribe el siguiente comando:

sudo lsusb

Este comando mostrará todos los dispositivos USB actualmente conectados a tu máquina. Busca cualquier línea que contenga “Adaptador Inalámbrico” o “RTL.”

sudo lsusb |grep"RTL"

Un terminal mostrando el dispositivo USB Wi-Fi que está activo en Linux.

Además de listar todos los adaptadores USB, también puedes sondear tu sistema en busca de dispositivos inalámbricos PCI. Para hacer esto, ejecuta el siguiente comando:

sudolspci

Al igual que con el comando lsusb, busca cualquier línea en la salida de lspci que contenga una etiqueta de “Controlador de Red” o “Controlador Ethernet”.

Un terminal resaltando el dispositivo Wi-Fi basado en PCI en Ubuntu Linux.

Encuentra el módulo de controlador exacto que tu dispositivo inalámbrico está utilizando actualmente ejecutando el siguiente comando:

sudo lshw -C network |grep"driver"

Resalta el valor de la variable “driver” y cópialo en tu portapapeles.

Un terminal resaltando el controlador activo actualmente para el dispositivo Wi-Fi.

Problema Dos: Módulo de Controlador Ausente

Siguiendo los comandos exitosos lsusb y lspci, confirmando que tu distribución de Linux puede ver la tarjeta inalámbrica, puedes asumir que el firmware está funcionando, solo que el sistema no sabe qué hacer con el dispositivo. Aquí es donde se necesitan controladores o módulos.

Escribe el siguiente comando y luego reemplaza “modulename” con el contenido de tu portapapeles:

sudo modprobe modulename

Por ejemplo, si tu controlador inalámbrico es “iwlwifi,” sería de la siguiente manera:

sudo modprobe iwlwifi

Después de esto, ejecuta sudo lsmod | grep "modulename" para ver si el núcleo de Linux ha cargado correctamente tu dispositivo Wi-Fi.

Un terminal mostrando el módulo Wi-Fi siendo cargado en el núcleo actual.

Cargar Módulo de Controlador Automáticamente al Inicio

Es una ocasión rara, pero a veces el módulo no persistirá desde el arranque. En este caso, puedes forzar que se cargue de forma permanente. Ingresa el siguiente comando en el terminal:

sudonano/etc/modules

Agrega el nombre de tu módulo al final y guarda el archivo.

Un terminal mostrando el archivo de configuración que puede cargar módulos del núcleo al tiempo de arranque.

Reinicia la máquina para verificar si el núcleo de Linux ha cargado correctamente el dispositivo inalámbrico.

Buena información: aprende cómo tu computadora gestiona su hardware instalando tu propio núcleo de Linux personalizado en Ubuntu hoy.

Problema Tres: DNS

Es raro que DNS sea un problema; sin embargo, vale la pena investigar si aún tienes problemas de conexión. Desde el terminal, escribe el siguiente comando para verificar el resolutor DNS predeterminado del sistema:

nmcli device show INTERFACE-NAME |grep IP4.DNS

Por defecto, esto estará configurado en la dirección IP de tu enrutador. Si no funciona, es posible que tengas que cambiar “wlp0s1” por lo que tu inalámbrico utiliza. También se puede usar el siguiente comando para obtener la designación:

ip addr|grep": "

Una vez que tengas esta información, haz ping a la dirección del resolutor DNS. Si eso funciona, también puedes hacer ping a una red externa, como los resolutors DNS de Google:

ping 8.8.8.8

Si todos los dispositivos dentro de tu red están dando errores de carga de páginas, entonces cambia los resolutores DNS en tu enrutador a los servidores de Google o OpenNIC. Tendrás que consultar al fabricante de tu enrutador sobre cómo hacer esto, pero generalmente se hace accediendo a la consola de administración del dispositivo. Puedes encontrar esto en la mayoría de los enrutadores yendo a “192.168.0.1” o “192.168.254.254” en un navegador web.

Agregar un Servidor DNS Personalizado en NetworkManager

Dicho esto, también puedes cambiar el resolutor DNS en función de cada dispositivo. Para hacerlo en Ubuntu, haz clic en el botón del Menú de Control en la esquina superior derecha del escritorio y selecciona el ícono de Engranaje.

Una captura de pantalla resaltando el botón de Configuración en Gnome.

Haz clic en la categoría Wi-Fi, luego busca la categoría Redes Visibles.

Una captura de pantalla resaltando la sección de redes visibles de la categoría Wi-Fi.

Selecciona el ícono de Engranaje en la línea que contiene el nombre de tu punto de acceso inalámbrico.

Haz clic en la pestaña IPv4 en la barra superior de la ventana más pequeña.

Una captura de pantalla resaltando la pestaña IPv4 en el menú de configuración del punto de acceso.

Ve a la sección DNS, luego apaga el interruptor de Automático.

Una captura de pantalla resaltando el interruptor de DNS

Escribe “8.8.8.8,8.8.4.4” en el cuadro de texto DNS, luego haz clic en Aplicar para confirmar la configuración.

Una captura de pantalla resaltando los resolutores DNS personalizados para la conexión Wi-Fi actual.

Abre un nuevo terminal, luego ejecuta el siguiente comando para eliminar cualquier dato anterior del resolutor DNS:

resolvectl flush-caches

Prueba si tu sistema ahora está usando su nueva configuración de resolutor DNS ejecutando lo siguiente:

resolvectl status |grep"Current DNS Server"

Verifica si la configuración actual de DNS resolvió tu problema de red cargando una página web en un navegador web.

Una captura de pantalla del sitio web MakeTechEasier en una máquina Ubuntu con un resolutor DNS personalizado.

Buena información: aprende más sobre servidores de nombres y resolutores DNS utilizando dig en Linux.

Problema Cuatro: Sin Gestor de Red

Digamos que has eliminado el Gestor de Red o lo has desinstalado por accidente. Esta es una situación realmente problemática: no tienes Internet y no tienes Gestor de Red, pero hay cosas que puedes hacer.

Asumiendo que el paquete aún está dentro de tu caché, puedes ir al terminal e ingresar:

# Debian/Ubuntu  
sudo apt install network-manager  
  
# Fedora  
sudo dnf install NetworkManager  
  
# Arch Linux  
sudo pacman -Syu networkmanager

Si eso no funciona, puedes forzar a tu sistema a conectarse a un punto de acceso inalámbrico utilizando wpa_supplicant. Esta es una herramienta de línea de comandos que utiliza el controlador de tu dispositivo inalámbrico para conectarse a un punto de acceso sin usar el Gestor de Red.

Para comenzar, crea un archivo de configuración para wpa_supplicant usando tu editor de texto favorito:

sudonano/etc/wpa_supplicant.conf

Pega el siguiente bloque de código dentro del archivo de configuración, luego reemplaza “SSID” y “PASSWORD” con el nombre del punto de acceso y la contraseña de tu enrutador:

network={  
ssid="SSID"  
password="PASSWORD"  
}

Guarda el archivo de configuración, luego pega la siguiente línea de código en tu sesión de terminal:

sudo wpa_supplicant -B-i INTERFACE-NAME -c/etc/wpa_supplicant.conf -D nl80211

Reemplaza el valor de la bandera “-i” con el nombre de tu interfaz inalámbrica.

Nota: este comando solo funcionará en tarjetas inalámbricas más nuevas. Si estás tratando de vincular una tarjeta Wi-Fi más antigua, reemplaza el valor de la bandera “-D” con “wext.”

Solicita una nueva dirección IP de tu enrutador recargando el demonio DHCP:

sudo dhclient INTERFACE-NAME

Prueba si tu conexión Wi-Fi ahora funciona haciendo ping a un sitio externo:

ping-c5 maketecheasier.com

Reinstala el Gestor de Red para restaurar la plena capacidad de Wi-Fi de tu sistema Linux:

sudo apt install network-manager

Reinicia tu máquina para cargar la nueva instalación del Gestor de Red.

Entender cómo funcionan los módulos de Wi-Fi y los controladores del núcleo es solo el primer paso para aprender cómo funciona Linux bajo el capó. Explora más del lado técnico de este sistema operativo creando un sistema de archivos oculto con Shufflecake.

Créditos de imagen: Dreamlike Street a través de Unsplash y Wikimedia Commons. Todas las alteraciones y capturas de pantalla por Ramces Red.