Dydaktyka:
FeedbackTo jest stara wersja strony!
iw – komenda mająca na celu zastąpienie wireless-toolsiw phy – fizyczne bezprzewodowe urządzenie siecioweiw dev – interfejs sieciowy (powiązany z jakimś phy)
W wielu dystrybucjach Linuksa domyślnie karty sieciowe obsługuje NetworkManager (NM).
Komenda nmcli radio all off nakaże NM wyłączenie kart i nie konfigurowanie ich.
NM poza wyłączeniem interfejsu, próbuje wyłączyć kartę (dla lepszego zarządzania
energią możliwe jest często odłączenie karty).
Do włączenia tak wyłączonej karty służy program rfkill
[1]), dokładniej
komenda rfkill unblock wifi
Karty bezprzewodowe i/lub moduły bluetooth mogą być też domyślnie wyłączone w tej
sposób.
| pomoc dla komendy | iw help |
| lista i stan wszystkich interfejsów | iw dev |
| stan wybranego interfejsu | iw [dev] <if> info np. iw wlan0 info |
| stan połączenia na podanym interfejsie | iw [dev] <if> link np. iw wlan0 link |
| informacje o możliwościach karty | iw phy |
| skanowania dostępnych sieci | iw [dev] <if> scan [-u] np. iw wlan0 scan -u (flaga -u pokazuje też opcje nieznane przez iw) |
| lista wspieranych przez kartę kanałów/częstotliwości | iw [phy] <phy> [channels] |
| informacje o częstotliwościach dostępnych w kraju/regionie | iw reg get |
| zmiana bieżącego kraju/regionu | iw reg set <kod kraju> np. iw reg set PL |
| zmiana kanału/częstotliwości podając kanał | iw [dev/phy] <if/phy> set channel <nr> [width] np. iw wlan0 set channel 13 np. iw wlan0 set channel 1 HT40+ np. iw wlan0 set channel 128 160MHz |
| zmiana kanału/częstotliwości podając częstotliwość | iw [dev/phy] <if/phy> set freq <freq> [width] […] np. iw wlan0 set freq 2412 HT40+ np. iw wlan0 set freq 5640 160MHz np. iw wlan0 set freq 5200 80+80 5210 5775 |
| ogólna komenda | iw [dev] <if> set type <mode> |
| klient łączący się do BSS | iw [dev] <if> set type managed np. iw wlan0 set type managed |
| urządzenie w sieci IBSS | iw [dev] <if> set type ibss np. iw wlan0 set type ibss |
| monitor (nasłuchiwanie) | iw [dev] <if> set type monitor np. iw wlan0 set type monitor |
| access point | programy takie jak hostapd przełączą we właściwy tryb kartę ustawioną jako managed |
Uwaga: większość sterowników pozwala zmieniać tryb tylko dla wyłączonych interfejsów.
Zamiast zmiany trybu pracy, można, o ile wspierają to sterowniki karty,
dodać kolejny interfejs
do karty komendą:
iw <phy> interface add <ifname> type <mode> (zamiast
<phy> można też podać <ifname>))
np. iw phy0 interface add mon0 type monitor
(Interfejs usuwa się komendą iw [dev] <ifname> del, np. iw mon0 del)
| ibss | połączenie | iw [dev] <if> ibss join <ESSID> <freq> […] |
| rozłączenie | iw [dev] <if> ibss leave |
|
| mesh | połączenie | iw [dev] <if> mesh join <ESSID> [freq <freq>] […] |
| rozłączenie | iw [dev] <if> mesh leave |
|
| bss | połączenie | iw [dev] <if> connect <ESSID> [BSSID] |
| rozłączenie | iw [dev] <if> disconnect |
W trybach takich jak ibss, mesh i ap można wyświetlić urządzenia z którymi
nawiązano połączenie komedną:
iw [dev] <ifname> station dump np: iw wlan0 station dump
ip l set dev <if> down)iw <if> set type ibssiw <if> ibss join <essid> <freq>
iw wspiera tworzenie sieci IBSS z wykorzystaniem 802.11n/ac/ax, np:
iw <if> ibss join <essid> <freq> HT40- używa kanału 40MHz zajmującego częstotliwości freq i freq-20
iw <if> ibss join <essid> <control_freq> <width> <center_freq> używa kanału szerokości width ze środkiem na częstotliwości center_freq i używa control_freq m. inn. do rozgłaszania sieci
Przykłady (używające tego samego kanału 40MHz):
iw <if> ibss join <essid> 2432 HT40-
iw <if> ibss join <essid> 2432 40 2422
Uwaga: sterowniki kart w 1.6.16 mają problem ze sobą w trybie IBSS, żeby pracowały z pełną prędkością wykonaj:
tc qdisc add dev wlan0 root cake
Do testów prędkości możesz użyć
wcześniej poznanych
programów netperf / iperf3.
W salach laboratoryjnych zalecaną metodą jest stworzenie nowego interfejsu
pracującego w trybie monitor komendą:
iw wlan0 interface add mon0 type monitor
Uwaga: kartom intela w laboratorium "zdarza się" zerwać bieżące
połączenie przy dodawaniu wirtualnego interfejsu.
Do tworzenia AP pod Linuksem można wykorzystać program
hostapd, któremu należy podać jako argument
ścieżkę do plik konfiguracyjnego, np:
hostapd hostapd.conf.
Przykładowy plik konfiguracyjny (działający w obu laboratoriach na kartach intela):
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
interface=wlan0
ssid=TEST
hw_mode=g
channel=5
country_code=PL
ieee80211n=1
ht_capab=[HT40-][SHORT-GI-20][SHORT-GI-40]
auth_algs=1
### dla WPA2-PSK ### dla WPA3-SAE ### dla WPA2-PSK + WPA3-SAE
# wpa=2 # wpa=2 #wpa=2
# wpa_key_mgmt=WPA-PSK # wpa_key_mgmt=SAE #wpa_key_mgmt=WPA-PSK SAE
# wpa_passphrase=haslodosieci # sae_password=test #wpa_passphrase=haslodosieci
# ieee80211w=1 # ieee80211w=2 #ieee80211w=1
#sae_require_mfp=1