RPIのWiFi自動切り替え
2017年2月13日 - 未分類
RaspberryPiで、WiFiの切り替えが手間です。
を使えば、設定してあるWiFiが見つからない場合に、自動的にhostapdで、ホットスポットになってくれるので便利です。デフォルトでは、homeのWiFiと外出時に、自動的にホットスポットになってくれるだけです。複数のWiFiルーターに自動接続するには、さらに設定が必要です。
/etc/network/interfacesを編集して、赤文字の部分を導入すれば、home, office, laborの3ヶ所でWiFiルーターに自動的に接続できます。もちろん、officeやlaboのWiFiのSSIDやパスワードは、/etc/wpa_supplicant/wpa_supplicant.conf に登録されている必要があります。
map YOUR_ESSID3,labo の部分だけではつながりませんので、ご注意ください。
RPi3_Switchable_HOTSPOT/interfaces
source-directory /etc/network/interfaces.d auto lo iface lo inet loopback iface eth0 inet manual allow-hotplug wlan0 mapping wlan0 script /usr/local/bin/apscan.sh map YOUR_ESSID1,home map YOUR_ESSID2,office map YOUR_ESSID3,labo
allow-hotplug wlan1
iface wlan1 inet manual
pre-up wpa_supplicant -B -i"$IFACE" -c/etc/wpa_supplicant/wpa_supplicant.conf
post-down wpa_cli -i $IFACE terminate
iface home inet manual
pre-up wpa_supplicant -B -i"$IFACE" -c/etc/wpa_supplicant/wpa_supplicant.conf
post-down wpa_cli -i"$IFACE" terminate
iface office inet manual
pre-up wpa_supplicant -B -i"$IFACE" -c/etc/wpa_supplicant/wpa_supplicant.conf
post-down wpa_cli -i"$IFACE" terminate
iface labo inet manual
pre-up wpa_supplicant -B -i"$IFACE" -c/etc/wpa_supplicant/wpa_supplicant.conf
post-down wpa_cli -i"$IFACE" terminate
# Hotspot settings wlan0 and eth0 iface hotspot0 inet static address 192.168.42.1 netmask 255.255.255.0 post-up ifup nat0 post-up ifup services0 pre-down ifdown services0 pre-down ifdown nat0 # Nat eth0 iface nat0 inet manual up sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward' up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE up iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT up iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT down iptables -D FORWARD -i wlan0 -o eth0 -j ACCEPT down iptables -D FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT down iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE down sh -c 'echo 0 > /proc/sys/net/ipv4/ip_forward' # Hotspot services iface services0 inet manual up service hostapd start /etc/hostapd/hostapd.conf up service udhcpd start down service udhcpd stop down service hostapd stop