Casi todos los ordenadores personales (portátiles o de sobremesa) que cumplen los requisitos mínimos de hardware pueden ejecutar el sistema operativo Linux para servidores. No es de extrañar que muchas personas monten sus servidores domésticos en algunos ordenadores personales antiguos pero que siguen funcionando para el autoaprendizaje o para proyectos secundarios.
Una de las opciones comunes de ejecutar un servidor Linux en casa es acceder al servidor a través de una red doméstica Wi-Fi existente. El software de instalación del servidor Linux, en general, no incluye paquetes de soporte para redes inalámbricas, por lo que se depende del usuario para habilitar la conexión Wi-Fi.
En este post, os mostraré los pasos para establecer y configurar el acceso Wi-Fi utilizando WPA supplicant y netplan en Ubuntu Server 20.04 sin conexión ethernet por cable.
Dado que el servidor no tiene conexión ethernet por cable, es necesario descargar el paquete WPA supplicant (wpasupplicant) y dos de sus dependencias (libnl-route-3-200, libpcsclite1) en otra máquina con conexión a Internet, y luego transferirlos al servidor utilizando una unidad flash/externa.
wpasupplicant: soporte cliente para WPA y WPA2 (IEEE 802.11i).
http://mirrors.kernel.org/ubuntu/pool/main/w/wpa/wpasupplicant_2.9-1ubuntu4_amd64.deb
libnl-route-3-200: librería para tratar con sockets netlink – interfaz de rutas.
http://mirrors.kernel.org/ubuntu/pool/main/libn/libnl3/libnl-route-3-200_3.4.0-1_amd64.deb
libpcsclite1: middleware para acceder a una tarjeta inteligente mediante PC/SC (biblioteca).
http://mirrors.kernel.org/ubuntu/pool/main/p/pcsc-lite/libpcsclite1_1.8.26-3_amd64.deb
Puede utilizar el siguiente comando para descargar los paquetes si otra máquina también ejecuta Ubuntu Server 20.04 y no ha instalado el paquete WPA supplicant:
sudo apt install -y --download-only wpasupplicant
Los archivos deb de wpasupplicant y sus dependencias se descargan en el siguiente directorio por defecto:
/var/cache/apt/archives/
Si esa máquina está ejecutando Ubuntu Server 20.04 pero ya ha instalado el paquete WPA supplicant, puede utilizar dpkg-repack para volver a crear los archivos deb:
sudo apt install -y dpkg-repack
sudo dpkg-repack wpasupplicant libnl-route-3–200 libpcsclite1
Ahora, copie estos tres archivos deb a su unidad flash/externa.
Paso 2: Instalar el paquete WPA Supplicant
Busque el nombre del dispositivo para la unidad flash/externa (por ejemplo. memoria USB) después de conectarla al servidor:
sudo fdisk -f
Un disco flash USB suele aparecer en:
/dev/sdb1
Cree un nuevo directorio y monte la unidad flash/externa:
sudo mkdir /media/usb
sudo mount -t vfat /dev/sdb1 /media/usb
Instala el paquete suplicante WPA y sus dependencias:
cd /media/usb
sudo dpkg -i libnl-route-3–200_3.4.0–1_amd64.deb \
libpcsclite1_1.8.26–3_amd64.deb \
wpasupplicant_2.9–1ubuntu4_amd64.deb
Paso 3: Encontrar el nombre de la interfaz inalámbrica
El kernel de Linux enumera los nombres de las interfaces de red a través de enlaces simbólicos en /sys/class/net
, mientras que las interfaces de red inalámbricas se llaman wlp2s0
wlp3s0
, y así sucesivamente:
ls /sys/class/net | grep -i wlp
Hay muchas opciones alternativas para encontrar la interfaz inalámbrica en Linux. Enumero algunos ejemplos a continuación:
# Use ip command: ip link or ip addr
ip link show | grep -i wlp | awk -F: '{print $2}' | xargs
ip addr show | grep -i wlp | awk -F: '{print $2}' | xargs# Use iw tool
iw dev | awk '$1=="Interface" {print $2}'# Use lshw to check wireless adapters
sudo lshw -C network \
| awk '/Wireless interface/,/logical name/ {print $3}' \
| tail -1
Paso 4: Crear un archivo de configuración de NetPlan
Para configurar netplan, haz una copia del archivo de configuración existente, y luego crea uno nuevo bajo /etc/netplan/
con una extensión .yaml
:
sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00.bak
sudo vim /etc/netplan/00-installer-config.yaml
Para que la interfaz inalámbrica llamada wlp2s0
obtenga una dirección IP mediante DHCP, edita el archivo YAML con lo siguiente:
network:
ethernetes: {}
wifis:
wlp2s0:
dhcp4: true
optional:true
access-points:
"network_ssid_name":
password: "**********"
version: 2
renderer: networkd
Para, en su lugar, establecer una dirección IP estática:
network:
ethernetes: {}
wifis:
wlp2s0:
dhcp4: no
dhcp6: no
optional:true
addresses:
gateway4: 192.168.1.1
nameservers:
addresses:
access-points:
"network_ssid_name":
password: "**********"
version: 2
renderer: networkd
Ajustar el nombre de la interfaz inalámbrica, la dirección IP estática, la puerta de enlace, los servidores de nombres y el SSID/contraseña Wi-Fi según sea necesario.
Nota las declaraciones de la clave optional: true
que permiten que el arranque se produzca sin esperar a que esas interfaces se activen por completo.
Paso 5: Aplicar la configuración de Netplan
Una vez que termine de editar el fichero YAML de netplan, genere la configuración del backend a partir de él y compruebe si la configuración suministrada cumple con los estándares definidos:
sudo netplan --debug generate
Si todo está en orden, aplique la configuración suministrada para su uso:
sudo netplan apply
Ahora, reinicie el servidor:
sudo reboot
Notas finales
Si el nombre de la interfaz inalámbrica no aparece, es posible que el adaptador inalámbrico no haya sido reconocido como dispositivo de red del servidor. Puede dirigirse al sitio de ayuda de Ubuntu para obtener la información específica de solución de problemas:
https://help.ubuntu.com/stable/ubuntu-help/net-wireless-troubleshooting-hardware-check.html.en
El archivo YAML de netplan es muy exigente con la sangría, el espaciado y la ausencia de tabulaciones. Consulte el siguiente enlace para obtener ayuda adicional:
https://netplan.io/examples
Asegúrese de introducir el SSID y la contraseña correctos del Wi-Fi en el archivo YAML de netplan. El comando netplan apply
tendrá éxito, pero la interfaz inalámbrica no se activará si proporciona un SSID o una contraseña Wi-Fi incorrectos.
¡Gracias por leer!