tra-loi-cau-hoi-phat-trien-web.com

Làm cách nào để hiển thị giao diện wi-fi từ dòng lệnh?

Tôi không thể tìm ra cách mang đúng thẻ wi-fi trên máy tính xách tay của mình. Khi tôi bật nó lên và phát hành

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

nó báo cáo rằng mạng bị hỏng. Cố gắng để đưa nó lên thất bại quá:

$ Sudo ifup wlan0
wlan0     no private ioctls.

Failed to bring up wlan0.

Rõ ràng tôi đang thiếu một số cấp độ cơ bản iw... chỉ huy.

Khi tôi phát hành dhclient trên giao diện:

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

và làm gián đoạn nó, nó đưa thiết bị lên bằng cách nào đó và sau đó quét, vv hoạt động. Tôi muốn tránh bước rõ ràng không cần thiết này.

32
Petr Pudlák

Sudo ip link set wlan0 up hoặc là Sudo ifconfig wlan0 up.


Trả lời từ ngày 13 tháng 4 năm 17:

Để giải thích về câu trả lời của Martin:

Các lệnh ifupifdown là một phần của gói ifupdown , mà bây giờ được coi là giao diện kế thừa cho cấu hình mạng , so với các lệnh mới hơn, nhu la network manager.

Khi ifupifupdown đọc cài đặt cấu hình từ /etc/network/interfaces; nó chạy pre-up, post-uppost-down tập lệnh từ /etc/network, bao gồm bắt đầu /etc/wpasupplicant/ifupdown.sh xử lý thêm wpa-* tùy chọn cấu hình cho wifi wpa, trong /etc/network/interfaces (xem zcat /usr/share/doc/wpasupplicant/README.Debian.gz cho tài liệu). Dành cho WEP wireless-tools gói đóng vai trò tương tự như wpa-supplicant. iwconfig là từ wireless-tools, quá.

ifconfig cùng một lúc là một công cụ cấp thấp hơn , được sử dụng bởi ifupdown và cho phép linh hoạt hơn. Chẳng hạn, có 6 chế độ hoạt động của bộ điều hợp wifi và IIRC ifupdown chỉ bao gồm chế độ được quản lý (+ chế độ chuyển vùng, chính thức không phải là chế độ?). Với iwconfigifconfig bạn có thể bật ví dụ: chế độ màn hình của thẻ không dây của bạn, trong khi với ifupdown bạn sẽ không thể làm điều đó trực tiếp.

Lệnh ip là một công cụ mới hơn hoạt động trên đỉnh ổ cắm netlink , một cách mới để định cấu hình ngăn xếp mạng kernel từ không gian người dùng (các công cụ như ifconfig được xây dựng trên đầu trang của ioctl gọi hệ thống).

31
Boris Burkov

Thử ifconfig wlan0 up thay vì ifup.

12
Martin von Wittich

Kể từ Ubuntu 18.04 (và các phiên bản Debian tương ứng) ifconfigifup/ifdown không được dùng nữa và cách được đề xuất để hiển thị giao diện là với ip chỉ huy:

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

Và bạn có thể kiểm tra các giao diện có sẵn của mình với:

ip link

Và bạn có thể hiển thị địa chỉ IP được gán của giao diện của mình với:

ip addr show

Hay cụ thể hơn:

ip addr show scope global | grep inet
4
shellcat_zero

Đây là những gì tôi sử dụng để kết nối với điểm truy cập WEP hàng ngày:

#!/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

Bạn sẽ phải đặt ESSID và MAC cho bất kỳ điểm truy cập nào bạn muốn.

Khó hơn một chút cho mã hóa WPA. Bạn phải có wpa_supplicant.conf tập tin với một mục thích hợp. Như thế này:

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

Khi bạn có một tệp conf như vậy, thì bạn có thể chạy tập lệnh này:

#!/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 

Cập nhật, 2014-12-03 :

Arch Linux là như vậy, kịch bản kết nối với WEP của tôi khác rất nhiều. Tôi nghĩ rằng tôi nên thêm nó vào câu trả lời này để giữ cho nó cập nhật.

#!/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

Tôi đã phải chuyển sang sử dụng iw rất đột ngột. Đôi điều về nhân Arch LTS hoặc trình điều khiển WiFi (máy tính xách tay của tôi có thẻ Intel WiFi sử dụng trình điều khiển "iwl4965") đã thay đổi cách đây không lâu. Bạn sẽ phải thay đổi tần số ("2462") và địa chỉ MAC của điểm truy cập để làm cho điều này hoạt động.

4
Bruce Ediger