RPIのWiFi自動切り替え

2017年2月13日 - 未分類

RaspberryPiで、WiFiの切り替えが手間です。

RPi3_Switchable_HOTSPOT

を使えば、設定してある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
Translate »