วิธีนำอินเตอร์เฟส wi-fi ขึ้นมาจากบรรทัดคำสั่ง?


30

ฉันไม่สามารถหาวิธีนำการ์ด wi-fi มาบนแล็ปท็อปของฉันได้อย่างถูกต้อง เมื่อฉันเปิดและปัญหา

$ sudo iwconfig wlan0 txpower auto
$ sudo iwlist wlan0 scan
wlan0     Interface doesn't support scanning : Network is down

มันรายงานว่าเครือข่ายไม่ทำงาน การพยายามทำให้มันล้มเหลวเช่นกัน:

$ sudo ifup wlan0
wlan0     no private ioctls.

Failed to bring up wlan0.

เห็นได้ชัดว่าฉันขาดiw...คำสั่งพื้นฐานระดับต่ำ

เมื่อฉันออกdhclientอินเทอร์เฟซ:

$ sudo dhclient -v wlan0
Internet Systems Consortium DHCP Client 4.2.2
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

^C$

และขัดจังหวะมันจะนำอุปกรณ์ขึ้นมาแล้วสแกน ฯลฯ ทำงาน ฉันต้องการหลีกเลี่ยงขั้นตอนที่ไม่จำเป็นนี้อย่างชัดเจน


มีหลายอินเตอร์เฟส wifiจากเคอร์เนลไปยังพื้นที่ผู้ใช้ iwconfigจะเลิกและอาจไม่สามารถกำหนดค่าลงในเคอร์เนลที่ทันสมัย iwเป็นวิธีการที่ทันสมัยมากขึ้น / แนะนำ ( nl80211 ) เก่ากว่าiwconfigอาจมีข้อผิดพลาดที่แปลกประหลาดเมื่อการสนับสนุนwextไม่ได้รวบรวม / กำหนดค่า เครื่องมือ / สคริปต์ distros ใดที่ให้บริการเป็นปัญหาอื่น ฉันเดาว่าถ้าคุณใช้ distro พวกเขาควรดูแลเพื่อให้ได้แพ็คเกจ / การกำหนดค่าที่เหมาะสม หากคุณสร้างของคุณเองคุณอาจมีปัญหาข้างต้น
เสียงอึกทึก

คำตอบ:


29

sudo ifconfig wlan0 upอันที่จริงลอง เพื่ออธิบายรายละเอียดเกี่ยวกับคำตอบของ Martin:

ifupและifdownคำสั่งที่เป็นส่วนหนึ่งของแพคเกจ ifupdownซึ่งขณะนี้ถือว่าเป็นส่วนหน้ามรดกสำหรับการกำหนดค่าเครือข่ายnetwork managerเมื่อเทียบกับคนใหม่เช่น

เมื่อifup ifupdownอ่านการตั้งค่าการกำหนดค่าจาก/etc/network/interfaces; มันวิ่งpre-up, post-upและpost-downสคริปต์จาก/etc/networkซึ่งรวมถึงการเริ่มต้น/etc/wpasupplicant/ifupdown.shว่ากระบวนการเพิ่มเติมwpa-*ตัวเลือกการกำหนดค่าสำหรับ WPA WiFi, ใน/etc/network/interfaces (ดูzcat /usr/share/doc/wpasupplicant/README.Debian.gzเอกสาร) สำหรับ WEP แพคเกจมีบทบาทคล้ายกับwireless-tools มาจากเช่นกันwpa-supplicantiwconfigwireless-tools

ifconfigในเวลาเดียวกันเป็นเครื่องมือระดับล่างซึ่งถูกใช้โดยifupdownและช่วยให้มีความยืดหยุ่นมากขึ้น ตัวอย่างเช่นการทำงานของอแด็ปเตอร์ไร้สายมี 6 โหมดและ IIRC ifupdownครอบคลุมเฉพาะโหมดที่ได้รับการจัดการ (+ โหมดโรมมิ่งซึ่งเป็นโหมดที่ไม่เป็นทางการ?) ด้วยiwconfigและifconfigคุณสามารถเปิดใช้งานเช่นโหมดการตรวจสอบของการ์ดไร้สายของคุณในขณะที่ifupdownคุณจะไม่สามารถทำเช่นนั้นได้โดยตรง


7
ด้วยการยืดเดเบียน, ifconfigถูกแทนที่ด้วยip, คำสั่งทางเลือกคือip link set wlan0 up
Ben


4

นี่คือสิ่งที่ฉันใช้เชื่อมต่อกับจุดเชื่อมต่อ WEP ทุกวัน:

#!/bin/bash

DEV=$(iw dev | awk '/Interface/ {interf=$2} END {print interf}')
PIDFILE=/var/run/dhcpcd-$DEV.pid


if [[ -f $PIDFILE ]] && kill -0 $(cat /var/run/dhcpcd-$DEV.pid)
then
    dhcpcd -k $DEV
fi

ifconfig $DEV down
sleep 1
iwconfig $DEV mode managed
iwconfig $DEV  key blabfoobar
ifconfig $DEV up
iwconfig $DEV essid 'Unindicted Co-conspirator'
iwconfig $DEV ap 00:0D:51:EB:E5:1E

sleep 5
dhcpcd --noipv6rs --noarp $DEV

คุณจะต้องใส่ ESSID และ MAC สำหรับจุดเชื่อมต่อที่คุณต้องการ

มันยากขึ้นเล็กน้อยสำหรับการเข้ารหัส WPA คุณต้องมีwpa_supplicant.confไฟล์ที่มีรายการที่เหมาะสม อย่างนี้:

# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers
network={
    ssid="FaveCoffeeHouse"
    psk="cafe241800"
    priority=1
}

เมื่อคุณมีไฟล์ conf แล้วคุณสามารถเรียกใช้สคริปต์นี้:

#!/bin/bash

DEV=$(iw dev | awk '/Interface/ {print $2}')

ifconfig $DEV down
iwconfig $DEV mode managed
ifconfig $DEV up
iwconfig $DEV essid 'FaveCoffeeHouse'
iwconfig $DEV ap 00:21:1e:3d:2a:80

echo now run: wpa_supplicant -Dnl80211 -i$DEV -c./wpa_supplicant.conf 

อัปเดต, 2014-12-03:

Arch linux คือสิ่งที่มันเป็นสคริปต์การเชื่อมต่อกับ WEP ของฉันแตกต่างกันมาก ฉันคิดว่าฉันจะเพิ่มคำตอบนี้เพื่อให้ทันสมัย

#!/bin/bash

DEV=wlp12s0

if [[ -f /run/dhcpcd-$DEV.pid ]]
then
        kill -QUIT $(cat /run/dhcpcd-$DEV.pid)
fi

ifconfig $DEV down
iw dev $DEV set type managed
ifconfig $DEV up
sleep 2

iw dev wlp12s0 connect -w 'Akond of Swat' 2462 00:7c:41:eb:e5:1e key 0:befedade

sleep 15

dhcpcd -4 --nohook 10-wpa_supplicant --noarp --noipv6rs $DEV

ฉันต้องเปลี่ยนไปใช้iwอย่างกะทันหัน บางอย่างเกี่ยวกับเคอร์เนล Arch LTS หรือไดรเวอร์ WiFi (แล็ปท็อปของฉันมีการ์ด Intel WiFi ที่ใช้ไดรเวอร์ "iwl4965") เปลี่ยนไปไม่นานมานี้ คุณจะต้องเปลี่ยนความถี่ ("2462") และที่อยู่ MAC ของจุดเชื่อมต่อเพื่อให้ใช้งานได้


3

ตั้งแต่ Ubuntu 18.04 (และรุ่นเดเบียนที่สอดคล้องกัน) ifconfigและifup/ ifdownเลิกใช้แล้วและวิธีที่แนะนำในการใช้งานอินเทอร์เฟซนั้นคือipคำสั่ง:

ip link set dev <interface> up
ip link set dev <interface> down

และคุณสามารถตรวจสอบอินเทอร์เฟซที่มีให้กับ:

ip link

และคุณสามารถแสดงที่อยู่ IP ที่ได้รับมอบหมายของอินเทอร์เฟซของคุณด้วย:

ip addr show

หรือเฉพาะเจาะจงมากขึ้น:

ip addr show scope global | grep inet
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.