コマンドラインから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サポートが設定/コンパイルされていません。別の問題は、ツール/スクリプトディストリビューションで利用できるものです。ディストリビューションを使用する場合は、適切なパッケージ/構成を提供するように注意してください。独自に構築する場合、上記の問題が発生する可能性があります。
アートレスノイズ

回答:


29

確かに、試してみてくださいsudo ifconfig wlan0 up。マーティンの答えを詳しく説明するには:

ifupそして、ifdownコマンドはの一部であるのifupdownパッケージ今、ネットワーク構成のため、従来のフロントエンドとみなされるような新しいものに比べ、network manager

ifup ifupdownから構成設定を読み取ります/etc/network/interfaces。それが実行されpre-uppost-upそしてpost-downからのスクリプト/etc/networkの開始などが、/etc/wpasupplicant/ifupdown.shそのプロセスの追加wpa-*では、WPAの無線LANの設定オプションを/etc/network/interfaces (参照zcat /usr/share/doc/wpasupplicant/README.Debian.gzドキュメントのため)。WEP wireless-toolsパッケージの場合、同様の役割を果たしwpa-supplicantます。iwconfigからwireless-toolsもです。

ifconfig同時に使用される低レベルのツールであり、ifupdown柔軟性が向上します。たとえば、wifiアダプターの機能には6つのモードがあり、IIRC ifupdownは管理モード(+ローミングモード、正式にはモードではないモード)のみを対象としています。を使用するiwconfigたとえばワイヤレスカードの監視モード有効にできifconfigますが、使用ifupdownすると、直接監視することはできません。


7
Debianのストレッチで、ifconfig置き換えられているip、代替コマンドがあるip link set wlan0 up
ベン


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がそうであるように、私のconnect-to-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ドライバー(私のラップトップには "iwl4965"ドライバーを使用したIntel WiFiカードがあります)についての変更は、それほど前のことではありません。これを機能させるには、アクセスポイントの周波数( "2462")とMACアドレスを変更する必要があります。


3

Ubuntu 18.04(および対応するDebianバージョン)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.