====== 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は大変に素晴らしいものだなぁと思いました。ラブアンドピース! ===== 参考サイト ===== * [[https://bbs.archlinux.org/viewtopic.php?id=204074|NetworkManager won't connect to already configured wifi network / Networking, Server, and Protection / Arch Linux Forums]] * [[https://linux.die.net/man/1/nmcli|nmcli(1): tool for controlling NetworkManager - Linux man page]] (古いnmcliのman) * [[http://www.usupi.org/sysad/274.html|Network Managerをコマンドラインで操作する - いますぐ実践! Linuxシステム管理 / Vol.274]]