使用 USB 调制解调器连接在 Raspberry Pi 4 (Raspbian Bookworm) 上创建 WiFi 热点的问题

使用 USB 调制解调器连接在 Raspberry Pi 4 (Raspbian Bookworm) 上创建 WiFi 热点的问题

我在尝试在运行 Raspbian Bookworm 的 Raspberry Pi 4 上设置 WiFi 热点时遇到困难。以下是我已采取的步骤:

  1. 在安装过程中刷新了操作系统映像并配置了 WiFi。
  2. 连接 USB 调制解调器并激活它,它显示为 eth1。
  3. 尝试使用提供的脚本将此连接共享为 WiFi 热点。

但是,我面临两个主要问题:

  • WiFi 网络有时不显示。
  • 当出现这种情况时,客户端将由于“IP 配置错误”而无法连接。

我执行了以下脚本来启动 wifi 热点。

## Share WiFi
wifissid=qwerqwer
wificode=qwertyuio
# Disconnect from current Wi-Fi network
sudo ifconfig wlan0 down

# Stop NetworkManager and configure so it doesn't start on reboot
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager

# Disconnect from current Wi-Fi network again, just in case
sudo ifconfig wlan0 down

# Stop services if already running
sudo systemctl stop hostapd
sudo systemctl stop dnsmasq

# Unmask hostapd
sudo systemctl unmask hostapd

# Configure a static IP for the WiFi interface (adjust interface and IP accordingly)
sudo bash -c 'echo "interface wlan0" >> /etc/dhcpcd.conf'
sudo bash -c 'echo "static ip_address=192.168.4.1/24" >> /etc/dhcpcd.conf'

# Configure hostapd
sudo bash -c "cat > /etc/hostapd/hostapd.conf <<EOF
interface=wlan0
driver=nl80211
ssid=$wifissid
hw_mode=g
channel=7
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=$wificode
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
EOF"

# Update hostapd configuration
sudo bash -c 'echo "DAEMON_CONF=\"/etc/hostapd/hostapd.conf\"" >> /etc/default/hostapd'

# Configure dnsmasq
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo bash -c 'echo "interface=wlan0" > /etc/dnsmasq.conf'
sudo bash -c 'echo "dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h" >> /etc/dnsmasq.conf'

# Enable IP forwarding
sudo sysctl net.ipv4.ip_forward=1
sudo bash -c 'echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf'

# Enable NAT
sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
sudo sh -c 'iptables-save > /etc/iptables.ipv4.nat'

# Create the directory if it doesn't exist
sudo mkdir -p /lib/dhcpcd/dhcpcd-hooks

# Restore iptables on boot
sudo bash -c 'echo "iptables-restore < /etc/iptables.ipv4.nat" >> /lib/dhcpcd/dhcpcd-hooks/70-ipv4-nat'

# Start services
sudo systemctl start hostapd
sudo systemctl start dnsmasq

我运行上面的脚本,用于nohup防止与本地 wifi ssh 断开连接,以防止其完成。

我尝试重新启动服务,确保hostadbconf写入正确。关于如何解决这个问题有什么想法吗?

hostapd 和 dnsmasq 服务上的日志看起来很好(正在运行)。日志表明与 Wi-Fi 网络的关联成功。但是,dnsmasq 日志中存在多个 DHCP 数据包接收错误,表明 IP 地址分配存在问题。

注意:我也尝试过使用 NetworkManager,但也没有成功。

相关内容