Zasadniczo chciałbym użyć iwconfig
do połączenia z moją siecią Wi-Fi, gdy nie jestem w X. Ale po prostu nie widzę sposobu, aby to zrobić na stronie podręcznika. Dowolny pomysł?
Zasadniczo chciałbym użyć iwconfig
do połączenia z moją siecią Wi-Fi, gdy nie jestem w X. Ale po prostu nie widzę sposobu, aby to zrobić na stronie podręcznika. Dowolny pomysł?
Odpowiedzi:
iw
(lista / config) obsługuje tylko WEP.
Potrzebujesz wpasupplicant
pakietu zawierającego wpa_supplicant
polecenie, zainstaluj w razie potrzeby za pośrednictwem sudo apt-get install wpasupplicant
.
Podajesz swój SSID i hasło /etc/wpa_supplicant.conf
(wymaga sudo).
Przykład:
network={
ssid="ssid_name"
psk="password"
}
Zakładając, że masz interfejs wlan0, z którym możesz się połączyć:
sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf -D wext
sudo dhclient wlan0
„wext” to sterownik, który będzie specyficzny dla każdej karty; odnoszą się do wpa_supplicant -h
. Przykłady:
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.
wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext && dhclient wlan0
nie łączy się z siecią bezprzewodową, chociaż domyślnie NetworkManager łączy mnie z siecią Chcę wypróbować sposób z linii poleceń, czy popełniam jakiś błąd?
root
(administrator systemu). Więc sudo wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext && sudo dhclient wlan0
podziel je na dwa polecenia &&
.
Ten link pokazuje to wszystko i działał dobrze dla mnie: http://linux.icydog.net/wpa.php
Kopiuję tutaj treść, więc mamy ją na wypadek, gdyby strona została wyłączona.
Wiersz polecenia WPA
Czasami będziesz w linii poleceń bez dostępu do narzędzi sieciowych GUI - ale twój punkt dostępu jest zabezpieczony za pomocą WPA. Co robisz?
Zakładając, że twoja karta bezprzewodowa faktycznie działa (tzn. Iwconfig może ją zobaczyć i wchodzić z nią w interakcje), użycie wpa_supplicant jest w rzeczywistości dość proste. Instalowanie wpa_supplicant
Obecnie większość dystrybucji ma domyślnie zainstalowany program wpa_supplicant. Jeśli masz dostępne polecenia wpa_passphrase i wpa_supplicant, możesz zacząć. W przeciwnym razie będziesz musiał zainstalować pakiet, robiąc coś takiego (dla Ubuntu):
$ sudo apt-get install wpasupplicant
Lub (dla Fedory):
# yum install wpa_supplicant
Lub cokolwiek to polecenie jest dla twojej dystrybucji.
Generowanie pliku konfiguracyjnego
Po zainstalowaniu wpa_supplicant utworzymy jego plik konfiguracyjny. Gdy znasz hasło SSID i WPA, wszystko, co musisz zrobić, to uruchomić:
$ wpa_passphrase myrouter mypassphrase > wpa.conf
Oczywiście zamień „myrouter” na SSID routera, „mypassphrase” na hasło WPA, a „wpa.conf” na dowolny plik, w którym chcesz zapisać konfigurację. Ta nazwa pliku nie musi mieć określonego formatu lub mają określone rozszerzenie.
Alternatywnie, aby uniknąć wpisywania hasła w wierszu poleceń (aby nie zostało zapisane w historii powłoki), możesz podać tylko identyfikator SSID w wierszu polecenia. wpa_passphrase będzie czekać na wpisanie hasła, a następnie enter:
$ wpa_passphrase myrouter > wpa.conf
mypassphrase
Powinieneś otrzymać plik wyglądający tak:
network={
ssid="myrouter"
#psk="mypassphrase"
psk=8ada1f8dbea59704ac379538b4d9191f6a72390581b4cd7a72864cea685b1a7f
}
Łączę się
Teraz uruchomimy wpa_supplicant, aby połączyć się z siecią bezprzewodową. Po pierwsze, jeśli router rozgłasza swój identyfikator SSID (wszystkie domyślnie tak robią), prawdopodobnie chcesz upewnić się, że karta bezprzewodowa rzeczywiście to widzi:
$ iwlist scan
Może być konieczne uruchomienie go jako root, aby wymusić odświeżenie.
Następnie musisz znać trzy informacje:
wpa_supplicant --help
wyświetla listę różnych sterowników (w sekcji „drivers:”). Począwszy od 0.5.8, przydatne opcje to: wext
, hostap
, madwifi
, atmel
, ndiswrapper
, i ipw
(ipw tylko dla starych jąder;> = 2.6.13 powinny stosować wext). Jeśli nie widzisz konkretnego dopasowania dla swojej karty, spróbuj wext, ponieważ jest to rodzaj catch-all.iwconfig
. Zgłasza „brak rozszerzeń bezprzewodowych” dla urządzeń innych niż bezprzewodowe i wyświetla niektóre dane dla dowolnych urządzeń bezprzewodowych.Teraz, gdy masz już te dane, uruchom (jako root):
# wpa_supplicant -D[driver] -i[device] -c[/path/to/config]
Nie ma spacji między opcjami i parametrami. Nie dołączaj nawiasów, ponieważ właśnie je dodałem dla jasności. Na przykład dla mojego laptopa wygląda to tak:
# wpa_supplicant -Dwext -ieth1 -c/root/wpa.conf
Możesz również uruchomić go w tle, używając -B
opcji, aby nie zajmował konsoli.
Teraz jesteś powiązany z siecią.
Łączenie się z Internetem
Aby faktycznie uzyskać dostęp do Internetu, musisz jakoś uzyskać adres IP. Większość ludzi będzie chciała uzyskać dynamiczny adres IP z serwera DHCP, prawdopodobnie tego wbudowanego w router. (Nie zamierzam omawiać ustawiania statycznego adresu IP i tabeli routingu, ponieważ sama w sobie jest bestią).
Aby uzyskać dzierżawę DHCP, najpierw zwolnij dzierżawę, którą nadal posiadasz (jako root):
# dhclient -r
Następnie poproś o nową dzierżawę (oczywiście zastępując eth1 nazwą urządzenia sieciowego, taką samą jak w poprzedniej sekcji):
# dhclient eth1
Masz teraz adres IP, przynajmniej teoretycznie. Miłego surfowania!
Debian i inne dystrybucje mają domyślnie działającą funkcję wpa_suplicant w celu zarządzania sieciami Wi-Fi. wpa_suplicant może być obsługiwany przez różnych klientów / interfejsy, takie jak GUI menedżera sieci. Jest to lepiej wyjaśnione w tej wiki Debiana .
wpa_cli to linia poleceń klienta wpa_suplicant do zarządzania sieciami Wi-Fi.
Edycja : Właśnie znalazłem ten post wyjaśniający, jak używać nmcli i jest znacznie lepszy niż wpa_cli, ponieważ jest zgodny z GUI Network Manager i ich ustawieniami oraz zapisanymi sieciami Wi-Fi.
Przykład użycia wpa_cli :
Sprawdź, czy mam już interfejs sieciowy z obsługą Wi-Fi:
# 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
Sprawdź, czy proces wpa_suplicant jest uruchomiony:
# ps -e | grep wpa
1881 ? 00:00:07 wpa_supplicant
Wejdź w tryb interaktywny klienta WPA:
# wpa_cli
Lista dostępnych punktów dostępu:
> scan
> scan_results
... i dostajesz coś takiego:
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
...
Dodaj swój AP:
> add_network
> set_network 0 ssid "vodafone817E"
> set_network 0 psk "my-pass-phrase"
Wybierz jako bieżący:
> enable_network 0
Połącz się z nim:
> reconnect
Sprawdzić stan:
> status
Wyjdź z wpa_cli:
> quit
Z poziomu powłoki poproś DHCP o ustawienia adresu IP i sieci:
# dhclient -r
# dhclient wlan0
wpa_cli
a potem piszesz wpa_client
? Na Kubuntu 18.10 wpa_client
wydaje się nie istnieć jako polecenie
Najpierw ustaw kartę, jeśli nie jest uruchomiona:
ifconfig wlan0 up
Ustaw parametry zgodnie z siecią
iwlist wlan0 scan
iwconfig wlan0 essid NETWORK_ID key WIRELESS_KEY
Istnieje sposób, aby to zrobić za pomocą NetworkManager, jeśli masz checkbox
zainstalowany pakiet.
sudo /usr/share/checkbox/create_connection SSID --security=wpa -key=WPA-KEY
( Źródło : błąd 923836 , który pojawił się podczas moich poszukiwań na ten temat.)
Wszystkie odpowiedzi sugerujące, że wpa_supplicant są nieprawidłowe. Tak, może połączyć cię z siecią WPA, ale na dłuższą metę jest to złe rozwiązanie, ponieważ będzie bardzo trudne w utrzymaniu i nie będzie dobrze grało z połączeniem przewodowym. Przeczytaj tę odpowiedź i ułatw swoje życie, korzystając z Menedżera sieci z wiersza polecenia. Zmarnowałem godziny próbując skonfigurować wpa_supplicant, potem wypróbowałem nmcli i „po prostu działało”.
Możesz użyć VSWM - Very Simple Wireless Manager. Umieszczasz znane AP w prostym pliku cfg (/etc/vswm.cfg), a po uruchomieniu vswm
skanuj dostępne sieci i podłącz swoją kartę do pierwszej, która pojawia się na /etc/vswm.cfg.
VSWM jest dostępny na https://github.com/dmelo/vswm . Oto jak wygląda plik konfiguracyjny 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
Pod maską wykorzystuje standardowe narzędzia wiersza poleceń: iwlist, wpa_supplicant, iwconfig, dhclient ... Tylko to automatyzuje zadanie.
Miałem problem z wpa_supplicant
bezpośrednim połączeniem z siecią bezprzewodową. Mój identyfikator sieci i hasło wygenerowały błędy, gdy korzystałem z wpa_supplicant.conf
pliku w wpa_supplicant
wierszu polecenia, np
sudo wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -B
Byłem w stanie to obejść wpa_cli
. Sekwencja poleceń, której musiałem użyć, ponieważ korzystam ze sterownika systemu Windows w systemie Linux ndiswrapper, to:
sudo modprobe ndiswrapper
sudo iwconfig wlan0 essid "<My Network ID>" mode managed
sudo wpa_cli identity "<My Network ID>" password "<My password>"
Miałem sieć skonfigurowaną przez dodanie jej w sekcji sieci bezprzewodowej w interfejsie GUI, tak że mogłem kliknąć ikonę sieci przewodowej lub bezprzewodowej i wybrać dostawcę usług bezprzewodowych (co czasami było konieczne do ukończenia logowania).
Jest nmcli
to wersja wiersza polecenia domyślnej aplikacji menedżera sieci w systemie Ubuntu.
Niektóre z zalet polegają na tym, że wykorzystuje konfigurację, którą już masz z interfejsu graficznego i nie wymaga dostępu do konta root.
Możesz uruchomić, nmcli
aby wyświetlić dostępne opcje.
Przykład połączenia z Wi-Fi o nazwie MYESSID:
nmcli c up MYESSID