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 ibss
iw <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