Come si connette a una rete WPA wifi utilizzando la riga di comando?

98

Quindi, in sostanza, mi piacerebbe usare iwconfig per connettermi alla mia rete wifi quando non sono dentro X. Ma non vedo il modo di farlo nella pagina man. Qualche idea?

    
posta Ken Kinder 17.05.2012 - 17:48

9 risposte

94

iw (list / config) può gestire solo WEP.

Hai bisogno del pacchetto wpasupplicant che fornisce il comando wpa_supplicant , installa se necessario attraverso sudo apt-get install wpasupplicant .

Metti il ​​tuo SSID e la tua password in /etc/wpa_supplicant.conf .

Esempio:

network={
    ssid="ssid_name"
    psk="password"
}

Supponendo che la tua interfaccia sia wlan0, puoi connetterti con:

sudo wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext
sudo dhclient wlan0

"wext" è un driver e questo sarà specifico per ogni carta; fare riferimento a wpa_supplicant -h . Esempi:

hostap (default) Host AP driver (Intersil Prism2/2.5/3). (this can also be used with Linuxant DriverLoader).
hermes Agere Systems Inc. driver (Hermes-I/Hermes-II).
madwifi MADWIFI 802.11 support (Atheros, etc.).
atmel ATMEL AT76C5XXx (USB, PCMCIA).
wext Linux wireless extensions (generic).
ndiswrapper Linux ndiswrapper.
broadcom Broadcom wl.o driver.
ipw Intel ipw2100/2200 driver.
wired wpa_supplicant wired Ethernet driver
roboswitch wpa_supplicant Broadcom switch driver
bsd BSD 802.11 support (Atheros, etc.).
ndis Windows NDIS driver.
    
risposta data Rinzwind 17.05.2012 - 17:57
68

Questo link mostra tutto e ha funzionato bene per me: link

Sto copiando il contenuto qui, quindi ce l'abbiamo, nel caso in cui quel sito non sia in linea.

Riga di comando WPA

A volte sarai a una riga di comando senza accesso agli strumenti di rete della GUI, ma il tuo punto di accesso è protetto con WPA. Che cosa fai?

Supponendo che la tua scheda wireless funzioni effettivamente (ad esempio, iwconfig può vederla e interagire con essa), usare wpa_supplicant è in realtà piuttosto semplice. Installazione di wpa_supplicant

Oggi la maggior parte delle distro ha wpa_supplicant installato per impostazione predefinita. Se hai i comandi wpa_passphrase e wpa_supplicant disponibili, allora sei a posto. Altrimenti, dovrai installare il pacchetto facendo qualcosa di simile (per Ubuntu):

$ sudo apt-get install wpasupplicant

O (per Fedora):

# yum install wpa_supplicant

O qualunque sia il comando per la tua distribuzione.

Generazione del file di configurazione

Ora che wpa_supplicant è installato, creeremo il suo file di configurazione. Una volta che conosci la passphrase SSID e WPA, tutto ciò che devi fare è eseguire:

$ wpa_passphrase myrouter mypassphrase > wpa.conf

Ovviamente, sostituisci "myrouter" con il SSID del tuo router, "mypassphrase" con la tua passphrase WPA e "wpa.conf" con qualsiasi file in cui desideri memorizzare la configurazione. Questo nome file non deve seguire un formato particolare o con un'estensione particolare.

In alternativa, per evitare di digitare la passphrase sulla riga di comando (in modo che non venga salvata nella cronologia della shell), è possibile specificare solo l'SSID sulla riga di comando. wpa_passphrase attenderà che tu scriva la passphrase seguita da:

$ wpa_passphrase myrouter > wpa.conf
mypassphrase

Dovresti finire con un file simile al seguente:

network={
    ssid="myrouter"
    #psk="mypassphrase"
    psk=8ada1f8dbea59704ac379538b4d9191f6a72390581b4cd7a72864cea685b1a7f
}

Connessione

Ora eseguiremo wpa_supplicant per connettersi alla rete wireless. Innanzitutto, se il tuo router trasmette il suo SSID (tutti di default), probabilmente vuoi assicurarti che la tua scheda wireless possa effettivamente vederlo:

$ iwlist scan

Potrebbe essere necessario eseguirlo come root per forzare un aggiornamento.

Successivamente, dovrai conoscere tre informazioni:

  1. Quali driver wireless wpa_supplicant utilizzare per la tua carta. L'esecuzione di wpa_supplicant --help elenca i diversi driver che ha (sotto "drivers:"). A partire da 0.5.8, le scelte utili sono: wext, hostap, madwifi, atmel, ndiswrapper e ipw (ipw è solo per vecchi kernel; & gt; = 2.6.13 dovrebbe usare wext). Se non vedi una corrispondenza specifica per la tua carta, prova wext, dato che è il tipo di catch-all.
  2. Il dispositivo di rete della tua carta. Questo di solito è eth1 o wlan0, ma se non sei sicuro puoi semplicemente eseguire iwconfig. Riporterà "nessuna estensione wireless" per dispositivi non wireless e mostrerà alcuni dati per qualsiasi dispositivo wireless.
  3. Il percorso del file di configurazione creato nel passaggio precedente.

Ora che hai questi dati, esegui (come root):

# wpa_supplicant -D[driver] -i[device] -c[/path/to/config]

Non ci sono spazi tra opzioni e parametri. Non includere le parentesi come ho appena aggiunto quelli per chiarezza. Ad esempio, per il mio portatile sembra questo:

# wpa_supplicant -Dwext -ieth1 -c/root/wpa.conf

Puoi anche eseguirlo in background usando l'opzione -B in modo che non occupi la tua console.

Ora sei associato alla rete.

In linea

Per essere effettivamente online, devi ottenere un IP in qualche modo. La maggior parte delle persone vorranno ottenere un IP dinamico da un server DHCP, probabilmente quello integrato nel router. (Non ho intenzione di definire un IP statico e una tabella di routing perché è una bestia in sé.)

Per ottenere un lease DHCP, prima rilasciare qualsiasi leasing su cui stai ancora tenendo (come root):

# dhclient -r

Quindi chiedi un nuovo leasing (ovviamente sostituendo eth1 con il nome del tuo dispositivo di rete, lo stesso che hai usato nella sezione precedente):

# dhclient eth1

Ora hai un IP, almeno in teoria. Buona navigazione!

    
risposta data Alexandre Schmidt 08.04.2013 - 21:44
5

Debian e altre distro hanno wpa_suplicant in esecuzione come servizio di default per gestire le reti wifi. wpa_suplicant può essere gestito da diversi client / front-end come la GUI del gestore di rete. Questo è meglio spiegato in questa wiki debian .

wpa_cli è la riga di comando client wpa_suplicant per gestire le reti wifi.

Modifica : ho appena trovato questo post che spiega come usare nmcli ed è molto meglio di wpa_cli dato che è compatibile con il gestore di rete della GUI e le loro impostazioni e reti wifi salvate.

Esempio di utilizzo di wpa_cli :

Verifica che disponga già di un'interfaccia di rete abilitata per il wifi:

# iwconfig
wlan0     IEEE 802.11bgn  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=22 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on

Controlla se il processo wpa_suplicant è in esecuzione:

# ps -e | grep wpa
1881 ?        00:00:07 wpa_supplicant

Entra nella modalità interattiva client wpa:

# wpa_client

Elenca i punti di accesso disponibili:

> scan
> scan_results

... e ottieni qualcosa di simile a questo:

bssid / frequency / signal level / flags / ssid
e0:60:66:7c:81:7f       2417    -66     [WPA2-PSK-CCMP][ESS]    vodafone817E
e0:60:66:61:83:4b       2452    -76     [WPA2-PSK-CCMP][WPS][ESS]       vodafone834A
f8:8e:85:c5:65:c2       2462    -76     [WPA-PSK-CCMP+TKIP][WPS][ESS]   MOVISTAR_65C1
a8:d3:f7:46:0c:be       2472    -83     [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS]       Orange-0CBC
...

Aggiungi il tuo AP:

> add_network
> set_network 0 ssid "vodafone817E"
> set_network 0 psk "my-pass-phrase"

Selezionalo come attuale:

> enable_network 0

Collegati ad esso:

> reconnect

Verifica lo stato:

> status

Esci da wpa_cli:

> quit

Dalla shell, richiedi DHCP per le impostazioni IP e net:

# dhclient -r
# dhclient wlan0
    
risposta data David 06.10.2016 - 18:12
3

Prima carica la tua carta se non è runnig:

ifconfig wlan0 up

Imposta i parametri sulla tua rete

iwlist wlan0 scan
iwconfig wlan0 essid NETWORK_ID key WIRELESS_KEY
    
risposta data LnxSlck 17.05.2012 - 17:54
2

C'è in realtà un modo per farlo usando NetworkManager, se hai installato il pacchetto checkbox .

sudo /usr/share/checkbox/create_connection SSID --security=wpa -key=WPA-KEY

(Credito: bug 923836 , che è apparso nelle mie ricerche sull'argomento.)

    
risposta data zigg 17.05.2012 - 18:32
2

Tutte le risposte che suggeriscono wpa_supplicant sono sbagliate. Sì, potrebbe collegarti alla rete WPA, ma questa è una soluzione sbagliata a lungo termine perché sarà molto difficile da mantenere e non funzionerà correttamente con una connessione cablata. Leggi questa risposta e rendi la tua vita più semplice utilizzando Network Manager dalla riga di comando. Ho perso ore cercando di configurare wpa_supplicant, poi ho provato nmcli e "ha funzionato".

    
risposta data Cerin 26.07.2015 - 00:23
2

È possibile utilizzare VSWM - Very Wireless Manager Manager. Metti i tuoi AP noti in un semplice file cfg (/etc/vswm.cfg) e quando esegui vswm scansiona le reti disponibili e connetti la tua carta con la prima che appare su /etc/vswm.cfg.

VSWM è disponibile all'indirizzo link . Ecco una selezione di come appare il file di configurazione vswm.cfg:

[global]

dev = wlan0
dns = ["4.2.2.1","8.8.8.8"]

[wlan0-0]

ssid = Network1
psk = netpassword
protocol = WPA
net = dhcp

[wlan0-1]

ssid = Network2
protocol = WEP
net = static
address = 192.168.0.15/24

Sotto i cofani, utilizza gli strumenti standard della riga di comando: iwlist, wpa_supplicant, iwconfig, dhclient ... Solo esso automatizza il lavoro.

    
risposta data Diogo Melo 18.09.2016 - 05:42
1

Ho avuto problemi nell'usare wpa_supplicant direttamente per accedere a una rete wireless. Il mio ID di rete e la password hanno generato errori quando ho utilizzato il file wpa_supplicant.conf sulla riga di comando wpa_supplicant , ad es.

sudo wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -B

Sono stato in grado di aggirarlo con wpa_cli . La sequenza di comandi che dovevo usare, dal momento che sto usando un driver Windows con Linux ndiswrapper, è:

sudo modprobe ndiswrapper
sudo iwconfig wlan0 essid "<My Network ID>" mode managed
sudo wpa_cli identity "<My Network ID>" password "<My password>"

Ho configurato la rete aggiungendola nella sezione wireless della rete nella GUI, quindi che potevo cliccare sull'icona della rete cablata o wireless e selezionare il provider wireless (che a volte era necessario per completare il login).

    
risposta data John 03.12.2013 - 07:46
0

La nmcli è la versione a linea di comando dell'app di gestione di rete predefinita su Ubuntu.

Alcuni dei vantaggi sono che utilizza la configurazione che hai già dall'interfaccia grafica e non ha bisogno di un accesso di root.

Puoi eseguire nmcli per mostrare le opzioni disponibili.

Esempio di connessione a un wifi denominato MYESSID:

    nmcli c up MYESSID   
    
risposta data desgua 31.01.2018 - 13:46

Leggi altre domande sui tag