2019-03-06 00:57:49 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
# When wireless client AP mode is enabled, this script handles starting up network services in a specific order and timing to avoid race conditions.
|
|
|
|
# Todo: update /etc/rc.local script with /bin/bash /usr/local/bin/hostapdstart.sh to enable at system startup
|
|
|
|
|
|
|
|
echo "Stopping network services..."
|
|
|
|
systemctl stop hostapd.service
|
|
|
|
systemctl stop dnsmasq.service
|
|
|
|
systemctl stop dhcpcd.service
|
|
|
|
|
|
|
|
echo "Removing uap0 interface..."
|
|
|
|
iw dev uap0 del
|
2019-03-06 09:58:37 +01:00
|
|
|
|
2019-03-06 00:57:49 +01:00
|
|
|
echo "Adding uap0 interface..."
|
|
|
|
iw dev wlan0 interface add uap0 type __ap
|
|
|
|
|
2019-03-06 09:58:37 +01:00
|
|
|
# Add iptables rules (todo: persist to /etc/rc.local as with default rules)
|
2019-03-06 00:57:49 +01:00
|
|
|
echo "IPV4 forwarding: setting..."
|
|
|
|
sysctl net.ipv4.ip_forward=1
|
|
|
|
echo "Editing IP tables..."
|
|
|
|
iptables -t nat -A POSTROUTING -s 192.168.50.0/24 ! -d 192.168.50.0/24 -j MASQUERADE
|
|
|
|
|
2019-03-06 09:58:37 +01:00
|
|
|
# Bring up uap0 interface
|
2019-03-06 00:57:49 +01:00
|
|
|
ifconfig uap0 up
|
|
|
|
|
2019-03-06 09:58:37 +01:00
|
|
|
# Start services, mitigating race conditions
|
2019-03-06 00:57:49 +01:00
|
|
|
echo "Starting hostapd service..."
|
|
|
|
systemctl start hostapd.service
|
|
|
|
sleep 5
|
|
|
|
|
|
|
|
echo "Starting dhcpcd service..."
|
|
|
|
systemctl start dhcpcd.service
|
|
|
|
sleep 5
|
|
|
|
|
|
|
|
echo "Starting dnsmasq service..."
|
|
|
|
systemctl start dnsmasq.service
|
|
|
|
|
|
|
|
echo "hostapdstart DONE"
|
|
|
|
|