कमांड लाइन का उपयोग करके मैं WPA वाईफाई नेटवर्क से कैसे जुड़ सकता हूं?


113

इसलिए मूल रूप से, मैं iwconfigअपने वाईफाई नेटवर्क से कनेक्ट करने के लिए उपयोग करना चाहता हूं जब मैं एक्स के अंदर नहीं हूं। लेकिन मैं इसे मैन पेज में करने का कोई तरीका नहीं देखता हूं। कोई उपाय?


जवाबों:


113

iw (सूची / विन्यास) केवल WEP को संभाल सकता है।

आपको wpasupplicantपैकेज की आवश्यकता है जो wpa_supplicantकमांड प्रदान करता है , यदि आवश्यक हो तो इंस्टॉल करें sudo apt-get install wpasupplicant

आप अपना SSID और पासवर्ड डालें /etc/wpa_supplicant.conf(sudo की आवश्यकता है)।

उदाहरण:

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

मान लें कि आपका इंटरफ़ेस wlan0 है जिसके साथ आप जुड़ सकते हैं:

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

"wext" एक ड्राइवर है और यह प्रत्येक कार्ड के लिए विशिष्ट होगा; को देखें wpa_supplicant -h। उदाहरण:

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.

यह अच्छी तरह से अच्छा है कि iwlist / iwconfig केवल WEP को संभाल सकता है, लेकिन मेरे मामले wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext && dhclient wlan0 में वायरलेस नेटवर्क से जुड़ा नहीं था, हालांकि डिफ़ॉल्ट रूप से NetworkManager मुझे उस नेटवर्क से जोड़ता है जो मैं चाहता हूं कि कमांड लाइन का तरीका आजमाना है, कुछ गलती हो रही है?
उपयोगकर्ता

अंतिम कमांड वास्तव में दो कमांड हैं, और आपको rootसिस्टम सिस्टम ( दोनों के रूप में ) चलाने की आवश्यकता है । तो sudo wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext && sudo dhclient wlan0 या उन्हें दो आदेशों में विभाजित करें &&
एंडर्स

यह समाधान मुझे "wlan0: असमर्थित ड्राइवर '' ext '" त्रुटि देता है।
सेरिन

1
@Rinzwind, हाँ ... wpa_supplicant के मैनपेज के माध्यम से देखने से पता चलता है कि ड्राइवर भिन्न हो सकता है, इसलिए आपका कमांड संभवतः दिए गए अनुसार काम नहीं करेगा। आपको अपने विशिष्ट हार्डवेयर के लिए -D <ड्राइवर> का चयन करना होगा। मेरे लिए, यह "nl80211" होने के नाते समाप्त हो गया।
सेरिन

1
मैं -D विकल्प को पूरी तरह से छोड़ देता हूं और यह काम करता है! धन्यवाद! :)
रे

72

यह लिंक यह सब दिखाता है और मेरे लिए ठीक काम करता है: http://linux.icydog.net/wpa.php

मैं यहां सामग्री की प्रतिलिपि बना रहा हूं, इसलिए हमारे पास यह है, यदि साइट ऑफ़लाइन हो जाती है।

कमांड लाइन WPA

कभी-कभी आप GUI नेटवर्किंग टूल तक पहुंच के साथ कमांड लाइन पर होंगे - लेकिन आपकी पहुंच बिंदु WPA के साथ सुरक्षित है। आप क्या करते हैं?

मान लें कि आपका वायरलेस कार्ड वास्तव में काम करता है (यानी iwconfig इसे देख सकता है और इसके साथ बातचीत कर सकता है), wpa_supplicant का उपयोग करना वास्तव में बहुत सरल है। स्थापित करना wpa_supplicant

आजकल अधिकांश डिस्ट्रोस में डिफ़ॉल्ट रूप से wpa_supplicant स्थापित है। यदि आपके पास कमांड wpa_passphrase और wpa_supplicant उपलब्ध है, तो आप जाने के लिए अच्छे हैं। अन्यथा, आपको उबंटू के लिए कुछ ऐसा करके पैकेज स्थापित करना होगा:

$ sudo apt-get install wpasupplicant

या (फेडोरा के लिए):

# yum install wpa_supplicant

या जो भी कमांड आपके डिस्ट्रो के लिए है।

कॉन्फ़िगरेशन फ़ाइल जनरेट करना

अब जो wpa_supplicant स्थापित है, हम उसकी कॉन्फ़िगरेशन फ़ाइल बनाएंगे। एक बार जब आप SSID और WPA पासफ़्रेज़ को जान लेते हैं, तो आपको बस इतना करना है:

$ wpa_passphrase myrouter mypassphrase > wpa.conf

बेशक, अपने राउटर के SSID के साथ "myrouter" को बदलें, अपने WPA पासफ़्रेज़ के साथ "mypassphrase" और "wpa.conf" जो भी फ़ाइल आप कॉन्फ़िगरेशन को संग्रहीत करना चाहते हैं, उसके साथ। इस फ़ाइल का नाम किसी विशेष प्रारूप का पालन करने के लिए नहीं है। एक विशेष विस्तार है।

वैकल्पिक रूप से, कमांड लाइन पर पासफ़्रेज़ टाइप करने से बचने के लिए (इसलिए यह शेल के इतिहास में सहेजा नहीं जाता है), आप कमांड लाइन पर सिर्फ SSID निर्दिष्ट कर सकते हैं। wpa_passphrase आपके द्वारा दर्ज किए गए पासफ़्रेज़ में टाइप करने के लिए प्रतीक्षा करेगा:

$ wpa_passphrase myrouter > wpa.conf
mypassphrase

आपको इस तरह दिखने वाली फ़ाइल को समाप्त करना चाहिए:

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

कनेक्ट हो रहा है

अब हम वास्तव में वायरलेस नेटवर्क से जुड़ने के लिए wpa_supplicant चलाएंगे। सबसे पहले, यदि आपका राउटर अपने SSID को प्रसारित करता है (वे सभी डिफ़ॉल्ट रूप से करते हैं), तो आप शायद यह सुनिश्चित करना चाहते हैं कि आपका वायरलेस कार्ड वास्तव में इसे देख सकता है:

$ iwlist scan

आपको रिफ्रेश करने के लिए रूट के रूप में दौड़ना पड़ सकता है।

इसके बाद, आपको तीन सूचनाओं को जानना होगा:

  1. जो आपके कार्ड के लिए उपयोग करने के लिए वायरलेस ड्राइवर wpa_supplicant। रनिंग wpa_supplicant --helpमें विभिन्न ड्राइवरों की सूची है ("ड्राइवरों:") के तहत। : 0.5.8 के रूप में, उपयोगी विकल्प हैं wext, hostap, madwifi, atmel, ndiswrapper, और ipw(IPW केवल पुराने कर्नेल के लिए है,> = 2.6.13 wext का उपयोग करना चाहिए)। यदि आप अपने कार्ड के लिए एक विशिष्ट मैच नहीं देखते हैं, तो कोशिश करें, क्योंकि यह कैच-ऑल की तरह है।
  2. आपके कार्ड का नेटवर्क उपकरण। यह आमतौर पर eth1 या wlan0 है, लेकिन यदि आप अनिश्चित हैं तो आप बस चला सकते हैं iwconfig। यह गैर-वायरलेस उपकरणों के लिए "नो वायरलेस एक्सटेंशन" की रिपोर्ट करेगा और किसी भी वायरलेस डिवाइस के लिए कुछ डेटा प्रदर्शित करेगा।
  3. कॉन्फ़िगरेशन फ़ाइल का पथ जो आपने पिछले चरण में बनाया था।

अब जब आपके पास यह डेटा है, तो रन करें (रूट के रूप में):

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

विकल्प और मापदंडों के बीच कोई रिक्त स्थान नहीं हैं। ब्रैकेट को शामिल न करें क्योंकि मैंने स्पष्टता के लिए उन्हें जोड़ा था। उदाहरण के लिए, मेरे लैपटॉप के लिए यह इस तरह दिखता है:

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

आप -Bविकल्प का उपयोग करके इसे पृष्ठभूमि में भी चला सकते हैं ताकि यह आपके कंसोल को न ले।

अब आप नेटवर्क से जुड़े हैं।

ऑनलाइन हो रही है

वास्तव में ऑनलाइन पाने के लिए, आपको किसी भी तरह एक आईपी प्राप्त करना होगा। अधिकांश लोग बस एक डीएचसीपी सर्वर से एक गतिशील आईपी प्राप्त करना चाहेंगे, शायद राउटर में निर्मित। (मैं एक स्थिर आईपी और राउटिंग टेबल को कवर करने नहीं जा रहा हूं क्योंकि यह अपने आप में एक जानवर है।)

एक डीएचसीपी लीज प्राप्त करने के लिए, पहले जो भी पट्टे आप अभी भी (रूट के रूप में) पर रख रहे हैं, उसे जारी करें:

# dhclient -r

फिर एक नए पट्टे के लिए पूछें (बेशक अपने नेटवर्क डिवाइस के नाम के साथ eth1 की जगह, वही जो आपने पिछले अनुभाग में उपयोग किया था):

# dhclient eth1

अब आपके पास कम से कम सिद्धांत में एक आईपी है। हैप्पी सर्फिंग!


1
अनुभवहीन लोगों के लिए FYI, अधिकांश वायरलेस कार्ड इंटरफ़ेस नाम wlan <नंबर> होंगे, इसलिए उदाहरण के लिए आपके कॉन्फ़िगरेशन में पहला वायरलेस कार्ड eth1 के बजाय wlan0 होगा
xorinzor

धन्यवाद, wpa_passphrase कमांड ने मदद की। मैंने स्वीकार किए गए उत्तर की कोशिश की लेकिन फ़ाइल गलत थी, wpa_passphrase ने उसकी मदद की और फिर मैंने स्वीकार किए गए उत्तर से दूसरी कमान पारित की (मुझे पहले से ही पता था कि इसे wlan0 कहा जाता है) ...
लिलियन ए।

धन्यवाद जो वास्तव में बहुत अच्छा था, क्या आप मुझे लिंक कवर दे सकते हैं कि सेटअप स्टैटिक और राउटिंग टेबल कैसे ... :)
यासीन

1
व्यापक होने के लिए @AlexandreSchmidt +1!
जॉन स्ट्रोड

@ जॉनस्ट्रोड सख्ती से आपको धन्यवाद देना चाहिए कि जिसने भी वेबसाइट को लिखा है, क्योंकि वह वहां से कॉपी है
icc97

8

वाईफ़ाई नेटवर्क का प्रबंधन करने के लिए डेबियन और अन्य डिस्ट्रोस में डिफ़ॉल्ट रूप से सेवा के रूप में wpa_suplicant चल रहा है। wpa_suplicant को अलग-अलग क्लाइंट / फ्रंट-एंड जैसे नेटवर्क मैनेजर GUI द्वारा नियंत्रित किया जा सकता है। इस डेबियन विकी में इसे बेहतर तरीके से समझाया गया है ।

wpa_cli वाईफाई नेटवर्क का प्रबंधन करने के लिए कमांड लाइन wpa_suplicant क्लाइंट है।

संपादित करें : मैंने अभी इस पोस्ट को यह समझाते हुए पाया है कि nmcli का उपयोग कैसे किया जाता है और यह wpa_cli से बहुत बेहतर है क्योंकि यह GUI नेटवर्क प्रबंधक और उनकी सेटिंग्स और सहेजे गए वाईफाई नेटवर्क के साथ संगत है।

Wpa_cli के उपयोग का उदाहरण :

जांचें कि मेरे पास पहले से ही एक वाईफाई सक्षम नेटवर्क इंटरफेस है:

# 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 प्रक्रिया चल रही है:

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

Wpa क्लाइंट इंटरेक्टिव मोड में दर्ज करें:

# wpa_cli

सूची उपलब्ध पहुँच बिंदु:

> scan
> scan_results

... और आपको ऐसा कुछ मिलता है:

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

अपना एपी जोड़ें:

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

इसे वर्तमान के रूप में चुनें:

> enable_network 0

इससे कनेक्ट करें:

> reconnect

स्थिति की जाँच करें:

> status

Wit_cli से बाहर निकलें:

> quit

शेल से, IP और नेट सेटिंग्स के लिए DHCP का अनुरोध करें:

# dhclient -r
# dhclient wlan0

आप क्यों बात करते हैं wpa_cliऔर फिर आप लिखते हैं wpa_client? wpa_client
कुबंटु

आप ठीक कह रहे हैं ... निश्चित।
डेविड

3

अगर यह नहीं चल रहा है तो पहले अपने कार्ड को बड़ा करें:

ifconfig wlan0 up

अपने नेटवर्क के लिए पैरामीटर सेट करें

iwlist wlan0 scan
iwconfig wlan0 essid NETWORK_ID key WIRELESS_KEY

15
मेरा मानना ​​है कि यह WEP के लिए ही है। डब्ल्यूपीए नहीं;)
रिनविंड

रिनविंड सही है। यह WEP के लिए है। ते गलती के लिए क्षमा करें।
LnxSlck

2
कोई दिक्कत नहीं है। इसे यहां छोड़ दें और किसी दिन आपके जवाब से किसी को लाभ होगा;)
रिनजविंड

एक खुले नेटवर्क की तरह एक कुंजी के बिना भी यह काम करेगा?
EvoandroidEvo

1
मुझे आशा है कि WEP के विशिष्ट उत्तर से किसी को कोई लाभ नहीं होगा: '(
मैक्स रिड

2

यदि आप checkboxपैकेज स्थापित करते हैं तो वास्तव में NetworkManager का उपयोग करने का एक तरीका है ।

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

(क्रेडिट: बग 923836 , जो इस विषय पर मेरी खोजों में आया था।)


2

Wpa_supplicant का सुझाव देने वाले सभी उत्तर गलत हैं। हां, यह आपको WPA नेटवर्क से जोड़ सकता है, लेकिन यह लंबे समय में एक बुरा समाधान है क्योंकि इसे बनाए रखना बहुत मुश्किल होगा और वायर्ड कनेक्शन के साथ अच्छी तरह से नहीं खेलेंगे। इस उत्तर को पढ़ें और कमांड लाइन से नेटवर्क मैनेजर का उपयोग करके अपने जीवन को आसान बनाएं। मैंने wpa_supplicant को कॉन्फ़िगर करने की कोशिश में घंटों बर्बाद कर दिए, फिर nmcli की कोशिश की और यह "बस काम किया"।


2
'बस काम' की चीजों के साथ समस्या यह है कि वे आसानी से 'सिर्फ काम नहीं' कर सकते हैं और फिर आप कहां हैं। सीएलआई लोगों के लिए, प्रत्यक्ष wpa_supplicant दृष्टिकोण बेहतर है क्योंकि यह अपने सभी भागों को उजागर करता है। NM की बड़ी खूबी यह है कि इसके सभी भाग छिपे हुए हैं। इसलिए यह कहना गलत है कि wpa_supplicant दृष्टिकोण गलत है। आपको ऐसी चीजें पसंद हैं जो 'सिर्फ काम' हों, ठीक है। आपकी प्राथमिकता आपका अधिकार है, लेकिन लोगों को यह बताना गलत है कि वे गलत हैं, क्योंकि उनकी प्राथमिकता आपकी नहीं है। यही कारण है कि मैंने आपके जवाब को टाल दिया।
स्टीफन बॉस्टन

2

आप VSWM - Very Simple Wireless Manager का उपयोग कर सकते हैं। आप अपने ज्ञात APs को एक साधारण cfg फ़ाइल (/etc/vswm.cfg) पर रखते हैं और जब आप vswmइसे चलाते हैं तो उपलब्ध नेटवर्क को स्कैन करते हैं और अपने कार्ड को /etc/vswm.cfg पर प्रदर्शित होने वाले कार्ड से जोड़ते हैं।

VSWM https://github.com/dmelo/vswm पर उपलब्ध है । यहाँ बताया गया है कि vswm.cfg config फाइल कैसी दिखती है:

[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

हुड्स के तहत, यह मानक कमांड लाइन टूल्स का उपयोग करता है: iwlist, wpa_supplicant, iwconfig, dhclient ... केवल यह काम को स्वचालित करता है।


1

मुझे wpa_supplicantवायरलेस नेटवर्क पर लाने के लिए सीधे उपयोग करने में परेशानी हुई । जब मैंने कमांड लाइन wpa_supplicant.confपर फ़ाइल का उपयोग किया, तो मेरा नेटवर्क आईडी और पासवर्ड उत्पन्न हुई wpa_supplicant, जैसे

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

मैं इसके साथ काम करने में सक्षम था wpa_cli। कमांड क्रम का मुझे उपयोग करना था, क्योंकि मैं लिनक्स ndiswrapper के साथ विंडोज ड्राइवर का उपयोग कर रहा हूं, यह है:

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

मेरे पास GUI में नेटवर्किंग के वायरलेस अनुभाग में जोड़कर नेटवर्क सेट अप था, ताकि मैं वायर्ड या वायरलेस नेटवर्क आइकन पर क्लिक कर सकूं और वायरलेस प्रदाता का चयन कर सकूं (जो कि लॉगिन पूरा करने के लिए कभी-कभी आवश्यक था)।


1

nmcliUbuntu पर डिफ़ॉल्ट नेटवर्क प्रबंधक एप्लिकेशन का कमांड लाइन संस्करण है।

कुछ फायदे यह हैं कि यह आपके द्वारा पहले से ही ग्राफ़िकल इंटरफ़ेस से कॉन्फ़िगरेशन का उपयोग करता है और इसे रूट एक्सेस की आवश्यकता नहीं है।

आप nmcliउपलब्ध विकल्पों को दिखाने के लिए दौड़ सकते हैं।

MYESSID नामक वाईफाई से कनेक्ट करने के लिए उदाहरण:

    nmcli c up MYESSID   

1
nmcli, nm-applet, और हाँ आपका उत्तर सबसे अच्छा है, लेकिन मुझे नहीं पता कि कोई भी इसे क्यों वोट नहीं करता है
Saeid

@ सईद धन्यवाद!
desgua
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.