Raspberry Pi iptables funktioniert nicht ohne aktives eth0

599
tobyblack

Ich arbeite gerade an einem AcessPoint, der von meinem Raspberry Pi B + gehostet wird.

Wenn ein Kabel am eth0-Adapter angeschlossen ist, funktioniert alles einwandfrei. Wenn sich jemand mit meinem Zugangspunkt verbindet, wird er wie ein Captive-Portal zum Webserver weitergeleitet. Wenn sie zu einer Website gehen möchten, leiten sie diese von iptables zum Webserver um.

Wenn ich meine Himbeere starte, ohne dass das Kabel eingesteckt ist, funktioniert es nicht mehr. Die Weiterleitung ist unterbrochen. Wenn ich hostapd wieder einstecke und 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 Skript:

#!/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 gerade läuft, wenn das Kabel angeschlossen ist.

1

0 Antworten auf die Frage