Vraag Hoe maak ik verbinding met een WPA wifi-netwerk via de opdrachtregel?


Dus eigenlijk zou ik willen gebruiken iwconfig om verbinding te maken met mijn wifi-netwerk als ik niet in X zit. Maar ik zie gewoon geen manier om het op de man-pagina te doen. Enig idee?


99
2018-05-17 15:48


oorsprong


Verwant: Command-line tool voor eenvoudige verandering van het daadwerkelijke draadloze "verbonden met" netwerk? bij softwarerecs SE - kenorb


antwoorden:


iw (lijst / config) kan alleen omgaan met WEP.

Je hebt de wpasupplicant pakket dat de wpa_supplicant commando, installeer indien nodig via sudo apt-get install wpasupplicant.

U zet uw SSID en wachtwoord erin /etc/wpa_supplicant.conf.

Voorbeeld:

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

Ervan uitgaande dat uw interface wlan0 is, kunt u verbinding maken met:

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

"wext" is een stuurprogramma en dat is specifiek voor elke kaart; verwijzen naar wpa_supplicant -h. Voorbeelden:

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.

95
2018-05-17 15:57



nou dat is leuk dat iwlist / iwconfig alleen met WEP overweg kan, maar in mijn geval wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext && dhclient wlan0  niet verbonden met het draadloze netwerk, hoewel standaard NetworkManager mij verbindt met het netwerk Ik wil de opdrachtregel proberen, is er een fout die ik aan het doen ben? - Registered User
De laatste opdracht bestaat feitelijk uit twee opdrachten en u moet beide uitvoeren als root (systeem administrator). Zo sudo wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext && sudo dhclient wlan0  of deel ze in twee commando's rond &&. - Anders
Deze oplossing geeft me de fout "wlan0: Unsupported driver 'ext'". - Cerin
@cerin je beseft wel dat dit voor WPA is en niet voor WEP;) - Rinzwind
@Rinzwind, ja ... Als je door de manpage van wpa_supplicant kijkt, zie je dat de bestuurder kan verschillen, dus je commando zal waarschijnlijk niet werken zoals letterlijk wordt aangegeven. U moet het -D <stuurprogramma> kiezen voor uw specifieke hardware. Voor mij werd het uiteindelijk "nl80211". - Cerin


Deze link toont alles en werkte prima voor mij: http://linux.icydog.net/wpa.php

Ik kopieer de inhoud hier, dus we hebben het, voor het geval die site offline gaat.

Opdrachtregel WPA

Soms bevindt u zich op een opdrachtregel zonder toegang tot GUI-netwerkhulpmiddelen, maar uw toegangspunt is beveiligd met WPA. Wat doe jij?

Ervan uitgaande dat uw draadloze kaart daadwerkelijk werkt (dat wil zeggen dat iwconfig deze kan zien en ermee kan communiceren), is het gebruik van wpa_supplicant eigenlijk vrij eenvoudig. Installeren van wpa_supplicant

De meeste distro's hebben tegenwoordig wpa_supplicant standaard geïnstalleerd. Als je de opdrachten wpa_passphrase en wpa_supplicant beschikbaar hebt, dan ben je klaar om te gaan. Anders moet je het pakket installeren door iets als (voor Ubuntu) te doen:

$ sudo apt-get install wpasupplicant

Of (voor Fedora):

# yum install wpa_supplicant

Of wat het bevel ook is voor je distro.

Het configuratiebestand genereren

Nu wpa_supplicant is geïnstalleerd, zullen we het configuratiebestand maken. Zodra u de SSID- en WPA-wachtwoordzin kent, hoeft u alleen nog het volgende te doen:

$ wpa_passphrase myrouter mypassphrase > wpa.conf

Vervang "myrouter" natuurlijk door de SSID van uw router, "mypassphrase" met uw WPA-wachtwoordzin en "wpa.conf" met het bestand waarin u de configuratie wilt opslaan. Deze bestandsnaam hoeft geen bepaalde indeling te volgen of een bepaalde extensie hebben.

Als alternatief kunt u, om te voorkomen dat u de wachtwoordzin op de opdrachtregel typt (zodat deze niet wordt opgeslagen in de geschiedenis van de shell), alleen de SSID op de opdrachtregel opgeven. wpa_passphrase wacht tot u de wachtwoordzin invoert, gevolgd door enter:

$ wpa_passphrase myrouter > wpa.conf
mypassphrase

Je zou moeten eindigen met een bestand dat er als volgt uitziet:

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

Verbinding maken

Nu zullen we wpa_supplicant daadwerkelijk gebruiken om verbinding te maken met het draadloze netwerk. Ten eerste, als uw router zijn SSID uitzendt (dit gebeurt standaard allemaal), wilt u waarschijnlijk zeker weten dat uw draadloze kaart deze daadwerkelijk kan zien:

$ iwlist scan

Mogelijk moet u dit als root uitvoeren om een ​​vernieuwing te forceren.

Vervolgens moet u drie stukjes informatie kennen:

  1. Welke wpa_supplicant draadloze stuurprogramma's gebruiken voor uw kaart. Running wpa_supplicant --help somt de verschillende stuurprogramma's op die het heeft (onder "drivers:"). Vanaf 0.5.8 zijn de nuttige keuzes: wext, hostap, madwifi, atmel, ndiswrapper en ipw (ipw is alleen voor oude kernels;> = 2.6.13 zou wext moeten gebruiken). Als u geen specifieke overeenkomst voor uw kaart ziet, probeer dan een wxt-bestand, want dat is nogal catchy.
  2. Het netwerkapparaat van uw kaart. Dit is meestal eth1 of wlan0, maar als je het niet zeker weet, kun je gewoon iwconfig uitvoeren. Er wordt "geen draadloze uitbreidingen" gerapporteerd voor niet-draadloze apparaten en sommige gegevens worden weergegeven voor draadloze apparaten.
  3. Het pad naar het configuratiebestand dat u in de vorige stap hebt gemaakt.

Nu dat je deze gegevens hebt, voer (als root) uit:

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

Er zijn geen spaties tussen de opties en parameters. Neem de haakjes niet op omdat ik ze net voor de duidelijkheid heb toegevoegd. Bijvoorbeeld, voor mijn laptop ziet het er als volgt uit:

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

U kunt het ook op de achtergrond uitvoeren met de optie -B, zodat uw console niet wordt gebruikt.

Nu ben je verbonden met het netwerk.

Online gaan

Om daadwerkelijk online te gaan, moet je op de een of andere manier een IP krijgen. De meeste mensen willen gewoon een dynamisch IP-adres krijgen van een DHCP-server, waarschijnlijk degene die in de router is ingebouwd. (Ik ga het instellen van een statische IP en routeringstabel niet dekken, want dat is een beest op zich.)

Om een ​​DHCP-lease te krijgen, moet je eerst alle leases die je nog vasthoudt (als root) vrijgeven:

# dhclient -r

Vraag dan om een ​​nieuwe lease (vervangt natuurlijk eth1 door de naam van uw netwerkapparaat, dezelfde als die u in de vorige sectie gebruikte):

# dhclient eth1

Je hebt nu een IP, in theorie tenminste. Veel plezier met surfen!


68
2018-04-08 19:44



Ter informatie voor onervaren personen, de meeste namen van de draadloze kaartinterface zijn wlan <nummer>, dus bijvoorbeeld, de eerste draadloze kaart in uw configuratie is wlan0 in plaats van eth1 - xorinzor
Bedankt, het wpa_passphrase-commando hielp. Ik probeerde het geaccepteerde antwoord, maar het bestand was fout, wpa_passphrase hielp daarbij en toen passeerde ik de tweede opdracht van het geaccepteerde antwoord (ik wist al zeker dat het wlan0 wordt genoemd) ... - Lilian A. Moraru
bedankt dat was echt geweldig, kunt u mij een link geven over hoe de setup-statische en routetabel is ... :) - Yassine
@AlexandreSchmidt +1 voor uitgebreid zijn! - John Strood


Debian en andere distro's hebben wpa_suplicant standaard als service om de wifi-netwerken te beheren. wpa_suplicant kan worden afgehandeld door verschillende clients / front-ends, zoals de GUI van de netwerkbeheerder. Dit wordt hier beter uitgelegd debian wiki.

wpa_cli is de opdrachtregel wpa_suplicant-client om de wifi-netwerken te beheren.

Bewerk: Ik heb zojuist dit bericht gevonden dat uitleg geeft hoe nmcli te gebruiken en het is veel beter dan wpa_cli omdat het compatibel is met de GUI Network Manager en hun instellingen en opgeslagen wifi-netwerken.

Voorbeeld van gebruik van wpa_cli:

Controleer of ik al een wifi-netwerkinterface heb:

# 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

Controleer of het proces wpa_suplicant wordt uitgevoerd:

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

Voer de interactieve modus van de wpa-client in:

# wpa_client

Lijst beschikbare toegangspunten:

> scan
> scan_results

... en je krijgt zoiets als dit:

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
...

Voeg je AP toe:

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

Selecteer het als actueel:

> enable_network 0

Verbinden met het:

> reconnect

Controleer de status:

> status

Verlaat wpa_cli:

> quit

Vraag DHCP aan voor een IP- en net-instellingen vanuit de shell:

# dhclient -r
# dhclient wlan0

5
2017-10-06 16:12





Zet je kaart eerst open als deze niet runnig is:

ifconfig wlan0 up

Stel de parameters in die betrekking hebben op uw netwerk

iwlist wlan0 scan
iwconfig wlan0 essid NETWORK_ID key WIRELESS_KEY

3
2018-05-17 15:54



Ik geloof dat dit alleen voor WEP is. Geen WPA;) - Rinzwind
Rinzwind heeft gelijk. Dit is voor WEP. Sorry voor de fout. - LnxSlck
geen probleem. Laat het hier achter en iemand zal op een dag profiteren van je antwoord;) - Rinzwind
werkt dit ook zonder een sleutel als een open netwerk? - EvoandroidEvo
Ik hoop dat niemand ooit profiteert van een WEP-specifiek antwoord: '( - Max Ried


Er is eigenlijk een manier om het te doen met NetworkManager, als je het hebt checkbox pakket geïnstalleerd.

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

(Credit: fout 923836, die naar voren kwam in mijn zoekopdrachten over het onderwerp.)


2
2018-05-17 16:32





Alle antwoorden die suggereren dat wpa_supplicant ongelijk heeft. Ja, het kan u verbinden met het WPA-netwerk, maar dat is op de lange termijn een slechte oplossing omdat het erg moeilijk te onderhouden zal zijn en niet goed zal spelen met een bekabelde verbinding. Lezen dit antwoord en maak je leven gemakkelijker door Network Manager te gebruiken vanaf de opdrachtregel. Ik verspilde uren aan het proberen om wpa_supplicant te configureren, probeerde vervolgens nmcli en het werkte "gewoon".


2
2017-07-25 22:23



Het probleem met dingen die 'gewoon werken' is dat ze gemakkelijk 'gewoon niet kunnen werken' en dan waar ben je. Voor CLI-mensen is de directe wpa_supplicant-aanpak beter omdat alle delen ervan worden weergegeven. De grote deugd van NM is dat alle delen ervan verborgen zijn. Het is dus verkeerd om te zeggen dat de wpa_supplicant-aanpak verkeerd is. Je houdt van dingen die 'gewoon werken', prima. Je voorkeur heeft jouw recht, maar het is onbeleefd om mensen te vertellen dat ze ongelijk hebben, alleen omdat hun voorkeur niet de jouwe is. Dit is de reden waarom ik je antwoord heb ingekort. - Stephen Boston


U kunt VSWM - Very Simple Wireless Manager gebruiken. U plaatst uw bekende AP's op een eenvoudig cfg-bestand (/etc/vswm.cfg) en wanneer u draait vswm het scant de beschikbare netwerken en verbindt uw kaart met de eerste die wordt weergegeven op /etc/vswm.cfg.

VSWM is beschikbaar op https://github.com/dmelo/vswm . Hier is een selectie van hoe het configuratiebestand vswm.cfg eruit ziet als:

[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

Onder de motorkap gebruikt het de standaard opdrachtregelhulpprogramma's: iwlist, wpa_supplicant, iwconfig, dhclient ... Alleen het automatiseert de taak.


2
2017-09-18 03:42





Ik had problemen met gebruiken wpa_supplicant direct om op een draadloos netwerk te komen. Mijn netwerk-ID en wachtwoord genereerden fouten toen ik de wpa_supplicant.conf bestand op de wpa_supplicant opdrachtregel, b.v.

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

Ik kon ermee werken wpa_cli. De opdrachtsequentie die ik moest gebruiken, omdat ik een Windows-stuurprogramma gebruik met Linux ndiswrapper, is:

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

Ik had het netwerk opgezet door het toe te voegen aan de draadloze sectie van netwerken in de GUI, dus dat ik op het bekabelde of draadloze netwerkpictogram kon klikken en de draadloze provider kon selecteren (wat soms nodig was om de login te voltooien).


1
2017-12-03 06:46