Raspberry Pi 備忘録 AP化編

ルータ機能のある無線LAN(親機)や有線LANを経由してWindows PCからRaspberry Piへ接続する方法は,
で解説しました。
この場合は,ルータからDHCPにより各デバイス(Raspberry PiやPC)にIPが振られて同一ネットワーク内であれば接続できます。

しかしながら,無線LAN(親機)や有線LANの環境下でいつも使えるとは限りません。ネット接続に制約のある環境や屋外などで直接Raspberry Piにつなげたいですよね。そこで,Raspberry PiのオンボードWi-Fiを利用したアクセスポイントによる接続方法を解説します。


必要なソフトウェアのインストール

avahi,hostapd,dnsmasqという3つのソフトウェアを使って実現します。
※avahiは,Raspbianに最初から入っているので,残り2つをインストール&設定

SSHでログインかRaspberry Piにモニタ・キーボード・マウスを接続して,コマンドを入力します。
コマンドやファイルの記述は,コピペして利用してください。

hostapd,dnsmasqのインストール,途中でインストールしますか? と出るので  y と答える
pi@raspberrypi ~ $ sudo apt-get update
pi@raspberrypi ~ $ sudo apt-get -y install hostapd dnsmasq
※hostapdは,アクセスポイントのソフト。
※dnsmasqは,ホスト名とIPアドレスを覚えるDNSサーバのソフト。
 今回は簡易的なDHCPサーバとして使用するのでホスト名など覚えません。 

WIFI側をDHCPクライアントから外す

pi@raspberrypi ~ $ sudo nano /etc/dhcpcd.conf
で開いて下の1行を追記します。 一番下に記述。
denyinterfaces wlan0
今回は,nanoエディタを使用してファイルの編集を行っております。ctrl+oで保存。 ctrl+x で閉じる。

 

WIFI側のIPアドレス設定

オンボードのWifiのIPを固定するために以下のコマンドを実行します。
pi@raspberrypi ~ $ sudo nano /etc/network/interfaces
開いたら, wlan0セクションを下記へ書き換えます。
allow-hotplug wlan0
iface wlan0 inet static
    address 172.24.1.1
    netmask 255.255.255.0
    network 172.24.1.0
    broadcast 172.24.1.255
ctrl+oで保存。 ctrl+x で閉じます。 

hostapdの設定(アクセスポイント設定)

アクセスポイント設定のため,下記の設定ファイルを新規で作ります。
pi@raspberrypi ~ $ sudo nano /etc/hostapd/hostapd.conf
新規ファイルには,下記を書き込みます。 
# This is the name of the WiFi interface we configured above
interface=wlan0

# Use the nl80211 driver with the brcmfmac driver
driver=nl80211

# This is the name of the network
ssid=Pi3-AP

# Use the 2.4GHz band
hw_mode=g

# Use channel 6
channel=6

# Enable 802.11n
ieee80211n=1

# Enable WMM
wmm_enabled=1

# Enable 40MHz channels with 20ns guard interval
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]

# Accept all MAC addresses
macaddr_acl=0

# Use WPA authentication
auth_algs=1

# Require clients to know the network name
ignore_broadcast_ssid=0

# Use WPA2
wpa=2

# Use a pre-shared key
wpa_key_mgmt=WPA-PSK

# The network passphrase
wpa_passphrase=raspberry

# Use AES, instead of TKIP
rsn_pairwise=CCMP
以上を入力し,保存して閉じます。 
SSIDやパスフレーズ(8文字以上)は任意で変更してください。 

この設定ファイルをhostapdに登録するため,下記のコマンドを入力します。
pi@raspberrypi ~ $ sudo nano /etc/default/hostapd
開いたら下記の1行を追記します。
DAEMON_CONF="/etc/hostapd/hostapd.conf"

dnsmasqのDHCPサーバ設定

pi@raspberrypi ~ $ sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
pi@raspberrypi ~ $ sudo nano /etc/dnsmasq.conf
さらに,下記を書き込みます。
interface=wlan0      # Use interface wlan0
listen-address=172.24.1.1 # Explicitly specify the address to listen on  
bind-interfaces      # Bind to the interface to make sure we aren't sending things elsewhere  
server=8.8.8.8       # Forward DNS requests to Google DNS  
domain-needed        # Don't forward short names  
bogus-priv           # Never forward addresses in the non-routed address spaces. 
dhcp-range=172.24.1.50,172.24.1.150,12h # Assign IP addresses between 172.24.1.50 and 172.24.1.150 with a 12 hour lease time
一気にコピペして,保存して閉じます。

172.24.1.50 から 172.24.1.150 までのアドレスをDHCP用として登録しています。 このアドレス範囲でAPに接続したPCなどにIPを振り分けます。
 

ソフトの自動起動の登録

pi@raspberrypi ~ $ sudo service hostapd start
pi@raspberrypi ~ $ sudo service dnsmasq start
pi@raspberrypi ~ $ reboot
再起動後にPCなどのWi-Fiで設定したSSIDが表示されます。キーを入力するとRaspberry PiにAP接続ができます。
下記のサイトを参考に設定しました。
参考にしたHP:http://nw-electric.way-nifty.com/blog/2017/07/raspberry-pi-3w.html

AP接続について

PCなどのWi-Fi設定画面で,hostapdにて設定したSSID「Pi3-AP」が表示されます。
それを選択し,設定したキー「raspberry」を入力します。

Raspberry Piへの接続

Raspberry PiからPCへDHCPによりIPアドレスが振られております。ipconfigなどで確認できます。
IPが取得できる状態でRealVNCやTeraTermを使って接続します。

リモート接続について

リモート接続は,「Raspberry Pi 備忘録 リモート編」の接続と変わりませんが,IPアドレスがAP化に伴い変更されているので解説します。
  • RealVNCによる接続方法
    リモート編では,無線LAN(親機)から振られたRaspberry PiのIPアドレスをRealVNCに入力して接続しましたが,AP化を実施したRaspberry Piの場合は,wlan0で固定したIPアドレス「172.24.1.1」を使って接続します。ようはDNSサーバのIPですね。


    「Continue」を押す


    「ユーザ名」と「パスワード」を入力し,「OK」を押す。


    接続が完了するとRaspberry Piのデスクトップが表示されます

  • TeraTermによる接続
    TeraTermも同様にRaspberry Piのwlan0の固定IPアドレス「172.24.1.1」を入力して接続させます。



    「ユーザ名」と「パスワード」を入力し,「OK」を押す。


    接続が完了するとRaspberry Piのコマンド画面が表示されます

AP化を施したRaspberry Piへのリモート接続では,RealVNCTeraTermでの接続は可能でしたが,Windowsのリモートデスクトップ接続はうまくつながりません。デスクトップ表示ができるRealVNCでの接続が動いていれば十分かもしれませんね。

また,RealVNCは,iOSやAndroidなどのスマホやタブレット端末用のアプリも用意されているのでPCに限らず無線でRaspberry Piとつなぐことができます。

最終更新日:2018/03/22