Я просто работаю над AcessPoint, размещенным на моем Raspberry Pi B+.
Когда кабель подключен к адаптеру eth0, все работает нормально. Если кто-то подключится к моей точке доступа, он будет перенаправлен на веб-сервер, как портал авторизации. Если они хотят перейти на веб-сайт, iptables перенаправит их на веб-сервер.
Но когда я запускаю свой Raspberry без подключенного кабеля, он больше не работает. Перенаправление сломано. Когда я снова подключаю его и перезапускаю hostapd, он снова работает.
Понятия не имею почему.
Вот мои приемлемые правила:
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 просто работает, когда кабель подключен.