RaspberryPi4 + RaspberryPiOS(64bit) を無線LAN(wifi)のアクセスポイントとして利用するための設定です。Raspi本体は有線LAN経由で別のルータ配下につながっている想定です。通常、ここもNATでインターネットに出ていくので、2重にIP変換がかかってしまうことにはなるのですが、色々と融通が効きやすそうということでこの構成にしています。
まずは必要なパッケージをインストールします。
apt update
apt install hostapd dnsmasq ufw -y
apt remove network-manager
以下、実際に書き換えた設定ファイルを列挙します。SSID,パスワード及びwifi側のIP(ネットワーク)アドレスは環境に応じて適宜読み替えてください。特に、IPが上位のネットワークと重複するとうまくいかなくなると思います。
/etc/hostapd/hostapd.conf (新規) SSIDは任意の文字列に、パスワードは8文字以上に設定してください。
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
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
設定を有効化します。
systemctl unmask hostapd
systemctl enable hostapd
2024.12.07 追記 (Bookwormから?)/etc/network/interfaces
の設定が使えなくなっているようです。ファイルを追加しても読み込まれませんでした。
# this is not available.
auto eth0
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet static
address 192.168.0.1
netmask 255.255.255.0
代わりに systemd-networkd
を利用します。まず以下の2つの設定ファイルを新規作成してください。
/etc/systemd/network/01-eth0.network
[Match]
Name=eth0
[Network]
DHCP=yes
/etc/systemd/network/02-wlan0.network
[Match]
Name=wlan0
[Network]
Address=192.168.0.1/24
その後、デーモンを有効化します。
systemctl enable systemd-networkd
systemctl start systemd-networkd
/etc/dnsmasq.conf (該当行をコメントアウト)
interface=wlan0
dhcp-range=192.168.0.50,192.168.0.150,255.255.255.0,12h
/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
してアクセスポイントに他のデバイスから接続が可能かチェックします。