Raspberry Pi 4を使ってWi-Fiスポットを作成する方法

目次

はじめに

Raspberry Pi 4は多機能で手頃な価格のシングルボードコンピュータです。本記事では、Raspberry Pi 4をWi-Fiスポットに変換する方法を解説します。家庭内のLAN環境改善に利用したり、ハニーポットとして活用したり、センサを接続して家庭内のマシンに繋ぐために構築するなど、さまざまな用途で活用することができます。手順に従って設定を行い、自分だけのWi-Fiスポットを作成しましょう。

Locationの設定

hostapdを使って設定するのですが、Raspberry pi4として必要な手続きがあります。

RaspbianをGUIで繋いでいる場合、Settingから設定できると思いますよね? 私も思っていたのですが、どうにもJPがなさそうです。

仕方ないのでTerminalから設定していきましょう。

sudo raspi-config

5.SetLocationを選択します。 各設定を進めていきましょう。

L1 Locale

この設定は不要なのですが、一応やっておきましょう。

Jp__JP.UTF-8を選択してEnterを押します。

Default Localeとして、jp_JP.UTF-8を選択しましょう。

L4 WLAN Country

JP Japanを選びます。

一通りの設定が完了したら再起動します。

Wi-Fi化定番ソフトのインストール

sudo apt-get update
sudo apt-get install hostapd dnsmasq

Wi-Fiスポットの設定

dhcpの設定

先ずはdhcpdの設定から行います。 Wi-Fiに接続されたときに、IPアドレスの割り当てるDHCPサーバを構築するのがここでの手順です。

この手の設定ファイルを弄るのは怖いので、バックアップ取ります。

sudo cp  /etc/dhcpcd.conf /etc/dhcpcd.conf.back

設定ファイルを開いて次の文言を末尾に追加します。

sudo vim  /etc/dhcpcd.conf

デフォルトでコメントアウトされているものを有効にしていく作業がメインとなります。

interface wlan0
static ip_address=172.24.1.1/24
static routers=172.24.1.1
static domain_name_servers=172.24.1.1
static broadcast 172.24.1.255

もし上の記載がない場合は、同様に埋め込んでください。 デフォルトでコメントアウトされているものを有効にしていく作業がメインとなります。

追加するのは上記だけで良いのですが、全文載せます。

# A sample configuration for dhcpcd.
# See dhcpcd.conf(5) for details.

# Allow users of this group to interact with dhcpcd via the control socket.
#controlgroup wheel

# Inform the DHCP server of our hostname for DDNS.
hostname

# Use the hardware address of the interface for the Client ID.
clientid
# or
# Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361.
# Some non-RFC compliant DHCP servers do not reply with this set.
# In this case, comment out duid and enable clientid above.
#duid

# Persist interface configuration when dhcpcd exits.
persistent

# Rapid commit support.
# Safe to enable by default because it requires the equivalent option set
# on the server to actually work.
option rapid_commit

# A list of options to request from the DHCP server.
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
# Respect the network MTU. This is applied to DHCP routes.
option interface_mtu

# Most distributions have NTP support.
#option ntp_servers

# A ServerID is required by RFC2131.
require dhcp_server_identifier

# Generate SLAAC address using the Hardware Address of the interface
#slaac hwaddr
# OR generate Stable Private IPv6 Addresses based from the DUID
slaac private

# Example static IP configuration:
# static ip_address=192.168.0.10/24
# static ip6_address=fd51:42f8:caae:d92e::ff/64
# static routers=192.168.0.1
# static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1

# It is possible to fall back to a static IP if DHCP fails:
# define static profile
#profile static_eth0
#static ip_address=192.168.1.23/24
#static routers=192.168.1.1
#static domain_name_servers=192.168.1.1

# fallback to static profile on eth0
#interface eth0
#fallback static_eth0

interface wlan0
static ip_address=172.24.1.1/24
static routers=172.24.1.1
static domain_name_servers=172.24.1.1
static broadcast 172.24.1.255

dnsmasq設定

接続された機器に払い出すIPアドレスのレンジを決定します。 dnsmasqを設定すると言いでしょう。 interfaceにはhostapdで設定したinterfaceを使いましょう。

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo vim /etc/dnsmasq.conf
interface=wlan0
dhcp-range=172.24.1.10,172.24.1.100,255.255.255.0,24h

hostapd設定

Wi-Fiスポット化を実施しましょう。

sudo touch /etc/hostapd/hostapd.conf
driver=nl80211
interface=wlan0
country_code=JP
hw_mode=a
ieee80211d=1
ieee80211n=1
ieee80211ac=1
wmm_enabled=1
vht_oper_chwidth=0
channel=36
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_pairwise=TKIP
ssid=Pi4-AP
wpa_passphrase=raspberry

参考までに設定項目の中身を記載します。

設定項目 設定内容
hw_mode g=2.4GHz, a=:5GHz
auth_algs 0=無し,1=WPA,2=WEP,3=両方
interface 使用するnetwork interface
wmm_enabled WiFi Multimedia設定 0=無効,1=有効 *1
ssid Wi-Fi名称
wpa_passphrase パスワード
rsn_pairwise/wpa_pairwise TKIP,CCMP, TKIP CCMP

*1 WiFi Multimediaを有効にするかどうか無線QoS機能を有効にします。 動画などのストリーミング配信を行うときには、他の通信よりも優先的に処理をするようになります。

主要な設定といったらこの当たりですかね。

起動時読み込み設定ファイル設定

sudo vim /etc/default/hostapd
# Defaults for hostapd initscript
#
# WARNING: The DAEMON_CONF setting has been deprecated and will be removed
#          in future package releases.
#
# See /usr/share/doc/hostapd/README.Debian for information about alternative
# methods of managing hostapd.
#
# Uncomment and set DAEMON_CONF to the absolute path of a hostapd configuration
# file and hostapd will be started during system boot. An example configuration
# file can be found at /usr/share/doc/hostapd/examples/hostapd.conf.gz
#
DAEMON_CONF="/etc/hostapd/hostapd.conf"

hostapdが起動時に呼び出される設定ファイルを設定します。

 エラー対応: Failed to start hostapd.service: Unit hostapd.service is masked.

こんなエラーが出たら一度unmaskして再度実行すると良いです。 systemctlにはサービス自体を起動出来なくするMask機能が備わっています。 実行不可能という方が正しいかもしれないですね。

unmaskとしたらこのサービスのシンボルリンクが呼べなくして実行不可状態を作り出しているようです。

sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl start hostapd

実行結果

sudo reboot

再起動したら、Wi-Fiスポットとして検出できるようになっているはずです。

スマホからWi-Fi検索して、設定したパスワードを入力して接続してみましょう。

まとめ

この記事では、Raspberry Pi 4を使用してWi-Fiスポットを作成する方法について説明しました。手順に従って、Locationの設定、Wi-Fi化定番ソフトのインストール、Wi-Fiスポットの設定(dhcpの設定、dnsmasq設定、hostapd設定)を行いました。最後に、Wi-Fiスポットが正常に動作することを確認しました。

Raspberry PiをWi-Fiスポットとして使用することで、家庭内のLAN環境改善やハニーポットとして利用したり、センサを接続して家庭内のマシンに繋ぐことができます。また、無線LANルータが壊れた際の代替手段としても活用できます。今回の設定方法を参考に、Raspberry PiをWi-Fiスポットとして活用してみてください。

Related Post

> Raspberry Pi 4を使ってWi-Fiスポットを作成する方法
OpenCV4でGstreamerからの入力を受け取り表示する方法
> Raspberry Pi 4を使ってWi-Fiスポットを作成する方法
Raspberry Pi 4とCamera Moduleでエラー対処法
> Raspberry Pi 4を使ってWi-Fiスポットを作成する方法
Raspberry Pi OS再インストール後のSSH接続エラーの対処法
> Raspberry Pi 4を使ってWi-Fiスポットを作成する方法
Raspberry piにGoとgocv(OpenCV 4)環境をインストールする
> Raspberry Pi 4を使ってWi-Fiスポットを作成する方法
Raspberry PiとGStreamerを使ってWebカメラ映像を配信する方法
> Raspberry Pi 4を使ってWi-Fiスポットを作成する方法
Raspberry Piのセットアップ記録と使い方のまとめ

おすすめの商品

>