断捨離

この記事はcoins Advent Calenderの11日目の記事です。

俺が寝るまでが """今日""" だ(遅れてすみません)。

断捨離

皆さんもネットワークマネージャーを使っていて以下のような恨み節を発したことがきっとあるはずです。

なぜ、ネットワークの設定を楽にするためのソフトウェアにここまでSAN値を削られなくてはならないのか。 今年もあと数えるほどしかありません。 来年を気持ち良く迎えるために、邪魔者は断捨離してしまいましょう。

前提環境

この記事では、下記環境を想定しています。

手順

まずは諸悪の根源を削除します。

# pacman -Rcssun networkmanager
# pacman -Rcssun netctl
# pacman -Rcssun wicd
# pacman -Rcssun connman

これで邪魔者はいなくなりました。 ですが、このままだとIPは降ってきませんし、eduroamにも接続できません。 そう、今までネットワークマネージャーが面倒を見ていたDHCPクライアントや wpa_supplicant の設定を行わなくてはならないのです。

まずは認証に必要不可欠なサプリカントである wpa_supplicant をインストールします。

# pacman -S wpa_supplicant

これで認証の必要なネットワークへ接続する基盤はととのいました。 次は認証情報を書きましょう。

/etc/wpa_supplicant/wpa_supplicant-wlp3s0.conf

update_config=1
ctrl_interface=/var/run/wpa_supplicant
network={
        ssid="hoge"
        psk="fuga"
        proto=RSN
        key_mgmt=WPA-PSK
        pairwise=CCMP
        group=CCMP
        priority=5
}
network={
        ssid="eduroam"
        identity="hogera"
        password="fugara"
        proto=RSN
        pairwise=CCMP TKIP
        group=CCMP TKIP
        key_mgmt=WPA-EAP
        eap=PEAP
        phase2="GTC"
        priority=20
}

設定ファイルを書き終えたなら勝利は目前です。 wlp3s0 を引数に dhcpcd を起動しましょう。 wpa_supplicant に関しては dhcpcd がよしなにしてくれます。 /usr/lib/dhcpcd/dhcpcd-hooks/10-wpa_supplicant に圧倒的感謝ですね。

# systemctl start dhcpcd@wlp3s0
# systemctl enable dhcpcd@wlp3s0

これで全てが終わりました。 運が良ければネットワークに接続できます。 快適なネットライフを楽しみましょう。

wpa_supplicantの設定ファイルについて

update_config=1
ctrl_interface=/var/run/wpa_supplicant

これら2行は、 wpa_supplicant のコマンドラインインターフェイスである wpa_cli で設定の変更を可能にするためのものです。 wpa_cli の使い方は各自ググって下さい。 wpa_cli を使って設定するよりかは設定ファイルを書き書きしたほうが幸せになれる気がします。

network={
        ssid="hoge"
        psk="fuga"
        key_mgmt=WPA-PSK
        proto=RSN
        pairwise=CCMP
        group=CCMP
        priority=5
}
network={
        ssid="eduroam"
        identity="hogera"
        password="fugara"
        proto=RSN
        pairwise=CCMP TKIP
        group=CCMP TKIP
        key_mgmt=WPA-EAP
        eap=PEAP
        phase2="GTC"
        priority=20
}

network={} では、各ネットワークの認証情報について記述します。 各プロパティの意味は下記の通りです。