Files
scripts/pixel3a/old/localhotspot4
T

111 lines
2.4 KiB
Bash
Executable File

#!/bin/sh
# Standalone local-only hotspot (hostapd + dnsmasq)
# SSID: vegeta black
# Password: supermarioinreallife
IFACE="wlan1"
SSID="vegeta black"
PSK="supermarioinreallife"
CHANNEL="6"
AP_IP="192.168.43.1"
NET="192.168.43.0/24"
DHCP_RANGE="192.168.43.10,192.168.43.50,12h"
[ "$(id -u)" -ne 0 ] && { echo "Need root"; exit 1; }
echo "[*] Cleaning previous state..."
killall hostapd dnsmasq wpa_supplicant 2>/dev/null
svc wifi disable 2>/dev/null
sleep 2
# Fully reset the interface
ip link set "$IFACE" down 2>/dev/null
ip addr flush dev "$IFACE" 2>/dev/null
ip route flush dev "$IFACE" 2>/dev/null
# Force AP mode
iw dev "$IFACE" set type __ap 2>/dev/null || iw dev "$IFACE" set type ap 2>/dev/null
sleep 1
ip link set "$IFACE" up
sleep 1
# Disable reverse path filter
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/"$IFACE"/rp_filter 2>/dev/null
# hostapd config
cat > /tmp/hostapd-$IFACE.conf <<EOF
interface=$IFACE
driver=nl80211
ssid=$SSID
hw_mode=g
channel=$CHANNEL
ieee80211n=1
wmm_enabled=1
auth_algs=1
wpa=2
wpa_passphrase=$PSK
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
ignore_broadcast_ssid=0
EOF
echo "[*] Starting hostapd..."
hostapd -B /tmp/hostapd-$IFACE.conf
if [ $? -ne 0 ]; then
echo
echo "hostapd failed. Trying one more time after extra reset..."
ip link set "$IFACE" down
sleep 2
iw dev "$IFACE" set type __ap 2>/dev/null
ip link set "$IFACE" up
sleep 2
hostapd -B /tmp/hostapd-$IFACE.conf || {
echo "hostapd still failed."
echo "Run this and paste the output:"
echo " hostapd -d /tmp/hostapd-$IFACE.conf"
exit 1
}
fi
sleep 1
# Assign IP
ip addr add $AP_IP/24 broadcast 192.168.43.255 dev $IFACE
ip link set $IFACE up
ip route add $NET dev $IFACE src $AP_IP 2>/dev/null
# Firewall
iptables -I INPUT -i $IFACE -j ACCEPT
iptables -I OUTPUT -o $IFACE -j ACCEPT
iptables -I FORWARD -i $IFACE -j ACCEPT
iptables -I FORWARD -o $IFACE -j ACCEPT
# DHCP
echo "[*] Starting dnsmasq..."
dnsmasq \
--interface=$IFACE \
--bind-interfaces \
--dhcp-range=$DHCP_RANGE \
--dhcp-option=3,$AP_IP \
--dhcp-option=6,$AP_IP \
--port=0 \
--no-resolv \
--pid-file=/tmp/dnsmasq-$IFACE.pid &
sleep 2
echo
echo "=== Standalone Hotspot Started ==="
echo "SSID : $SSID"
echo "Password : $PSK"
echo "Gateway : $AP_IP"
echo
iw dev $IFACE info 2>/dev/null | head -15
echo
ip -4 addr show $IFACE
echo
echo "Connect your PC and try: ping 192.168.43.1"