Come visualizzare un'interfaccia Wi-Fi da una riga di comando?


30

Non riesco a capire come visualizzare correttamente la scheda Wi-Fi sul mio laptop. Quando lo accendo e problema

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

segnala che la rete è inattiva. Anche provare a farlo apparire fallisce:

$ sudo ifup wlan0
wlan0     no private ioctls.

Failed to bring up wlan0.

Apparentemente mi manca qualche iw...comando di base di basso livello .

Quando emetto dhclientsull'interfaccia:

$ 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 interromperlo, porta il dispositivo in qualche modo e quindi la scansione ecc. funziona. Vorrei evitare questo passaggio ovviamente superfluo.


Esistono più interfacce wifi dal kernel allo spazio utente. Il iwconfigè deprecata e non possono essere configurate in un kernel moderno. Il iwmetodo è più moderno / preferito ( nl80211 ). Vecchio iwconfigpotrebbe dare errori strani quando il supporto wext non è compilato / configurato. Quali sono le distribuzioni di strumenti / script disponibili è un altro problema. Immagino che se usi una distro, dovrebbero avere cura di fornire i giusti pacchetti / configurazioni. Se costruisci il tuo, allora potresti avere il problema sopra.
rumore senza arte il

Risposte:


29

Anzi, prova sudo ifconfig wlan0 up. Per approfondire la risposta di Martin:

ifupe i ifdowncomandi fanno parte del pacchetto ifupdown , che ora è considerato un frontend legacy per la configurazione di rete , rispetto a quelli più recenti, come network manager.

Su ifup ifupdownlegge le impostazioni di configurazione da /etc/network/interfaces; si corre pre-up, post-upe post-downscript da /etc/network, che comprendono a partire /etc/wpasupplicant/ifupdown.shche i processi di ulteriori wpa-*opzioni di configurazione per wpa wifi, a /etc/network/interfaces (vedi zcat /usr/share/doc/wpasupplicant/README.Debian.gzper la documentazione). Per il wireless-toolspacchetto WEP ha un ruolo simile a wpa-supplicant. iwconfigè da wireless-tools, troppo.

ifconfigallo stesso tempo è uno strumento di livello inferiore , che viene utilizzato da ifupdowne consente una maggiore flessibilità. Ad esempio, ci sono 6 modalità di funzionamento dell'adattatore wifi e IIRC ifupdowncopre solo la modalità gestita (+ modalità roaming, che formalmente non è modalità?). Con iwconfige ifconfigsi può abilitare ad esempio, modalità di monitoraggio della vostra scheda wireless, mentre con ifupdownnon sarà in grado di farlo direttamente.


7
con tratto debian, ifconfigè stato sostituito da ip, il comando alternativo èip link set wlan0 up
Ben


4

Ecco cosa utilizzo per connettermi a un punto di accesso WEP, su base giornaliera:

#!/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

Dovrai inserire ESSID e MAC per qualsiasi punto di accesso desiderato.

È un po 'più difficile per la crittografia WPA. Devi avere un wpa_supplicant.conffile con una voce appropriata. Come questo:

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

Una volta che hai un file conf, puoi eseguire questo 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 

Aggiornamento, 03-12-2014:

Arch Linux è quello che è, il mio script connect-to-WEP è molto diverso. Ho pensato di aggiungerlo a questa risposta per tenerlo aggiornato.

#!/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

Ho dovuto passare all'impiego iwmolto all'improvviso. Qualcosa sul kernel Arch LTS o sui driver WiFi (il mio laptop ha una scheda WiFi Intel che utilizza il driver "iwl4965") è cambiato non molto tempo fa. Dovrai cambiare la frequenza ("2462") e l'indirizzo MAC del punto di accesso per farlo funzionare.


3

A partire da Ubuntu 18.04 (e le corrispondenti versioni di Debian) ifconfige ifup/ ifdownsono deprecati, e il modo raccomandato per far apparire l'interfaccia è con il ipcomando:

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

E puoi controllare le tue interfacce disponibili con:

ip link

E puoi mostrare gli indirizzi IP assegnati alle tue interfacce con:

ip addr show

O più precisamente:

ip addr show scope global | grep inet
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.