Wie rufe ich eine Wi-Fi-Schnittstelle über eine Befehlszeile auf?

30

Ich kann nicht herausfinden, wie ich die Wi-Fi-Karte auf meinem Laptop richtig einsetze. Wenn ich es einschalte und stelle

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

Es meldet, dass das Netzwerk ausgefallen ist. Der Versuch, es aufzurufen, schlägt ebenfalls fehl:

$ sudo ifup wlan0
wlan0     no private ioctls.

Failed to bring up wlan0.

Anscheinend fehlt mir ein grundlegender Low-Level- iw...Befehl.

Wenn ich dhclientauf der Schnittstelle stelle:

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

und unterbrich es, es bringt das Gerät irgendwie zum Vorschein und dann funktioniert Scannen etc. Ich möchte diesen offensichtlich überflüssigen Schritt vermeiden.

Petr Pudlák
quelle
Es gibt mehrere WiFi- Schnittstellen vom Kernel zum User-Space. Das iwconfigist veraltet und möglicherweise nicht in einem modernen Kernel konfiguriert. Die iwMethode ist moderner / bevorzugter ( nl80211 ). Ältere iwconfigkönnen merkwürdige Fehler verursachen, wenn die Unterstützung für Wext nicht kompiliert / konfiguriert ist. Ein weiteres Problem ist, welche Tools / Skripte von Distributionen zur Verfügung gestellt werden. Ich denke, wenn Sie eine Distribution verwenden, sollten sie darauf achten, die richtigen Pakete / Konfigurationen zu geben. Wenn Sie Ihre eigenen erstellen, haben Sie möglicherweise das oben genannte Problem.
Artless Lärm

Antworten:

29

In der Tat versuchen sudo ifconfig wlan0 up. Um die Antwort von Martin zu erläutern:

ifupund ifdownBefehle sind Teil des ifupdown-Pakets , das jetzt als Legacy-Frontend für die Netzwerkkonfiguration im Vergleich zu neueren wie z network manager.

Beim ifup ifupdownLesen von Konfigurationseinstellungen von /etc/network/interfaces; Es wird ausgeführt pre-up, post-upund post-downSkripte von /etc/network, die das Starten umfassen /etc/wpasupplicant/ifupdown.sh, verarbeiten zusätzliche wpa-*Konfigurationsoptionen für WPA-WIFI in /etc/network/interfaces (siehe zcat /usr/share/doc/wpasupplicant/README.Debian.gzDokumentation). Für WEP wireless-toolsspielt das Paket eine ähnliche Rolle wie wpa-supplicant. iwconfigist auch aus wireless-tools.

ifconfigGleichzeitig handelt es sich um ein untergeordnetes Tool , das von ifupdownmehr Flexibilität verwendet wird und dies ermöglicht. Zum Beispiel gibt es 6 Funktionsmodi für WLAN-Adapter und IIRC ifupdowndeckt nur den verwalteten Modus ab (+ Roaming-Modus, was ist formal nicht der Modus?). Mit iwconfigund können ifconfigSie zB den Überwachungsmodus Ihrer WLAN-Karte aktivieren , während Sie dies nicht direkt tun können.ifupdown

Boris Burkov
quelle
7
mit debian stretch, ifconfigwurde ersetzt durch ip, der alternative befehl istip link set wlan0 up
Ben
11

Versuchen Sie es ifconfig wlan0 upstatt ifup.

Martin von Wittich
quelle
4

Folgendes verwende ich täglich, um eine Verbindung zu einem WEP-Zugangspunkt herzustellen:

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

Sie müssen die ESSID und den MAC für den gewünschten Zugangspunkt eingeben.

Für die WPA-Verschlüsselung ist es etwas schwieriger. Sie müssen eine wpa_supplicant.confDatei mit einem entsprechenden Eintrag haben. So was:

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

Sobald Sie eine solche conf-Datei haben, können Sie dieses Skript ausführen:

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

Update, 03.12.2014:

Da Arch Linux das ist, was es ist, ist mein Connect-to-WEP-Skript ganz anders. Ich dachte, ich würde es zu dieser Antwort hinzufügen, um sie auf dem neuesten Stand zu halten.

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

Ich musste iwsehr plötzlich umsteigen. Etwas am Arch LTS-Kernel oder an den WiFi-Treibern (mein Laptop hat eine Intel WiFi-Karte mit dem "iwl4965" -Treiber) hat sich vor nicht allzu langer Zeit geändert. Sie müssen die Frequenz ("2462") und die MAC-Adresse des Access Points ändern, damit dies funktioniert.

Bruce Ediger
quelle
3

Ab Ubuntu 18.04 (und den entsprechenden Debian-Versionen) ifconfigund ifup/ ifdownsind veraltet, und die empfohlene Methode zum Aufrufen der Schnittstelle lautet mit dem ipBefehl:

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

Und Sie können Ihre verfügbaren Schnittstellen überprüfen mit:

ip link

Und Sie können die zugewiesenen IP-Adressen Ihrer Schnittstellen anzeigen mit:

ip addr show

Oder genauer:

ip addr show scope global | grep inet
shellcat_zero
quelle