wlan0 的 forwarding sudo nano /etc/sysctl.conf 把 #net.ipv4.ip_forward=1 改成 net.ipv4.ip_forward=1 新增 iptables 規則 如果你是用 Lite 版沒有 iptables 可以先透過以下指令安裝 sudo apt-get install iptables 然後輸入 sudo iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE sudo sh -c "iptables-save > /etc/iptables.ipv4.nat" 編輯 rc.local 在啟動時自動應用規則 sudo nano…"> wlan0 的 forwarding sudo nano /etc/sysctl.conf 把 #net.ipv4.ip_forward=1 改成 net.ipv4.ip_forward=1 新增 iptables 規則 如果你是用 Lite 版沒有 iptables 可以先透過以下指令安裝 sudo apt-get install iptables 然後輸入 sudo iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE sudo sh -c "iptables-save > /etc/iptables.ipv4.nat" 編輯 rc.local 在啟動時自動應用規則 sudo nano…"> 在 Raspberry Pi Zero 2W 上設定 WiFi AP 作為 WiFi 中繼器 – imuslab
在 Raspberry Pi Zero 2W 上設定 WiFi AP 作為 WiFi 中繼器
Toby
Toby

因為不知道為甚麼網上沒有 Raspberry Pi Zero 2W 以外接 WiFi USB 作為 WiFi 中繼器的教學,所以我就來自己研究出一個方法囉

材料

  • Raspberry Pi Zero 2W
  • Raspberry Pi OS
  • 用作 wlan1 的 USB WiFi 模組

安裝所需 Package

sudo apt-get update
sudo apt-get upgrade

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

sudo systemctl stop hostapd
sudo systemctl stop dnsmasq

設定網絡界面卡

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf

寫入以下內容

interface=wlan1
  dhcp-range=192.168.0.11,192.168.0.30,255.255.255.0,24h

固定 wlan1 的 IP 地址

sudo nano /etc/network/interfaces

把 source /etc/network/interfaces.d/* 加上 comment:

#source /etc/network/interfaces.d/*

寫入以下內容

auto lo
iface lo inet loopback
auto wlan0
iface wlan0 inet dhcp

allow-hotplug wlan1
iface wlan1 inet static
address 192.168.0.10
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.254

設定 Hostapd

sudo nano /etc/hostapd/hostapd.conf

寫入以下內容(記得更新 WiFi 名稱與密碼)

interface=wlan1
hw_mode=g
channel=7
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
ssid=[WiFi SSID 名稱]
wpa_passphrase=[WIFI 密碼]

之後編輯預設設定

sudo nano /etc/default/hostapd

把原本的 #DAEMON_CONF=”” 改成

DAEMON_CONF="/etc/hostapd/hostapd.conf"

設定 wlan1 -> wlan0 的 forwarding

sudo nano /etc/sysctl.conf

#net.ipv4.ip_forward=1

改成

net.ipv4.ip_forward=1

新增 iptables 規則

如果你是用 Lite 版沒有 iptables 可以先透過以下指令安裝

sudo apt-get install iptables

然後輸入

sudo iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

編輯 rc.local 在啟動時自動應用規則

sudo nano /etc/rc.local 

加入

iptables-restore < /etc/iptables.ipv4.nat

Unmask 與 重新啟動 hostapd 及 dnsmasq

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

sudo systemctl unmask dnsmasq
sudo systemctl enable dnsmasq
sudo systemctl start dnsmasq

重新啟動

sudo reboot