โดยพื้นฐานแล้วฉันต้องการใช้iwconfig
เพื่อเชื่อมต่อกับเครือข่าย wifi ของฉันเมื่อฉันไม่ได้อยู่ใน X แต่ฉันไม่เห็นวิธีที่จะทำในหน้าคน ความคิดใด ๆ
โดยพื้นฐานแล้วฉันต้องการใช้iwconfig
เพื่อเชื่อมต่อกับเครือข่าย wifi ของฉันเมื่อฉันไม่ได้อยู่ใน X แต่ฉันไม่เห็นวิธีที่จะทำในหน้าคน ความคิดใด ๆ
คำตอบ:
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.
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
&&
ลิงค์นี้แสดงทุกอย่างและทำงานได้ดีสำหรับฉัน: http://linux.icydog.net/wpa.php
ฉันกำลังคัดลอกเนื้อหาที่นี่ดังนั้นเรามีมันในกรณีที่ไซต์ออฟไลน์
บรรทัดคำสั่ง WPA
บางครั้งคุณจะอยู่ที่บรรทัดคำสั่งโดยไม่สามารถเข้าถึงเครื่องมือเครือข่าย GUI ได้ แต่จุดเข้าใช้ของคุณจะปลอดภัยด้วย WPA คุณทำอะไร?
สมมติว่าการ์ดไร้สายของคุณใช้งานได้จริง (เช่น iwconfig สามารถดูและโต้ตอบกับมันได้) การใช้ wpa_supplicant นั้นง่ายมาก การติดตั้ง wpa_supplicant
distros ส่วนใหญ่ในปัจจุบันมีการติดตั้ง wpa_supplicant เป็นค่าเริ่มต้น หากคุณมีคำสั่ง wpa_passphrase และ wpa_supplicant พร้อมใช้งานแสดงว่าคุณพร้อมแล้ว มิฉะนั้นคุณจะต้องติดตั้งแพคเกจโดยทำสิ่งที่ชอบ (สำหรับ Ubuntu):
$ sudo apt-get install wpasupplicant
หรือ (สำหรับ Fedora):
# yum install wpa_supplicant
หรือสิ่งที่คำสั่งสำหรับ distro ของคุณ
กำลังสร้างไฟล์ปรับแต่ง
หลังจากติดตั้ง wpa_supplicant แล้วเราจะสร้างไฟล์การกำหนดค่า เมื่อคุณทราบวลีรหัสผ่าน SSID และ WPA สิ่งที่คุณต้องทำคือเรียกใช้:
$ wpa_passphrase myrouter mypassphrase > wpa.conf
แน่นอนแทนที่ "myrouter" ด้วย SSID ของเราเตอร์ของคุณ "mypassphrase" ด้วยวลีรหัสผ่าน WPA ของคุณและ "wpa.conf" ด้วยไฟล์ใดก็ตามที่คุณต้องการจัดเก็บการกำหนดค่าชื่อไฟล์นี้ไม่จำเป็นต้องทำตามรูปแบบเฉพาะหรือ มีนามสกุลเฉพาะ
เพื่อหลีกเลี่ยงการพิมพ์ข้อความรหัสผ่านบนบรรทัดคำสั่ง (ดังนั้นจึงไม่ได้รับการบันทึกไว้ในประวัติของเชลล์) คุณสามารถระบุเพียง SSID ในบรรทัดคำสั่ง wpa_passphrase จะรอให้คุณพิมพ์ข้อความรหัสผ่านตามด้วย enter:
$ wpa_passphrase myrouter > wpa.conf
mypassphrase
คุณควรท้ายด้วยไฟล์ที่มีลักษณะดังนี้:
network={
ssid="myrouter"
#psk="mypassphrase"
psk=8ada1f8dbea59704ac379538b4d9191f6a72390581b4cd7a72864cea685b1a7f
}
กำลังเชื่อมต่อ
ตอนนี้เราจะเรียกใช้ wpa_supplicant เพื่อเชื่อมต่อกับเครือข่ายไร้สาย ขั้นแรกหากเราเตอร์ของคุณออกอากาศ SSID (พวกเขาทำตามค่าเริ่มต้น) คุณอาจต้องการตรวจสอบให้แน่ใจว่าการ์ดไร้สายของคุณสามารถเห็นได้จริง:
$ iwlist scan
คุณอาจต้องเรียกใช้งานในฐานะ root เพื่อบังคับให้รีเฟรช
ถัดไปคุณจะต้องรู้ข้อมูลสามส่วน:
wpa_supplicant --help
จะแสดงรายการไดรเวอร์ต่าง ๆ ที่มี (ภายใต้ "ไดรเวอร์:") ในฐานะของ 0.5.8, ตัวเลือกที่มีประโยชน์: wext
, hostap
, madwifi
, atmel
, ndiswrapper
และipw
(IPW สำหรับเมล็ดเก่าเท่านั้น> = 2.6.13 ควรใช้ wext) หากคุณไม่เห็นการจับคู่แบบเฉพาะเจาะจงสำหรับการ์ดของคุณให้ลองใช้ wext เพราะเป็นสิ่งที่จับใจได้iwconfig
ได้ มันจะรายงาน "ไม่มีส่วนขยายไร้สาย" สำหรับอุปกรณ์ที่ไม่ใช่ไร้สายและจะแสดงข้อมูลบางอย่างสำหรับอุปกรณ์ไร้สายใด ๆตอนนี้คุณมีข้อมูลนี้แล้วให้รัน (เหมือนรูท):
# wpa_supplicant -D[driver] -i[device] -c[/path/to/config]
ไม่มีช่องว่างระหว่างตัวเลือกและพารามิเตอร์ อย่าใส่วงเล็บในขณะที่ฉันเพิ่งเพิ่มมันเพื่อความชัดเจน ตัวอย่างเช่นสำหรับแล็ปท็อปของฉันดูเหมือนว่า:
# wpa_supplicant -Dwext -ieth1 -c/root/wpa.conf
คุณยังสามารถเรียกใช้มันในพื้นหลังโดยใช้-B
ตัวเลือกเพื่อไม่ให้ใช้คอนโซลของคุณ
ตอนนี้คุณเชื่อมโยงกับเครือข่ายแล้ว
กำลังออนไลน์
ในการรับออนไลน์คุณจะต้องได้รับ IP อย่างใด คนส่วนใหญ่เพียงต้องการรับ IP แบบไดนามิกจากเซิร์ฟเวอร์ DHCP อาจเป็นหนึ่งในตัวเราเตอร์ (ฉันจะไม่ครอบคลุมการตั้งค่า IP แบบคงที่และตารางเส้นทางเนื่องจากเป็นสัตว์ในตัวเอง)
หากต้องการรับสัญญาเช่า DHCP ก่อนอื่นให้ปล่อยสัญญาเช่าที่คุณยังถืออยู่
# dhclient -r
จากนั้นขอเช่าใหม่ (แน่นอนแทนที่ eth1 ด้วยชื่ออุปกรณ์เครือข่ายของคุณซึ่งเป็นชื่อเดียวกับที่คุณใช้ในส่วนก่อนหน้า):
# dhclient eth1
ตอนนี้คุณมี IP อย่างน้อยก็ในทางทฤษฎี มีความสุขในการท่องเว็บ!
Debian และ distros อื่น ๆ มี wpa_suplicant กำลังทำงานเป็นบริการตามค่าเริ่มต้นเพื่อจัดการเครือข่าย wifi wpa_suplicant สามารถจัดการได้โดยไคลเอนต์ / front-end ที่แตกต่างกันเช่น GUI ผู้จัดการเครือข่าย นี่คือคำอธิบายที่ดีขึ้นในวิกิเดเบียนนี้
wpa_cli เป็นบรรทัดคำสั่งลูกค้า wpa_suplicant เพื่อจัดการเครือข่ายไร้สาย
แก้ไข : ฉันเพิ่งพบโพสต์นี้อธิบายวิธีการใช้ nmcliและมันดีกว่า wpa_cli เนื่องจากมันเข้ากันได้กับ GUI Network Manager และการตั้งค่าและเครือข่าย wifi ที่บันทึกไว้
ตัวอย่างการใช้ wpa_cli :
ตรวจสอบว่าฉันมีอินเตอร์เฟซเครือข่ายที่เปิดใช้งาน wifi แล้ว:
# 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
...
เพิ่ม AP ของคุณ:
> add_network
> set_network 0 ssid "vodafone817E"
> set_network 0 psk "my-pass-phrase"
เลือกเป็นปัจจุบัน:
> enable_network 0
เชื่อมต่อกับมัน:
> reconnect
ตรวจสอบสถานะ:
> status
ออกจาก wpa_cli:
> quit
จาก shell ร้องขอ DHCP สำหรับ IP และการตั้งค่าเน็ต:
# dhclient -r
# dhclient wlan0
wpa_cli
แล้วคุณเขียนwpa_client
? บน Kubuntu 18.10 wpa_client
ดูเหมือนว่าไม่มีอยู่ในฐานะคำสั่ง
ก่อนที่จะยกการ์ดของคุณขึ้นถ้ามันไม่ทำงาน:
ifconfig wlan0 up
ตั้งค่าพารามิเตอร์ตามเครือข่ายของคุณ
iwlist wlan0 scan
iwconfig wlan0 essid NETWORK_ID key WIRELESS_KEY
จริงๆแล้วมีวิธีการทำโดยใช้ NetworkManager หากคุณมีcheckbox
แพ็คเกจที่ติดตั้ง
sudo /usr/share/checkbox/create_connection SSID --security=wpa -key=WPA-KEY
(เครดิต: ข้อผิดพลาด 923836ซึ่งปรากฏขึ้นในการค้นหาของฉันในหัวข้อ)
คำตอบทั้งหมดที่แนะนำ wpa_supplicant นั้นผิด ใช่มันอาจเชื่อมต่อคุณเข้ากับเครือข่าย WPA แต่นั่นเป็นวิธีแก้ปัญหาที่ไม่ดีในระยะยาวเพราะมันจะยากมากในการบำรุงรักษาและจะไม่เล่นได้ดีกับการเชื่อมต่อแบบมีสาย อ่านคำตอบนี้และทำให้ชีวิตของคุณง่ายขึ้นโดยใช้ Network Manager จากบรรทัดคำสั่ง ฉันเสียเวลาพยายามกำหนดค่า wpa_supplicant จากนั้นลอง nmcli และ "เพิ่งทำงาน"
คุณสามารถใช้ VSWM - ตัวจัดการไร้สายที่ง่ายมาก คุณวาง APs ที่รู้จักของคุณลงในไฟล์ cfg อย่างง่าย (/etc/vswm.cfg) และเมื่อคุณรันvswm
มันจะสแกนเครือข่ายที่มีอยู่และเชื่อมต่อการ์ดของคุณด้วยตัวแรกที่ปรากฏบน /etc/vswm.cfg
VSWM สามารถใช้ได้ที่https://github.com/dmelo/vswm นี่คือการเลือกว่าไฟล์การกำหนดค่า 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
ภายใต้ hoods จะใช้เครื่องมือบรรทัดคำสั่งมาตรฐาน: iwlist, wpa_supplicant, iwconfig, dhclient ... มันทำงานโดยอัตโนมัติเท่านั้น
ฉันมีปัญหาในการใช้wpa_supplicant
โดยตรงกับเครือข่ายไร้สาย ID เครือข่ายและรหัสผ่านของฉันสร้างข้อผิดพลาดเมื่อฉันใช้wpa_supplicant.conf
ไฟล์บนwpa_supplicant
บรรทัดคำสั่งเช่น
sudo wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -B
wpa_cli
ผมสามารถที่จะหลีกเลี่ยงมันด้วย ลำดับคำสั่งที่ฉันต้องใช้เนื่องจากฉันใช้ไดรเวอร์ Windows ที่มี Linux ndiswrapper คือ:
sudo modprobe ndiswrapper
sudo iwconfig wlan0 essid "<My Network ID>" mode managed
sudo wpa_cli identity "<My Network ID>" password "<My password>"
ฉันมีเครือข่ายตั้งค่าโดยเพิ่มในส่วนไร้สายของเครือข่ายใน GUI เพื่อให้ฉันสามารถคลิกที่ไอคอนเครือข่ายแบบใช้สายหรือไร้สายและเลือกผู้ให้บริการไร้สาย
The nmcli
เป็นเวอร์ชันบรรทัดคำสั่งของแอปตัวจัดการเครือข่ายเริ่มต้นบน Ubuntu
ข้อดีบางประการคือใช้การกำหนดค่าที่คุณมีอยู่แล้วจากส่วนต่อประสานกราฟิกและไม่จำเป็นต้องเข้าถึงรูท
คุณสามารถเรียกใช้nmcli
เพื่อแสดงตัวเลือกที่มี
ตัวอย่างการเชื่อมต่อ wifi ชื่อ MYESSID:
nmcli c up MYESSID