Ich arbeite gerade an einem AcessPoint, der von meinem Raspberry Pi B + gehostet wird.
Wenn ein Kabel an den eth0-Adapter angeschlossen ist, funktioniert alles einwandfrei. Wenn sich jemand mit meinem AP verbindet, wird er wie ein Captive-Portal auf den Webserver umgeleitet. Wenn sie eine Website besuchen möchten, leiten iptables sie auf den Webserver um.
Aber wenn ich meine Himbeere ohne das eingesteckte Kabel starte, funktioniert es nicht mehr. Die Umleitung ist unterbrochen. Wenn ich es wieder einstecke und hostapd neu starte, funktioniert es wieder.
Ich habe keine Ahnung warum.
Hier sind meine Iptable-Regeln:
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
Sie werden beim Booten mit einem Skript hinzugefügt.
Das Drehbuch:
#!/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
Meine 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
Danke für die Hilfe!
EDIT: Ich muss hostapd nicht neu starten. Wenn ich das Internetkabel wieder einstecke, funktioniert es sofort. Es ist so, als ob iptables nur läuft, wenn das Kabel eingesteckt ist.