RaspberryPi で複数 Wifi 環境に個別設定を行う方法
概要
勉強会参加するときに RaspberryPi3 を持ち歩いているのだが、
自宅・外出先で Wifi のプライベートアドレス構成が微妙に異っており、事前に設定しておかないといけなかった。
もし設定を忘れた場合、その場でディスプレイ・マウス・キーボードを借りて設定するという若干手間になっていた。
文献がない
RaspberryPi に固定 IP を設定する方法はかなりの数存在する。
しかし、これが複数 Wifi に設定を適応するとなると途端に記事は少なくなる。
その中でも見つけたのがコレ。
Raspberry Piで複数Wifiで個別の固定IPを指定する方法 – 1ft-seabass.jp.MEMO
設定方法をザックリいってしまえば。
- Wifi の設定は /etc/wpa_supplicant/wpa_supplicant.conf
- ネットワーク設定は /etc/network/interfaces
そして、wpa_supplicant.conf にネットワークごとの識別子(id_str要素)を作成しておき、
それを interfaces で認識して各々設定するというもの。
設定例
/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=GB network={ ssid="SSID-xxxx" psk="pass_phrase" key_mgmt=WPA-PSK id_str="home" } network={ ssid="SSID-yyyy" psk="pass_phrase" key_mgmt=WPA-PSK id_str="out" }
/etc/network/interfaces
auto wlan0 allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp iface home inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 iface out inet static address 192.168.20.30 netmask 255.255.255.0 gateway 192.168.20.1
ネットワーク設定構成が異なる場合(dhcpcd.conf も設定する場合)
RaspberryPi 3 を購入したとき最新の raspbian はネットワークの設定が変わっていた。
- Wifi の設定は /etc/wpa_supplicant/wpa_supplicant.conf
- ネットワーク定義 /etc/network/interfaces
- 個別ネットワーク詳細設定 /etc/dhcpcd.conf
に分かれてしまっており、どうやら dhcpcd.conf は別の仕組みで動くらしい。
個別の設定部分を dhcpcd.conf に書いてみるが動かない・・・。(違う仕組みなので当然なのだが)
しかし、デフォルトの設定構成を変えるような interfaces を変更したくない。
といっても、該当する文献が見つからなかった。・・・ということで、dhcpcd.conf マニュアルを眺めてみたら。
$ man dhcpcd.conf
なんか気になる設定要素発見。
ssid ssid Subsequent options are only parsed for this wireless ssid.
設定したら、あっさりできてしまった。
/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=GB network={ ssid="SSID-xxxx" psk="pass_phrase" key_mgmt=WPA-PSK } network={ ssid="SSID-yyyy" psk="pass_phrase" key_mgmt=WPA-PSK }
/etc/network/interfaces
iface eth0 inet manual allow-hotplug wlan0 iface wlan0 inet manual wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
/etc/dhcpcd.conf
interface wlan0 ssid SSID-xxxx static ip_address=192.168.1.100/24 static routers=192.168.1.1 static domain_name_servers=192.168.1.1 ssid SSID-yyyy static ip_address=192.168.20.30/24 static routers=192.168.20.1 static domain_name_servers=192.168.20.1
どこでも気軽にもっていけるようになった!
普段持ち歩いている無線 Wifi に繋げるようにしておき、
新しい環境でもノート PC と無線 Wifi があれば一度設定すればいつでも使用可能に。
- 無線 Wifi にノート PC と RaspberryPi 接続
- 無線 Wifi のプライベートIP経由で SSH 接続
- 外出先のネットワーク設定を行う(接続優先度は無線 Wifi より低く設定)
- 無線 Wifi 停止・RaspberryPi 再起動
- 動かなかったら無線 Wifi 使って再度 SSH ログインして調査。
仮にネットワーク設定ミスってしまっても、無線 Wifi にはいつでもつなげるのがいいですね。