web-dev-qa-db-ja.com

コマンドラインを使用してWPA wifiネットワークに接続するにはどうすればよいですか?

したがって、基本的には、Xの内部にいないときにiwconfigを使用してWi-Fiネットワークに接続したいと思います。しかし、manページにはそれを行う方法がありません。何か案が?

112
Ken Kinder

iw(list/config)はWEPのみを処理できます。

wpa_supplicantコマンドを提供するwpasupplicantパッケージが必要です。必要に応じて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.
110
Rinzwind

このリンクはそれをすべて示し、私のためにうまく働きました: http://linux.icydog.net/wpa.php

ここでコンテンツをコピーしているので、サイトがオフラインになった場合に備えて用意しています。

コマンドラインWPA

GUIネットワークツールにアクセスできないコマンドラインを使用することもありますが、アクセスポイントはWPAで保護されています。職業はなんですか?

ワイヤレスカードが実際に機能していると仮定すると(つまり、iwconfigがワイヤレスカードを認識して操作できる)、wpa_supplicantの使用は実際には非常に簡単です。 wpa_supplicantのインストール

現在、ほとんどのディストリビューションにはデフォルトでwpa_supplicantがインストールされています。コマンドwpa_passphraseおよびwpa_supplicantを使用できる場合は、準備ができています。それ以外の場合は、次のようなことを実行してパッケージをインストールする必要があります(Ubuntuの場合):

$ Sudo apt-get install wpasupplicant

または(Fedoraの場合):

# yum install wpa_supplicant

または、ディストリビューション用のコマンドは何でも。

設定ファイルの生成

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として実行する必要があります。

次に、3つの情報を知る必要があります。

  1. カードに使用するwpa_supplicantワイヤレスドライバー。 wpa_supplicant --helpを実行すると、さまざまなドライバーが一覧表示されます(「ドライバー:」の下)。 0.5.8現在、有用な選択肢はwexthostapmadwifiatmelndiswrapper、およびipw(ipwは古いカーネルのみ;> = 2.6.13はwextを使用する必要があります)。カードに特定の一致が表示されない場合は、wextを試してください。これは一種のキャッチオールです。
  2. カードのネットワークデバイス。通常、これはeth1またはwlan0ですが、不明な場合はiwconfigを実行するだけです。非ワイヤレスデバイスの場合は「ワイヤレス拡張機能なし」と報告され、ワイヤレスデバイスの一部のデータが表示されます。
  3. 前の手順で作成した構成ファイルへのパス。

このデータが得られたので、実行します(rootとして):

# wpa_supplicant -D[driver] -i[device] -c[/path/to/config]

オプションとパラメーターの間にスペースはありません。わかりやすくするために括弧を追加しただけなので、括弧は含めないでください。たとえば、私のラップトップの場合、次のようになります。

# wpa_supplicant -Dwext -ieth1 -c/root/wpa.conf

コンソールを占有しないように、-Bオプションを使用してバックグラウンドで実行することもできます。

これで、ネットワークに関連付けられました。

オンラインになる

実際にオンラインにするには、何らかの形でIPを取得する必要があります。ほとんどの人は、おそらくルーターに組み込まれているDHCPサーバーから動的IPを取得したいと思うでしょう。 (静的IPとルーティングテーブルの設定については説明しません。それはそれ自体が獣だからです。)

DHCPリースを取得するには、最初に(ルートとして)保持しているリースを解放します。

# dhclient -r

次に、新しいリースを要求します(もちろん、eth1を前のセクションで使用したものと同じネットワークデバイスの名前に置き換えます)。

# dhclient eth1

少なくとも理論的には、これでIPができました。ハッピーサーフィン!

71

Debianや他のディストリビューションでは、wifiネットワークを管理するために、デフォルトでwpa_suplicantがサービスとして実行されています。 wpa_suplicantは、ネットワークマネージャーGUIなどのさまざまなクライアント/フロントエンドで処理できます。これは debian wiki で詳しく説明されています。

wpa_cliは、wifiネットワークを管理するコマンドラインwpa_suplicantクライアントです。

Editnmcliの使用方法 を説明しているこの投稿を見つけたので、wpa_cliよりもはるかに優れています。 GUIネットワークマネージャーとその設定および保存されたwifiネットワーク。

wpa_cliの使用例:

Wi-Fi対応のネットワークインターフェイスが既にあることを確認します。

# 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

シェルから、IPおよびネット設定のDHCPを要求します。

# dhclient -r
# dhclient wlan0
8
David

カードが実行されていない場合、最初にカードを埋めます:

ifconfig wlan0 up

ネットワークに合わせてパラメーターを設定します

iwlist wlan0 scan
iwconfig wlan0 essid NETWORK_ID key WIRELESS_KEY
3
LnxSlck

VSWM-Very Simple Wireless Managerを使用できます。既知のAPを単純な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

内部では、標準のコマンドラインツールであるiwlist、wpa_supplicant、iwconfig、dhclient ...を使用します。ジョブのみを自動化します。

2
Diogo Melo

Wpa_supplicantを示唆するすべての答えは間違っています。はい、それはWPAネットワークに接続するかもしれませんが、それは維持するのが非常に難しく、有線接続でうまく動作しないので、長期的には悪い解決策です。 この回答 を読んで、コマンドラインからNetwork Managerを使用して生活を楽にしてください。私はwpa_supplicantを構成しようとして何時間も無駄にした後、nmcliを試してみたところ、「機能しました」。

2
Cerin

checkboxパッケージがインストールされている場合、実際にはNetworkManagerを使用してそれを行う方法があります。

Sudo /usr/share/checkbox/create_connection SSID --security=wpa -key=WPA-KEY

(クレジット: bug 923836 、このトピックに関する私の検索で出てきました。)

2
zigg

wpa_supplicantを直接使用してワイヤレスネットワークに接続するのに問題がありました。 wpa_supplicant.confコマンドラインでwpa_supplicantファイルを使用すると、ネットワークIDとパスワードでエラーが生成されました。

Sudo wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -B

私はwpa_cliでそれを回避することができました。 Linux ndiswrapperでWindowsドライバーを使用しているため、使用しなければならなかったコマンドシーケンスは次のとおりです。

Sudo modprobe ndiswrapper
Sudo iwconfig wlan0 essid "<My Network ID>" mode managed
Sudo wpa_cli identity "<My Network ID>" password "<My password>"

GUIのネットワークのワイヤレスセクションに追加してネットワークをセットアップしたため、有線またはワイヤレスネットワークアイコンをクリックして、ワイヤレスプロバイダーを選択できました(ログインを完了するために必要な場合がありました)。

1
John

nmcliは、Ubuntuのデフォルトのネットワークマネージャーアプリのコマンドラインバージョンです。

いくつかの利点は、グラフィカルインターフェイスから既に持っている構成を使用し、ルートアクセスを必要としないことです。

nmcliを実行して、使用可能なオプションを表示できます。

MYESSIDという名前のwifiに接続する例:

    nmcli c up MYESSID   
1
desgua