RaspberryPiをWifiのアクセスポイントとして使う

2024-01-12

構成と準備

RaspberryPi4 + RaspberryPiOS(64bit) を無線LAN(wifi)のアクセスポイントとして利用するための設定です。Raspi本体は有線LAN経由で別のルータ配下につながっている想定です。通常、ここもNATでインターネットに出ていくので、2重にIP変換がかかってしまうことにはなるのですが、色々と融通が効きやすそうということでこの構成にしています。

まずは必要なパッケージをインストールします。

apt install hostapd dnsmasq ufw
apt remove network-manager

以下、実際に書き換えた設定ファイルを列挙します。SSID,パスワード及びwifi側のIP(ネットワーク)アドレスは環境に応じて適宜読み替えてください。特に、IPが上位のネットワークと重複するとうまくいかなくなると思います。

アクセスポイントとしての設定

/etc/hostapd/hostapd.conf (新規)

ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
interface=wlan0
driver=nl80211
hw_mode=g
country_code=JP
channel=11
ieee80211d=1
wmm_enabled=0
macaddr_acl=0
auth_algs=1
wpa=2
ssid=your-ssid
wpa_passphrase=your-password  # need to be more than 8 letters
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

設定を有効化します。

systemctl unmask hostapd
systemctl enable hostapd

DHCPサーバとしての設定

/etc/network/interface.d/ap (新規)

auto eth0
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet static
  address 192.168.0.1
  netmask 255.255.255.0

/etc/dnsmasq.conf (該当行をコメントアウト)

interface=wlan0
dhcp-range=192.168.0.50,192.168.0.150,255.255.255.0,12h

ルータ(NAT)としての設定

/etc/sysctl.conf (該当行を変更)

net.ipv4.ip_forward=1

/etc/default/ufw (該当行を変更)

DEFAULT_INPUT_POLICY=“ACCEPT"
DEFAULT_FORWARD_POLICY=“ACCEPT"

/etc/ufw/before.rules (先頭または末尾に追加)

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
COMMIT
ufw enable

全ての設定が完了したら、reboot してアクセスポイントに他のデバイスから接続が可能かチェックします。

参考URL