はじめに
こんにちは、INIADに通う倉野です。
Arch Linux をインストールし、黒い画面(ターミナル)に緑の文字が走る様子を眺めながら「きもちぇぇぇぇ!」という全能感に浸っていたのも束の間。
「大学のWi-Fiに繋がらない」 という、あまりにも初歩的な壁に激突しました。
俺たちの味方、nmtui。
彼を使えば楽勝だと思っていたのですが、そこにはEnterprise認証の闇と、思い込みという名の罠が潜んでいました。
今回は、大学やセキュリティが複雑な企業特有の面倒なWi-Fi(WPA2-Enterprise / PEAP)に接続するために、私がこまったとその解決方法(nmcli)を共有します。
環境と目的
- マシン: ASUS Vivobook 15X OLED M1503QA
- OS: Arch Linux(Omarchy)
- 敵: 大学のWi-Fi (IEEE 802.1x / PEAP / MSCHAPv2)
-
使用ツール:
nmtui/nmcli
第1の罠:nmtui は「いい人」止まりだった
まず私は、ターミナルで nmtui を起動しました。
グラフィカルで分かりやすいUI。「Activate a connection」を選んで、大学のSSIDを選択。
nmtui: 「パスワードを入力してください(ニコッ)」
私は何の疑いもなくパスワードを入力しました。しかし……繋がらない。
何度やっても、何度再起動しても繋がらない。
理由は単純でした。大学のWi-Fiは「ユーザー名」と「パスワード」の両方が必要な WPA2-Enterprise 方式。
しかし、nmtui の簡易画面では、「認証方式(PEAPなど)」や「内部認証(MSCHAPv2)」といった詳細設定の項目が出てこないのです。
nmtui 君は、「家庭用のWi-Fiなら任せてよ!」という爽やか青年でしたが、企業の複雑なセキュリティ設定を前にすると、ただニコニコして沈黙するだけの存在でした。
教訓:複雑なWi-Fi設定に nmtui を使ってはいけない。
第2の罠:コピペコマンドと「wlan0」の呪い
「GUI(TUI)がダメなら、CUIで直接叩けばいいじゃない」
私はネットの海を彷徨い、最強の呪文(コマンド)を見つけました。
# ネットで拾った最強の呪文
nmcli con add type wifi ifname wlan0 ... (以下略)
これを叩き込めば終わる。そう信じてエンターキーを叩きました(ッターン!)。
しかし返ってきたのは非情なエラーメッセージ。
Error: Device 'wlan0' not found.
「は? LinuxのWi-Fiといえば wlan0 だろ常識的に考えて、インストールしたときにつかったのwlan0なんやが。」
そう思い込んでいた私の常識は、ip link コマンドによって粉砕されました。
画面に表示されていた私のWi-Fiデバイス名は……
wlp1s0
誰ですか君は。
(systemd-udev)では、ハードウェアの物理的な位置に基づいて名前が決まるため、昔なじみの wlan0 さんはもういないようです。
「山田さん!」と呼んでいるのに、目の前にいるのは「田中さん」だった。 そりゃ返事もしません。
解決策:急がば回れ(2段階設定)
長いコマンドを一発で通そうとすると、オプションの解釈違い(ambiguous error)で怒られることも判明しました。
ここは横着せず、「枠を作ってから魂を入れる」 という2段階方式で攻略します。
1. 現実(デバイス名)を受け入れる
まずは自分のデバイス名を確認します。思い込みは捨ててください。
ip link
# 出力例: wlp1s0 (←人によって違う)
2. 器(プロファイル)を作る
まずはWi-Fiの接続設定の「枠」だけを作ります。
nmcli con add type wifi ifname wlp1s0 #(デバイス名) \
con-name "INIAD-WiFi" \
ssid "INIAD-Wi-Fi"
# INIAD-WiFiは例
# con-nameは任意の名前
※ ifname には手順1で調べた名前を入れます。
3. 魂(認証情報)を注入する
ここが最重要。nmtui では設定できなかった詳細情報を流し込みます。
nmcli con modify "INIAD-WiFi" \
wifi-sec.key-mgmt wpa-eap \
802-1x.eap peap \
802-1x.phase2-auth mschapv2 \
802-1x.identity "xxxxx" \
802-1x.password "ここにパスワード"
※ identity には学籍番号を入れました。人によって違うとおもうので環境にあわせてください。
画面に successfully activated の文字が表示されたとき、私は勝利を確信しました。
まとめ
- nmtui を過信するな: Enterprise認証には無力なことがある。
-
デバイス名を確認しろ:
wlan0だと思ってるのはあなただけかもしれない。 - nmcli は友達: 最初はとっつきにくいが、話せば(コマンドを打てば)分かる奴。
もし大学のWi-Fiに繋がらず、キャンパスの片隅で nmtui を見つめて途方に暮れている人がいたら、そっとこの nmcli コマンドを渡してあげてください。