Ubuntu 14.04 LTSの古いnmcliでステルスSSIDの無線APに接続する
Ubuntu 14.04 LTSなマシンで無線LAN接続するのに苦労したのでメモ。自分はタコなので(最近はあんまりタコって言わなくなった気がする…)、間違いとかあると思う。
試した環境
- Ubuntu 14.04 LTS
- NetworkManager 0.9.8.8
- nmcli 0.9.8.8
最近のnmcliではコマンドの書式が違うので使えない。というか、調べても最近のnmcliの事しか見つからなかったので、あえて古い情報を書くに至ったというわけ。
ステルスモードのアクセスポイントに接続
古いnmcliは見えているアクセスポイント、つまり非ステルスなSSIDにしか繋ぎにいかない仕様?バグ?らしく、普通にステルスなSSIDを指定しても「Error: No network with SSID 'STEALTH_AP' found.」と直ぐ様エラーを返してきやがる。
なので、先にiwlistでステルスSSIDを指定した上でAPのスキャンを行い、ステルスSSIDを可視化してやる。(ステルス機能とはAPが自ら名前を名乗らないというだけで、正しい名前を読んであげれば応答するのである。)
# iwlist wlan0 scanning essid STEALTH_AP # nmcli device wifi connect STEALTH_AP password PASSWORD
認識されているSSIDは nmcli device wifi で確認できる。
$ nmcli device wifi SSID BSSID MODE FREQ RATE SIGNAL SECURITY ACTIVE 'DIRECT-PE-BRAVIA' 4A:E2:44:xx:xx:xx Infrastructure 2437 MHz 54 MB/s 90 WPA2 no 'STEALTH_AP' CC:E1:D5:yy:yy:yy Infrastructure 2447 MHz 54 MB/s 97 WPA2 no 'guest2' DC:FB:02:zz:zz:zz Infrastructure 2462 MHz 54 MB/s 37 WPA WPA2 no
ちなみに、古くないnmcliではhiddenオプションが追加されており、hidden yesとすることでステルスSSIDに直接繋げるようだ。ついでにいうと、NetworkManager自体は昔からhiddenオプションを持ってるので、D-Busで叩いてやればふつーに繋がる……というか、nmcliはNetworkManagerのD-Busラッパーでしかないわけだが、なぜそこの実装をサボったんだよっていう。
古いnmcliのコマンド例集
アクセスポイントに接続
nmcli device wifi connect SSID password PASSWORD
使用する無線LANデバイスを指定してアクセスポイントに接続
nmcli device wifi connect SSID password PASSWORD iface wlan0
接続プロファイルを表示
無線LAN以外も表示されることに注意
nmcli connection list
接続プロファイルで接続
nmcli connection up id プロファイル名
プロファイルは初回接続時に/etc/NetworkManager/sustem-connections/の下に自動で作られる。デフォルトではSSID名になるが、nameオプションで名前指定が可能。
戯言
/-はっきり言ってLinuxはクソだと思う。-/
無線LAN接続するためのコマンドが iwconfig, wpa_cli, nmcli と3つあり、それぞれ出来ることが違ってて、同じコマンドでもバージョンで書式が微妙に違うっていうのは、多様的で自由ソフトウェアのあるべき姿を体現しており、Linuxは大変に素晴らしいものだなぁと思いました。ラブアンドピース!