Komut satırını kullanarak bir WPA wifi ağına nasıl bağlanabilirim?


Yanıtlar:


113

iw (list / config) sadece WEP'i idare edebilir.

Komutu wpasupplicantsağlayan pakete ihtiyacınız var, wpa_supplicantgerekirse yükleyin sudo apt-get install wpasupplicant.

SSID'nizi ve şifrenizi girin /etc/wpa_supplicant.conf(sudo gerektirir).

Örnek:

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

Arayüzünüzün wlan0 olduğunu varsayalım:

sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf -D wext
sudo dhclient wlan0

"wext" bir sürücüdür ve her kart için özel olacaktır; bakın wpa_supplicant -h. Örnekler:

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.

peki iwlist / iwconfig 'in sadece WEP ile başa çıkabileceği, fakat benim durumumda wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext && dhclient wlan0 kablosuz ağa bağlı olmadığıma rağmen, varsayılan olarak NetworkManager beni ağa bağlar.
Kayıtlı Kullanıcı

Son komut aslında iki komuttur ve her ikisini de root(sistem yöneticisi) çalıştırmanız gerekir . Öyleyse sudo wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext && sudo dhclient wlan0 veya onları iki komuta bölün &&.
Anders

Bu çözüm bana "wlan0: Desteklenmeyen sürücü 'ext'" hatası veriyor.
Cerin

1
@Rinzwind, Evet ... wpa_supplicant'ın kılavuz sayfasına bakmak, sürücünün değişebileceğini gösterir, böylece komutunuz tam anlamıyla verildiği gibi çalışmayabilir. Özel donanımınız için -D <sürücü> seçmeniz gerekir. Benim için "n80211" oldu.
Cerin

1
Sadece -D seçeneğini tamamen atlıyorum ve işe yarıyor! Teşekkürler! :)
Ray

72

Bu bağlantı hepsini gösterir ve benim için iyi çalıştı: http://linux.icydog.net/wpa.php

İçeriği buraya kopyalıyorum, bu yüzden sitenin çevrimdışı olması durumunda bizde var.

Komut satırı WPA

Bazen GUI ağ araçlarına erişimi olmayan bir komut satırında olursunuz - ancak erişim noktanız WPA ile güvence altına alınmıştır. Ne yaparsın?

Kablosuz kartınızın gerçekten çalıştığını varsayalım (yani, iwconfig bunu görebilir ve onunla etkileşime girebilir), wpa_supplicant kullanmak aslında oldukça basittir. Wpa_supplicant'ın kurulması

Günümüzde çoğu dağıtımda, varsayılan olarak wpa_supplicant kurulu. Wpa_passphrase ve wpa_supplicant komutlarına sahipseniz, gitmeniz iyi olur. Aksi takdirde, (Ubuntu için) gibi bir şey yaparak paketi kurmanız gerekir:

$ sudo apt-get install wpasupplicant

Veya (Fedora için):

# yum install wpa_supplicant

Ya da emriniz için komut ne ise.

Config dosyasını oluşturma

Şimdi wpa_supplicant yüklendiğinde, yapılandırma dosyasını oluşturacağız. SSID ve WPA şifresini öğrendikten sonra, yapmanız gereken tek şey çalıştırmak:

$ wpa_passphrase myrouter mypassphrase > wpa.conf

Elbette, "myrouter" ı yönlendiricinizin SSID'siyle, "mypassphrase" ı WPA şifrenizle ve "wpa.conf" u, yapılandırmayı saklamak istediğiniz dosyayla değiştirin. belirli bir uzantıya sahip olmak.

Alternatif olarak, parolayı komut satırına yazmaktan kaçınmak için (böylece kabuğun geçmişine kaydedilmez), komut satırında yalnızca SSID'yi belirleyebilirsiniz. wpa_passphrase, parolayı girmeniz için bekleyip ardından şunu girin:

$ wpa_passphrase myrouter > wpa.conf
mypassphrase

Buna benzeyen bir dosya ile bitmelisin

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

Bağlanmak

Şimdi kablosuz ağa bağlanmak için aslında wpa_supplicant'ı çalıştıracağız. Öncelikle, yönlendiriciniz SSID'sini yayınlarsa (varsayılan olarak hepsi yapar), muhtemelen kablosuz kartınızın gerçekten görebildiğinden emin olmak istersiniz:

$ iwlist scan

Yenilemeye zorlamak için bunu kök olarak çalıştırmanız gerekebilir.

Ardından, üç bilgi parçasını bilmeniz gerekir:

  1. Kartınız için hangi wpa_supplicant kablosuz sürücüleri kullanılacak. Çalışan wpa_supplicant --help, sahip olduğu farklı sürücüleri listeler ("sürücüler:" altında). : 0.5.8 itibariyle kullanışlı seçeneklerdir wext, hostap, madwifi, atmel, ndiswrapper, ve ipw(IPW sadece eski çekirdekler içindir;> = 2.6.13 Wext kullanmalıdır). Kartınız için belirli bir eşleşme görmüyorsanız, her şeyi yakaladığınız gibi wext'i deneyin.
  2. Kartınızın ağ cihazı. Bu genellikle eth1 veya wlan0'dır, ancak emin değilseniz sadece koşabilirsiniz iwconfig. Kablosuz olmayan aygıtlar için "kablosuz uzantı yok" bildirir ve herhangi bir kablosuz aygıt için bazı verileri görüntüler.
  3. Önceki adımda oluşturduğunuz yapılandırma dosyasının yolu.

Artık bu verilere sahip olduğunuzda (root olarak) çalıştırın:

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

Seçenekler ve parametreler arasında boşluk yoktur. Açıklığa kavuşturmak için bunları eklediğim için dirsekleri dahil etmeyin. Örneğin, dizüstü bilgisayarım için şöyle görünüyor:

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

-BKonsolunuzu kullanmayacak şekilde seçeneğini kullanarak arka planda da çalıştırabilirsiniz .

Şimdi ağla ilişkilendiriliyorsun.

Çevrimiçi almak

Aslında çevrimiçi olmak için, bir şekilde IP almanız gerekir. Çoğu kişi, muhtemelen yönlendiriciye yerleştirilmiş olan bir DHCP sunucusundan dinamik bir IP almak isteyecektir. (Statik IP ve yönlendirme tablosu ayarlamayı kapsamayacağım çünkü bu başlı başına bir canavar.)

Bir DHCP kirası almak için, ilk önce hâlâ elinde tuttuğunuz kiralamayı bırakın (root olarak):

# dhclient -r

Ardından yeni bir kiralama isteyin (elbette, önceki bölümde kullandığınızla aynı şekilde eth1'i ağ cihazınızın adıyla değiştirmek):

# dhclient eth1

Artık en azından teoride bir IP var. Mutlu sörf!


1
Deneyimsiz insanlar için FYI, çoğu kablosuz kart arabirim adı wlan <sayı> olur, bu nedenle örneğin yapılandırmanızdaki ilk kablosuz kart eth1
xorinzor 24:13

Teşekkürler, wpa_passphrase komutu yardımcı oldu. Kabul edilen cevabı denedim, ancak dosya yanlıştı, wpa_passphrase buna yardımcı oldu ve sonra kabul edilen cevaptan ikinci komutu geçtim (zaten wlan0 olarak adlandırıldığından emin oldum) ...
Lilian A. Moraru

teşekkürler bu gerçekten harikaydı, bağlantı statik nasıl ayarlayabilirim statik ve yönlendirme tablosu nasıl
kurulur

1
@AlexandreSchmidt +1 kapsamlı olması için!
John Strood,

@JohnStrood kesinlikle oradan bir kopyası olduğundan, web sitesini yazan kişiye teşekkür etmelisin
icc97

8

Debian ve diğer dağıtımlarda, wifi ağlarını yönetmek için varsayılan olarak bir hizmet olarak çalışan wpa_suplicant var. wpa_suplicant, ağ yöneticisi GUI gibi farklı istemciler / ön uçlar tarafından kullanılabilir. Bu, bu debian wiki'sinde daha iyi açıklanmaktadır .

wpa_cli, wifi ağlarını yönetmek için kullanılan komut satırı wpa_suplicant istemcisidir.

Düzenleme : Ben sadece nmcli nasıl kullanılacağını açıklayan bu yazı buldum ve GUI Ağ Yöneticisi ve ayarları ve kaydedilmiş wifi ağları ile uyumlu olduğundan wpa_cli'den çok daha iyi.

Wpa_cli kullanımına örnek :

Zaten bir wifi etkin ağ arayüzüne sahip olduğumu kontrol edin:

# 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

Wpa_suplicant işleminin çalışıp çalışmadığını kontrol edin:

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

Wpa istemcisi etkileşimli moduna girin:

# wpa_cli

Kullanılabilir erişim noktalarını listele:

> scan
> scan_results

... ve böyle bir şey elde edersiniz:

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

AP'nizi ekleyin:

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

Geçerli olarak seç:

> enable_network 0

Bağlan:

> reconnect

Durumu kontrol et:

> status

Wpa_clige çıkın:

> quit

Kabuktan, bir IP ve ağ ayarları için DHCP isteyin:

# dhclient -r
# dhclient wlan0

Neden hakkında konuşup wpa_clisonra yazıyorsun wpa_client? Kubuntu wpa_client
18.10'da

Haklısın ... düzeltildi.
David,

3

Çalışmıyorsa önce kartınızı yukarı kaldırın:

ifconfig wlan0 up

Ağınıza göre olan parametreleri ayarlayın

iwlist wlan0 scan
iwconfig wlan0 essid NETWORK_ID key WIRELESS_KEY

15
Bunun sadece WEP için olduğuna inanıyorum. WPA yok;)
Rinzwind

Rinzwind haklı. Bu WEP içindir. Hata yaptığım için üzgünüm.
LnxSlck

2
sorun değil. Burada bırakın ve birisi bir gün cevabınızdan faydalanacak;)
Rinzwind

açık ağ gibi bir anahtar olmadan bile çalışacak mı?
EvoandroidEvo

1
Umarım hiç kimse WEP'e özgü bir cevaptan faydalanamaz: '(
Max Ried

2

checkboxPaket yüklüyse , aslında NetworkManager kullanarak bunu yapmanın bir yolu var .

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

(Kredi: konuyla ilgili aramalarımda ortaya çıkan 923836 numaralı hata .)


2

Wpa_supplicant'ı öneren tüm cevaplar yanlıştır. Evet, sizi WPA ağına bağlayabilir, ancak bu uzun vadede kötü bir çözümdür çünkü bakımı çok zor olacak ve kablolu bağlantıyla iyi bir şekilde oynamayacaktır. Bu cevabı okuyun ve komut satırından Ağ Yöneticisini kullanarak hayatınızı kolaylaştırın. Wpa_supplicant'ı yapılandırmaya çalışarak saatler harcadım, sonra nmcli'yi denedim ve "sadece işe yaradı".


2
'Sadece işe' olan şeylerin sorunu, kolayca 'işe yaramayacakları' ve sonra neredesin olmasıdır. CLI çalışanları için doğrudan wpa_supplicant yaklaşımı daha iyidir çünkü tüm parçalarını ortaya koyar. NM’nin en büyük erdemi, bütün parçalarının gizlenmiş olmasıdır. Bu nedenle wpa_supplicant yaklaşımının yanlış olduğunu söylemek yanlış. Sadece işe yarayan şeyleri seviyorsun, tamam. Tercihiniz sizin hakkınızdır, ancak tercihlerinin sizin olmadığı için insanlara yanlış olduklarını söylemek imkansızdır. Bu yüzden cevabını küçümsedim.
Stephen Boston

2

VSWM - Çok Basit Kablosuz Yöneticisini kullanabilirsiniz. Bilinen AP'lerinizi basit bir cfg dosyasına (/etc/vswm.cfg) yerleştirin ve çalıştırdığınızda vswmmevcut ağları tarayın ve /etc/vswm.cfg'de görünen ilk kartınızı bağlayın.

VSWM https://github.com/dmelo/vswm adresinde mevcuttur . İşte vswm.cfg config dosyasının nasıl göründüğüne dair bir seçim:

[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

Başlıkların altında standart komut satırı araçlarını kullanır: iwlist, wpa_supplicant, iwconfig, dhclient ... Yalnızca işi otomatik hale getirir.


1

wpa_supplicantKablosuz bir ağa bağlanmak için doğrudan kullanmakta sorun yaşadım . Ağ kimliğim ve şifrem, wpa_supplicant.confdosyayı wpa_supplicantkomut satırında kullandığımda hatalar oluşturdu , örneğin

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

Onunla çalışmayı başardım wpa_cli. Kullanmam gereken komut sırası, Linux ndiswrapper ile bir Windows sürücüsü kullandığım için:

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

Ağı GUI'deki ağ bağlantısının kablosuz bölümüne ekleyerek ayarlamıştım, böylece kablolu ya da kablosuz ağ simgesine tıklayıp kablosuz sağlayıcısını seçebilecektim (bazen oturum açmayı tamamlamak için gerekliydi).


1

nmcliUbuntu üzerinde varsayılan ağ yöneticisi uygulamasının komut satırı sürümüdür.

Avantajlarından bazıları, grafik arayüzden zaten sahip olduğunuz konfigürasyonu kullanması ve root erişimi gerektirmemesidir.

nmcliKullanılabilir seçenekleri göstermek için koşabilirsiniz .

MYESSID adlı bir wifi bağlamak için örnek:

    nmcli c up MYESSID   

1
nmcli, nm-applet ve evet cevabınız en iyisidir ama neden hiç kimsenin oy kullanmadığını bilmiyorum
Saeid

@Saeid Teşekkürler!
desgua
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.