GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Conéctese a Wi-Fi desde la terminal en Ubuntu 18.04/20.04 con suplicante WPA

En este tutorial, vamos a aprender cómo conectarse a la red Wi-Fi desde la línea de comandos en el servidor y escritorio Ubuntu 18.04/20.04 usando wpa_supplicant . En una red inalámbrica doméstica moderna, las comunicaciones están protegidas con WPA-PSK (clave precompartida) en lugar de WPA-Enterprise, que está diseñado para redes empresariales. WPA-PSK también se conoce como WPA-Personal. wpa_supplicant es una implementación del componente suplicante WPA. Un solicitante en LAN inalámbrica es un software de cliente instalado en la computadora del usuario final que debe autenticarse para unirse a una red.

Tenga en cuenta que deberá instalar wpa_supplicant software antes de conectarse a Wi-Fi, por lo que primero debe conectarse a Ethernet por cable, lo cual se hace solo una vez. Si no te gusta este método, no te enfades conmigo. Quizás algún día Ubuntu envíe wpa_supplicant en una instalación limpia.

Paso 1:encuentre el nombre de su interfaz inalámbrica y red inalámbrica

Ejecute iwconfig comando para encontrar el nombre de su interfaz inalámbrica.

iwconfig

wlan0 solía ser un nombre común para la interfaz de red inalámbrica en sistemas Linux sin Systemd. Debido a que Ubuntu usa Systemd, encontrará que su interfaz de red inalámbrica se llama algo así como wlp4s0 . También puede ver que no está asociado con ningún punto de acceso en este momento.

Si su interfaz inalámbrica no se muestra, tal vez necesite abrirla con el siguiente comando.

sudo ifconfig wlp4s0 up

Luego busque el nombre de su red inalámbrica escaneando las redes cercanas con el siguiente comando. Reemplazar wlp4s0 con su propio nombre de interfaz inalámbrica. ESSID es el identificador del nombre de la red.

sudo iwlist wlp4s0 scan | grep ESSID

Paso 2:Conéctese a la red Wi-Fi con WPA_Supplicant

Ahora instala wpa_supplicant en Ubuntu 18.04/20.04 desde el repositorio de software predeterminado.

sudo apt install wpasupplicant

Necesitamos crear un archivo llamado wpa_supplicant.conf usando la wpa_passphrase utilidad. wpa_supplicant.conf es el archivo de configuración que describe todas las redes a las que el usuario desea que se conecte la computadora. Ejecute el siguiente comando para crear este archivo. Reemplace el ESSID y la contraseña de Wi-Fi con los suyos propios.

wpa_passphrase your-ESSID your-wifi-passphrase | sudo tee /etc/wpa_supplicant.conf

Tenga en cuenta que en la captura de pantalla anterior, envolví mi ESSID con comillas dobles, porque mi ESSID contiene espacios en blanco.

La salida de wpa_passphrase el comando se canalizará a tee y luego se escribe en /etc/wpa_supplicant.conf expediente. Ahora use el siguiente comando para conectar su tarjeta inalámbrica al punto de acceso inalámbrico.

sudo wpa_supplicant -c /etc/wpa_supplicant.conf -i wlp4s0

El siguiente resultado indica que su tarjeta inalámbrica se conectó con éxito a un punto de acceso.

Successfully initialized wpa_supplicant
wlp4s0: SME: Trying to authenticate with c5:4a:21:53:ac:eb (SSID='LinuxBabe.Com Network' freq=2437 MHz)
wlp4s0: Trying to associate with c5:4a:21:53:ac:eb (SSID='LinuxBabe.Com Network' freq=2437 MHz)
wlp4s0: Associated with c5:4a:21:53:ac:eb
wlp4s0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
wlp4s0: WPA: Key negotiation completed with c5:4a:21:53:ac:eb [PTK=CCMP GTK=CCMP]
wlp4s0: CTRL-EVENT-CONNECTED - Connection to c5:4a:21:53:ac:eb completed [id=0 id_str=]

Tenga en cuenta que si está utilizando la edición de escritorio de Ubuntu, debe detener Network Manager con el siguiente comando; de lo contrario, causará un problema de conexión al usar wpa_supplicant .

sudo systemctl stop NetworkManager

Y deshabilite el inicio automático de NetworkManager en el momento del arranque ejecutando el siguiente comando.

sudo systemctl disable NetworkManager-wait-online NetworkManager-dispatcher NetworkManager

De forma predeterminada, wpa_supplicant se ejecuta en primer plano. Si se completa la conexión, abra otra ventana de terminal y ejecute

iwconfig

Puede ver que la interfaz inalámbrica ahora está asociada con un punto de acceso.

Puedes presionar CTRL+C para detener el wpa_supplicant actual proceso y ejecútelo en segundo plano agregando -B bandera.

sudo wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlp4s0

Aunque estamos autenticados y conectados a una red inalámbrica, aún no tenemos una dirección IP. Para obtener una dirección IP privada del servidor DHCP, use el siguiente comando:

sudo dhclient wlp4s0

Ahora su interfaz inalámbrica tiene una dirección IP privada, que se puede mostrar con:

ip addr show wlp4s0

Ahora puede acceder a Internet. Para liberar la dirección IP privada, ejecute

sudo dhclient wlp4s0 -r

Conexión a una red inalámbrica oculta

Si su enrutador inalámbrico no transmite ESSID, debe agregar la siguiente línea en /etc/wpa_supplicant.conf archivo.

scan_ssid=1

Como a continuación:

network={
        ssid="LinuxBabe.Com Network"
        #psk="12345qwert"
        psk=68add4c5fee7dc3d0dac810f89b805d6d147c01e281f07f475a3e0195
        scan_ssid=1
}

Paso 3:Conexión automática en el momento del arranque

Para conectarse automáticamente a la red inalámbrica en el momento del arranque, debemos editar el wpa_supplicant.service expediente. Es una buena idea copiar el archivo desde /lib/systemd/system/ directorio a /etc/systemd/system/ directorio, luego edite el contenido del archivo, porque no queremos una versión más nueva de wpa_supplicant para anular nuestras modificaciones.

sudo cp /lib/systemd/system/wpa_supplicant.service /etc/systemd/system/wpa_supplicant.service

Edite el archivo con un editor de texto de línea de comandos, como Nano.

sudo nano /etc/systemd/system/wpa_supplicant.service

Busque la siguiente línea.

ExecStart=/sbin/wpa_supplicant -u -s -O /run/wpa_supplicant

Cámbialo por lo siguiente. Aquí agregamos el archivo de configuración y el nombre de la interfaz inalámbrica al ExecStart comando.

ExecStart=/sbin/wpa_supplicant -u -s -c /etc/wpa_supplicant.conf -i wlp4s0

Se recomienda intentar siempre reiniciar wpa_supplicant cuando se detecta una falla. Agregue lo siguiente justo debajo de ExecStart línea.

Restart=always

Si puede encontrar la siguiente línea en este archivo, coméntelo (agregue el carácter # al principio de la línea).

Alias=dbus-fi.w1.wpa_supplicant1.service

Guarde y cierre el archivo. (Para guardar un archivo en el editor de texto Nano, presione Ctrl+O , luego presione Enter para confirmar. Para salir, presiona Ctrl+X .) Luego recarga systemd.

sudo systemctl daemon-reload

Habilitar wpa_supplicant servicio para iniciar en el momento del arranque.

sudo systemctl enable wpa_supplicant.service

También necesitamos iniciar dhclient en el momento del arranque para obtener una dirección IP privada del servidor DHCP. Esto se puede lograr creando una unidad de servicio systemd para dhclient .

sudo nano /etc/systemd/system/dhclient.service

Ponga el siguiente texto en el archivo.

[Unit]
Description= DHCP Client
Before=network.target
After=wpa_supplicant.service

[Service]
Type=forking
ExecStart=/sbin/dhclient wlp4s0 -v
ExecStop=/sbin/dhclient wlp4s0 -r
Restart=always
 
[Install]
WantedBy=multi-user.target

Guarde y cierre el archivo. Luego habilite este servicio.

sudo systemctl enable dhclient.service

Cómo obtener una dirección IP estática

Si desea obtener una dirección IP estática, debe deshabilitar dhclient.service .

sudo systemctl disable dhclient.service

Necesitamos usar netplan para configurar la dirección IP estática en Ubuntu 18.04/20.04. Cree un archivo de configuración en /etc/netplan/ .

sudo nano /etc/netplan/10-wifi.yaml

Agregue las siguientes líneas a este archivo. Reemplazar 192.168.0.102 con su dirección IP preferida. Tenga cuidado con la sangría. Un espacio adicional invalidaría la configuración.

network:
    ethernets:
        wlp4s0:
            dhcp4: no
            addresses: [192.168.0.102/24]
            gateway4: 192.168.0.1
    version: 2

Guarde y cierre el archivo. Luego aplique las configuraciones.

sudo netplan apply

También puede activar --debug opción si no funciona como se esperaba.

sudo netplan --debug apply

Si hay otros .yaml archivos bajo /etc/netplan/ directorio, luego netplan combinará automáticamente las configuraciones de diferentes archivos. netplan usa systemd-networkd como renderizador de red back-end. Se recomienda configurar el wpa_supplicant.service se ejecuta antes de systemd-networkd.service , por lo que el sistema primero se asociará con un punto de acceso Wi-Fi y luego obtendrá una dirección IP privada.

sudo nano /etc/systemd/system/wpa_supplicant.service

Busque la siguiente línea.

Before=network.target

Cámbialo por:

Before=network.target systemd-networkd.service

Guarde y cierre el archivo.

Otra forma de obtener una dirección IP estática es iniciar sesión en la interfaz de administración de su enrutador y asignar una IP estática a la dirección MAC de su tarjeta inalámbrica, si su enrutador admite esta función.

Uso de un nombre de host para acceder a los servicios en Ubuntu

En realidad, no tiene que obtener una dirección IP estática para su caja de Ubuntu. Ubuntu puede usar mDNS (Multicast DNS) para anunciar su nombre de host a la red local y los clientes pueden acceder a los servicios en su caja de Ubuntu con ese nombre de host. Este nombre de host siempre se puede resolver en la dirección IP de su caja de Ubuntu, incluso si la dirección IP cambia.

Para usar mDNS, debe instalar avahi-daemon, que es una implementación de código abierto de mDNS/DNS-SD.

sudo apt install avahi-daemon

Inicie el servicio.

sudo systemctl start avahi-daemon

Habilite el inicio automático en el momento del arranque.

sudo systemctl enable avahi-daemon

Avahi-daemon escucha en UDP 5353, por lo que debe abrir este puerto en el firewall. Si usa UFW, ejecute el siguiente comando.

sudo ufw allow 5353/udp

Luego, debe establecer un nombre de host único para su caja de Ubuntu con hostnamectl dominio. Reemplace ubuntubox con su nombre de host preferido, que no debería estar ya en otros dispositivos en la red local.

sudo hostnamectl set-hostname ubuntubox

Ahora reinicie avahi-daemon.

sudo systemctl restart avahi-daemon

Si comprueba el estado con

systemctl status avahi-daemon

puede ver el nombre de host mDNS, que termina con .local dominio.

En la computadora cliente, también necesita instalar un software mDNS/DNS-SD.

  • Los usuarios de Linux deben instalar avahi-daemon .
  • Los usuarios de Windows deben habilitar el servicio Bonjour instalando el servicio de impresión Bonjour o instalando iTunes.
  • En macOS, Bonjour está preinstalado.

Ahora puede acceder a los servicios usando ubuntubox.local nombre de host, lo que elimina la necesidad de verificar y escribir la dirección IP.

Desbloquear Wi-Fi en Raspberry Pi

El sistema operativo Ubuntu ARM para Raspberry Pi bloquea la interfaz inalámbrica de forma predeterminada. Necesitas desbloquearlo con:

sudo rfkill unblock wifi

Para desbloquearlo en el momento del arranque, cree una unidad de servicio systemd.

sudo nano /etc/systemd/system/unblock-wifi.service

Añádele las siguientes líneas.

[Unit]
Description=RFKill Unblock WiFi Devices
Requires=wpa_supplicant.service
After=wpa_supplicant.service

[Service]
Type=oneshot
ExecStart=/usr/sbin/rfkill unblock wifi
ExecStop=
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Guarde y cierre el archivo. Habilite el inicio automático en el momento del arranque.

sudo systemctl enable unblock-wifi

Descubrí que unblock-wifi.service debe ejecutarse después de wpa_supplicant.service comienza, de lo contrario no puede desbloquear wifi. Tenga en cuenta que si ha instalado un entorno de escritorio, es probable que se esté ejecutando un administrador de red que pueda interferir con la conexión. Necesitas desactivarlo. Por ejemplo, uso el entorno de escritorio ligero LXQT en Raspberry Pi (sudo apt install lubuntu-desktop ) y necesita deshabilitar connman.service y NetworkManager.service.

sudo systemctl disable connman.service NetworkManager.service

Lectura recomendada

  • Cómo usar Systemd en Linux:administrar servicios, niveles de ejecución y registros

Múltiples redes wifi

El /etc/wpa_supplicant.conf El archivo de configuración puede incluir múltiples redes Wi-Fi. wpa_supplicant seleccionará automáticamente la mejor red según el orden de los bloques de red en el archivo de configuración, el nivel de seguridad de la red y la intensidad de la señal.

Para agregar una segunda red Wi-Fi, ejecute

wpa_passphrase your-ESSID your-wifi-passphrase | sudo tee -a /etc/wpa_supplicant.conf

Tenga en cuenta que debe usar -a opción con la tee comando, que agregará, en lugar de eliminar el contenido original, la nueva red Wifi al archivo.

Seguridad wifi

No use WPA2 TKIP o WPA2 TKIP+AES como el método de cifrado en su enrutador Wi-Fi. TKIP ya no se considera seguro. Puedes usar WPA2-AES como método de cifrado.


Ubuntu
  1. Configuración de la interfaz inalámbrica en Ubuntu

  2. Cómo conectar WiFi desde la terminal en Ubuntu 16.04

  3. Cómo configurar la rotación de registros con Logrotate en Ubuntu 18.04/20.04

  4. Ubuntu:¿copiar un texto largo de una sola línea desde una terminal con una línea de cambio no deseada?

  5. ¿Cómo conectarse a Wifi con Wps Pin en Ubuntu 14.04?

2 formas de actualizar desde Ubuntu 16.04/17.10 a Ubuntu 18.04 (gráfico y terminal)

2 formas de actualizar de Ubuntu 16.04/17.04 a Ubuntu 17.10 (gráfico y terminal)

2 formas de actualizar de Ubuntu 18.04 a 18.10 (GUI y terminal)

2 formas de actualizar Ubuntu 20.04/20.10 a 21.04 (GUI y terminal)

Cómo conectarse a WiFi desde la terminal en Ubuntu Linux

Cómo conectarse a WiFi desde la terminal en Ubuntu Linux