¿Cómo abrir una interfaz wi-fi desde una línea de comando?


30

No puedo entender cómo abrir correctamente la tarjeta wi-fi en mi computadora portátil. Cuando lo enciendo y emito

$ sudo iwconfig wlan0 txpower auto
$ sudo iwlist wlan0 scan
wlan0     Interface doesn't support scanning : Network is down

informa que la red está inactiva. Intentar sacarlo también falla:

$ sudo ifup wlan0
wlan0     no private ioctls.

Failed to bring up wlan0.

Aparentemente me falta algún iw...comando básico de bajo nivel .

Cuando publico dhclienten la interfaz:

$ sudo dhclient -v wlan0
Internet Systems Consortium DHCP Client 4.2.2
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

^C$

e interrumpirlo, activa el dispositivo de alguna manera y luego escanea, etc. funciona. Me gustaría evitar este paso obviamente superfluo.


Hay múltiples interfaces wifi desde el kernel hasta el espacio de usuario. El iwconfigestá en desuso y no puede configurarse en un núcleo moderno. El iwmétodo es más moderno / preferido ( nl80211 ). Los más antiguos iwconfigpueden dar errores extraños cuando el soporte de wext no se compila / configura. Lo que las distribuciones de herramientas / scripts ponen a disposición es otro problema. Supongo que si usas una distribución, deberían cuidar de dar los paquetes / configuraciones correctos. Si crea el suyo propio, puede que tenga el problema anterior.
ruido

Respuestas:


29

De hecho, inténtalo sudo ifconfig wlan0 up. Para elaborar sobre la respuesta de Martin:

ifupy los ifdowncomandos son parte del paquete ifupdown , que ahora se considera un frontend heredado para la configuración de la red , en comparación con los más nuevos, como network manager.

Al ifup ifupdownleer los ajustes de configuración de /etc/network/interfaces; que se ejecuta pre-up, post-upy post-downsecuencias de comandos desde /etc/network, que incluyen a partir /etc/wpasupplicant/ifupdown.shde que los procesos adicionales wpa-*opciones de configuración de Wi-Fi WPA, en /etc/network/interfaces (ver zcat /usr/share/doc/wpasupplicant/README.Debian.gzdocumentación). Para el wireless-toolspaquete WEP juega un papel similar al wpa-supplicant. iwconfiges de wireless-tools, también.

ifconfigAl mismo tiempo, es una herramienta de nivel inferior , que utiliza ifupdowny permite una mayor flexibilidad. Por ejemplo, hay 6 modos de funcionamiento del adaptador wifi y IIRC ifupdowncubre solo el modo administrado (+ modo roaming, que formalmente no es el modo?). Con iwconfigy ifconfigse puede activar por ejemplo el modo de monitor de su tarjeta inalámbrica, mientras que con ifupdownusted no será capaz de hacerlo directamente.


77
con debian stretch, ifconfigha sido reemplazado por ip, el comando alternativo esip link set wlan0 up
Ben


4

Esto es lo que uso para conectarme a un punto de acceso WEP, a diario:

#!/bin/bash

DEV=$(iw dev | awk '/Interface/ {interf=$2} END {print interf}')
PIDFILE=/var/run/dhcpcd-$DEV.pid


if [[ -f $PIDFILE ]] && kill -0 $(cat /var/run/dhcpcd-$DEV.pid)
then
    dhcpcd -k $DEV
fi

ifconfig $DEV down
sleep 1
iwconfig $DEV mode managed
iwconfig $DEV  key blabfoobar
ifconfig $DEV up
iwconfig $DEV essid 'Unindicted Co-conspirator'
iwconfig $DEV ap 00:0D:51:EB:E5:1E

sleep 5
dhcpcd --noipv6rs --noarp $DEV

Tendrá que poner el ESSID y MAC para cualquier punto de acceso que desee.

Es un poco más difícil para el cifrado WPA. Debe tener un wpa_supplicant.confarchivo con una entrada adecuada. Me gusta esto:

# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers
network={
    ssid="FaveCoffeeHouse"
    psk="cafe241800"
    priority=1
}

Una vez que tenga dicho archivo conf, puede ejecutar este script:

#!/bin/bash

DEV=$(iw dev | awk '/Interface/ {print $2}')

ifconfig $DEV down
iwconfig $DEV mode managed
ifconfig $DEV up
iwconfig $DEV essid 'FaveCoffeeHouse'
iwconfig $DEV ap 00:21:1e:3d:2a:80

echo now run: wpa_supplicant -Dnl80211 -i$DEV -c./wpa_supplicant.conf 

Actualización, 2014-12-03:

Arch Linux es lo que es, mi script de conexión a WEP es muy diferente. Pensé en agregarlo a esta respuesta para mantenerlo actualizado.

#!/bin/bash

DEV=wlp12s0

if [[ -f /run/dhcpcd-$DEV.pid ]]
then
        kill -QUIT $(cat /run/dhcpcd-$DEV.pid)
fi

ifconfig $DEV down
iw dev $DEV set type managed
ifconfig $DEV up
sleep 2

iw dev wlp12s0 connect -w 'Akond of Swat' 2462 00:7c:41:eb:e5:1e key 0:befedade

sleep 15

dhcpcd -4 --nohook 10-wpa_supplicant --noarp --noipv6rs $DEV

Tuve que cambiar a usar iwmuy de repente. Algo sobre el núcleo Arch LTS o los controladores WiFi (mi computadora portátil tiene una tarjeta Intel WiFi que usa el controlador "iwl4965") cambió hace poco. Tendrá que cambiar la frecuencia ("2462") y la dirección MAC del punto de acceso para que esto funcione.


3

A partir de Ubuntu 18.04 (y las versiones correspondientes de Debian) ifconfigy ifup/ ifdownestán en desuso, y la forma recomendada de abrir la interfaz es con el ipcomando:

ip link set dev <interface> up
ip link set dev <interface> down

Y puede verificar sus interfaces disponibles con:

ip link

Y puede mostrar las direcciones IP asignadas de sus interfaces con:

ip addr show

O más específicamente:

ip addr show scope global | grep inet
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.