Raspberry Pi 4 をWiFiアクセスポイントにする方法

アイキャッチ

ラズパイをWiFiのアクセスポイント(SoftAP)にする方法まとめです。
ラズパイを有線LANでネットワークに接続して、ラズパイ内蔵のWiFiモジュール経由で、ノートPCやスマホからインターネットに接続できるようになります。
使用したものは下記の5つ

  • Raspberry Pi 4 Model B/4GB
  • マイクロSDカード
  • LANケーブル
  • 電源
  • WindowsPC(OSインストールとSSH接続用)

SSH接続して操作するので、ディスプレイやマウス・キーボードは使いません。

手順

SSH接続の方法などに関しての説明が必要ない方は、6. 必要なアプリケーションのインストールまで飛ばしてください。
細かい説明なんていらねぇよって方は、下記のスクリプトを実行するだけで、たぶんアクセスポイントが立ち上がると思います。

# 必要なアプリケーションインストール
sudo apt-get update
sudo apt-get install hostapd
sudo apt-get install dnsmasq

# WiFi機能を有効にする
sudo rfkill unblock all
sudo dhclient wlan0

# create_apのダウンロード・インストール
git clone https://github.com/oblique/create_ap
cd create_ap/
sudo make install

# create_apの実行(ssid と passwordの部分は任意に変更)
sudo ./create_ap --no-virt -w 2 wlan0 eth0 ssid password

1. OS(Raspbian)のダウンロード

公式サイトから、OSイメージをダウンロードします。
今回は、Desktopを使用せずSSH接続してCLIのみで操作するので、軽量版 Raspberry Pi OS (32-bit) Lite をダウンロードします。
WindowsPCのように、マウスを使って操作したい方は、Desktop環境が入った Raspberry Pi OS (32-bit) with desktop か、推奨ソフト一式が入った Raspberry Pi OS (32-bit) with desktop and recommended software をダウンロードしましょう。

Raspbianのダウンロード

2. ブートディスクの作成

使用するマイクロSDカードをPCに挿入し、balenaEtcherを使用してダウンロードしたイメージをマイクロSDカードに書き込みます。

balenaEthcherは直感的に操作できるフリーウェアですが、間違ったドライブに書き込んでしまってはことなので、このあたりを参考に操作方法を確認しておきましょう。

3. SSH接続するためのひと手間

初回起動時からSSH接続をするために、イメージを書き込んだマイクロSDカードにひと手間加えます。
書き込みが終了したマイクロSDカードを、PCに差し直し、フォルダとして開きます。
一番上の階層に、 ssh という名前のファイルを作成してください。
空のテキストファイルを作成し、名前をsshに変更するだけで良いです。
これで、初回起動時からSSH接続ができるようになります。

ssh接続

4. ラズパイ起動 + SSH接続

マイクロSDカードを挿入したラズパイに、LANケーブル・電源を接続し、ラズパイを起動します。
1分ほど待ち、WindowsPCから適当なSSHクライアントを使ってログインします。
私はTera Termを使っていますが、Windowsの場合PowerShellからでも接続できます。
PowerShellを開いて、ssh pi@raspberrypi.localと入力してEnterを押してください。
パスワードを求められるので、raspberryと入力して再度Enterを押すと、PCからラズパイにリモートログインできます。
ここで、piはデフォルトで用意されているユーザー名、raspberrypi.localはローカルネットワーク上のラズパイを指し示すホスト名です。
ssh pi@raspberrypi.localraspberrypi.localにユーザーpiでログインすることを示します。

5. セキュリティ対策

このあたりを参考にラズパイのセキュリティ対策を行いましょう。
少なくともデフォルトパスワードraspberryの変更は必ず行ってください。

6. 必要なアプリケーションのインストール

下記のコマンドで、SoftAP構築に必要なアプリケーションをインストールします。

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

7. ネットワーク環境の確認

ifconfigを用いてネットワーク環境を確認します。
下記のように、eth0 と wlan0 が確認できれば問題ありません。
eth0 は有線LANのネットワークインターフェースwlan0はwifiのネットワークインターフェースを示します。

筆者の環境では、wlan0が確認できなかったため、いくつか追加で設定が必要でした。

pi@raspberrypi:~/create_ap $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ...省略...

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        ...省略...

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ...省略...

wlan0が確認できない場合の追加設定

Raspbianがラズパイの無線機能をブロックしてることがあるらしいです。
sudo rfkill list allを実行することで、ブロックされているか確認することができます。
下記のように、Soft blocked: yesとなっていた場合、Soft(OS)によって機能がブロックされています。

pi@raspberrypi:~/create_ap $ sudo rfkill list all
0: phy0: Wireless LAN
        Soft blocked: yes
        Hard blocked: no
1: hci0: Bluetooth
        Soft blocked: no
        Hard blocked: no

この場合、次のコマンドでブロックを解除することができます。

sudo rfkill unblock all
sudo dhclient wlan0

8. create_apのダウンロード・インストール

下記のコマンドで、create_apをgithubからダウンロードしてインストールします。
create_apはSoftAPを簡単に構築できるスクリプトです。

git clone https://github.com/oblique/create_ap
cd create_ap/
sudo make install

9. create_ap実行

下記のコマンドでcreate_apを実行します。

sudo ./create_ap --no-virt -w 2 wlan0 eth0 ssid password

ssidpasswordの部分には、好きなSSIDとパスワードを入力してください。
また、WPA2の暗号化方式を用いることを示すオプション-w 2は必ずつけるようにしてください。これがないと、セキュリティの低いWPAでネットワークが公開されてしまいます。
これで、指定したSSIDとパスワードでWiFiに接続できるようになります。
ネットワークの公開を止める場合は、Ctrl + Cで終了します。

まとめ

ラズパイを使ってWiFiアクセスポイントを作る方法をまとめました。

ラズパイ以下にIoTネットワークを構築するなど、利用方法はたくさんありそうです。

参考

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です