ルーターにする
Raspberry pi を無線アクセスポイント/ルータにする。
本当の目的はルーティングではなく、スマホと直接接続したいだけなのだが、せっかくだからルーターにしておく。
そうしないと、スマホからRpiに接続した際に、インターネットに行けなくて、困ると思う。
参考URL karaage.hatenadiary.jp
まずアクセスポイントにする
wlan0 のIPを設定する
/etc/network/interfaces
auto lo iface lo inet loopback auto eth0 allow-hotplug eth0 iface eth0 inet manual auto wlan0 allow-hotplug wlan0 #iface wlan0 inet manual #wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf iface wlan0 inet static address 192.168.0.1 netmask 255.255.255.0 pre-up iptables-restore < /etc/iptables.ipv4.nat
最後の行は、後述するiptablesの設定。
hostapdのインストールと設定
インストール
# apt-get install hostapd # cd /etc/hostapd/ # sudo cp /usr/share/doc/hostapd/examples/hostapd.conf.gz ./ # sudo gzip -d hostapd.conf.gz
起動すると、
nl80211 driver initialization failed.
とか言われちゃうので、コンパイルする。
参考URL Jens Segers - Realtek RTL8188 based access point on Raspberry Pi
# wget https://github.com/jenssegers/RTL8188-hostapd/archive/v2.0.tar.gz # tar -zxvf v2.0.tar.gz # cd RTL8188-hostapd-2.0/hostapd # make # make install
設定する
/etc/hostapd/hostapd.conf
編集
interface=wlan0 ssid=__SSID__ channel=1 #bridge=br0 # WPA and WPA2 configuration macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=1 wpa=3 wpa_passphrase=__PW__ wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP # Hardware configuration driver=rtl871xdrv ieee80211n=1 hw_mode=g device_name=RTL8192CU manufacturer=Realtek
起動
# service hostapd restart
SSID,PW,IP,Netmask,GW,DNSを主導で設定すれば、アクセスできる。
SSH での接続を確認した。
DHCP
DHCPにするために、isc-dhcp-serverのインストールと設定
# apt-get install isc-dhcp-server
/etc/dhcp/dhcpd.conf
編集
authoritative をアンコメントして、アクティブにする。
subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.101 192.168.0.150; option broadcast-address 192.168.0.255; }
などする。
# /etc/init.d/isc-dhcp-server start # service hostapd restart
ルーティングの設定
/etc/sysctl.conf
の設定
net.ipv4.ip_forward=1
iptablesの設定
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
サービスの自動起動
# update-rc.d hostapd defaults # update-rc.d isc-dhcp-server defaults
再起動して、動作チェック!
これで、RPiとスマホだけでも、通信できるように成った。