如果没有激活 eth0,Raspberry Pi iptables 将无法工作

如果没有激活 eth0,Raspberry Pi iptables 将无法工作

我只是在由我的 Raspberry Pi B+ 托管的 AcessPoint 上工作。

当将电缆插入 eth0 适配器时,一切都会正常工作。如果有人连接到我的 AP,他们将被重定向到 Web 服务器,就像强制门户一样。如果他们想访问某个网站,iptables 会将他们重定向到 Web 服务器。

但是,当我启动 Raspberry 时,没有插入电缆,它就不再工作了。重定向已损坏。当我重新插入电缆并重新启动 hostapd 时,它又可以正常工作了。

我不知道为什么。

这是我的 iptable 规则:

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to destination 10.0.0.1:80
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 10.0.0.1:443

它们将在启动时通过脚本添加。

剧本:

#!/bin/bash
sudo ifconfig wlan0 10.0.0.1

sudo echo "options bcmdhd op_mode=2" | sudo tee /etc/modprobe.d/bcmdhd.conf

sudo iptables -t nat -F
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.0.0.1:80
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 10.0.0.1:443

sudo service dnsmasq restart
sudo hostapd /etc/hostapd/hostapd.conf
sudo service hostapd restart

我的hostapd.conf:

interface=wlan0
driver=nl80211
bssid=7c:dd:90:9d:3e:bd
ssid=RaspAP
hw_mode=g
channel=6
beacon_int=100
auth_algs=3
wmm_enabled=1
ignore_broadcast_ssid=0
country_code=DE

感谢帮助!

编辑: 我还没有重启 hostapd。当我重新插入网线时,它立即工作。就像插入网线时 iptables 正在运行一样。

相关内容