Just nu går mitt långsiktiga projekt under arbetsnamnet ”GeoRover”. Det är en plattform baserad på en RaspberryPi 3 som jag vill använda framför allt till inhämtning.
Nu har jag testat att göra enheten till en accesspunkt där den fasta nätverksanslutningen ansluter med dhcp till valfritt nätverk, och det trådlösa nätet agerar accesspunkt för klienter. Om det finns trådbunden anslutning så vidarebefordras alla anrop dit. Oavsett om det finns en anslutning eller ej så kan man gå till http://192.168.42.1 och få upp startsidan för den inbyggda webbservern.
Installera en wlan access punkt:
sudo apt install hostapd isc-dhcp-server sudo apt-get install iptables-persistent sudo nano /etc/dhcp/dhcpd.conf
Kommentera raderna med domain-name och domain-name-servers
Ta bort kommentaren för #authoritative;
Lägg till följande:
subnet 192.168.42.0 netmask 255.255.255.0 { range 192.168.42.10 192.168.42.50; option broadcast-address 192.168.42.255; option routers 192.168.42.1; default-lease-time 600; max-lease-time 7200; option domain-name "local"; option domain-name-servers 8.8.8.8, 8.8.4.4; }
sudo nano /etc/default/isc-dhcp-server
leta reda på INTERFACES=”” och ändra till ”wlan0”
Sätt upp statisk IP med:
sudo nano /etc/network/interfaces
Kommentera alla konfigurationer av wlan0 och lägg till detta:
iface wlan0 inet static address 192.168.42.1 netmask 255.255.255.0
Kör kommandot:
sudo ifconfig wlan0 192.168.42.1
Konfigurera accesspunkten.
sudo nano /etc/default/hostapd
Ta bort # framför raden med ”DAEMON_CONF=” och skapa sedan den conf fil som finns angiven.
Redigera på motsvarande sätt filen:
sudo nano /etc/init.d/hostapd
Redigera sedan /etc/hostapd/hostapd.conf
interface=wlan0 ssid=GeoRover country_code=SE hw_mode=g channel=6 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=Password wpa_key_mgmt=WPA-PSK wpa_pairwise=CCMP wpa_group_rekey=86400 ieee80211n=1 wme_enabled=1
Fixa till NAT för tjänsten:
sudo nano /etc/sysctl.conf
Lägg till följande längst ned:
net.ipv4.ip_forward=1
Kör sedan
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward" sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
Det kan krävas en omstart innan ”iptables” ovan körs. Om allt fungerar så spara ut allt till en fil. Iptables-persistent som installerades tidigare ser till att konfigurationen läses in efter varje omstart, så jag vet inte om nedanstående kommando egentligen behövs.
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
Se till att allt körs som daemon:
sudo service hostapd start sudo service isc-dhcp-server start
Kontrollera med:
sudo service hostapd status sudo service isc-dhcp-server status
För att starta varje gång datorn startar kör:
sudo update-rc.d hostapd enable sudo update-rc.d isc-dhcp-server enable
Avslutning
Jag kan inte garantera att allt fungerar då jag laborerat lite fram och tillbaka. Bland annat provade jag med dnsmasq i stället som kombinerad dns och dhcp. Detta för att få till en ”Captive Portal” som alltid hänvisade besökare som öppnar en webbläsare till min egen webbserver.
Tills vidare så får det räcka med att man skriver in ”192.168.42.1” i webbläsaren.