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


30

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ố iw...lệnh cấp thấp cơ bản .

Khi tôi phát hành dhclienttrê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.


Có nhiều giao diện wifi từ kernel đến không gian người dùng. Cái iwconfignày không được dùng nữa và có thể không được cấu hình thành kernel hiện đại. Các iwphương pháp hiện đại hơn / ưa thích ( nl80211 ). Cũ hơn iwconfigcó thể đưa ra lỗi wierd khi hỗ trợ wext không được biên dịch / cấu hình. Những công cụ / kịch bản phân phối làm cho có sẵn là một vấn đề khác. Tôi đoán nếu bạn sử dụng một bản phân phối, họ nên cẩn thận để đưa ra các gói / cấu hình phù hợp. Nếu bạn xây dựng của riêng bạn, thì bạn có thể có vấn đề ở trên.
tiếng ồn vô nghĩa

Câu trả lời:


29

Thật vậy, hãy thử sudo ifconfig wlan0 up. Để giải thích về câu trả lời của Martin:

ifupifdowncác lệnh là một phần của gói ifupdown , hiện được coi là lối vào kế thừa cho cấu hình mạng , so với các lệnh mới hơn, chẳng hạn như network manager.

Khi ifup ifupdownđọc cài đặt cấu hình từ /etc/network/interfaces; nó chạy pre-up, post-uppost-downkịch bản từ /etc/network, trong đó bao gồm bắt đầu /etc/wpasupplicant/ifupdown.shcác quá trình thêm wpa-*tùy chọn cấu hình cho WPA wifi, trong /etc/network/interfaces (xem zcat /usr/share/doc/wpasupplicant/README.Debian.gzcho tài liệu). Đối với wireless-toolsgói WEP đóng vai trò tương tự wpa-supplicant. iwconfiglà từ wireless-tools, quá.

ifconfigđồng thời là một công cụ cấp thấp hơn , được sử dụng bởi ifupdownvà 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 ifupdownchỉ 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 iwconfigifconfigbạn có thể kích hoạt ví dụ như chế độ màn hình của card không dây của bạn, trong khi với ifupdownbạn sẽ không thể làm điều đó trực tiếp.


7
với độ dài debian, ifconfigđã được thay thế bằng ip, lệnh thay thế làip link set wlan0 up
Ben


4

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

Việc mã hóa WPA khó hơn một chút. Bạn phải có một wpa_supplicant.conftậ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 iwrấ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.


3

Kể từ Ubuntu 18.04 (và các phiên bản Debian tương ứng) ifconfigifup/ ifdownkhông được dùng nữa, và cách được đề xuất để hiển thị giao diện là bằng iplệnh:

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.