Raspberry Pi als AccessPoint

Als ich mal wieder mit dem Raspberry Pi etwas gemacht hatte und ich einen Sensor über WLAN anbinden wollte, bin ich auf ein Problem gestoßen. Möchte ich an den Raspberry Pi einen Sensor mit WLAN verbinden, benötige ich einen WLAN zusätzlich als Hardware. Der Raspberry Pi besitzt ein WLAN-Modul, warum nicht dies als AccessPoint verwenden und den Router einsparen?

Wie dies eingerichtet wird, zeigen wir euch heute hier:

In diesem Blog verwenden wir einen Raspberry Pi 3 B+ und eine  SD-Karte mit aktuellem Image (Raspbian Stretch Lite - Release date: 2018-10-09)

Um direkt ohne Bildschirm den Raspberry Pi über SSH konfigurieren können eine Datei mit dem Namen "ssh" auf der Boot Partition ablegen. Dies wird im Raspberry Pi eBook ausführlich erklärt, hier nur als kurzer Hinweis.

Als nächstes loggen wir uns auf den Raspberry Pi ein und machen ein vollständies Update:

sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade && sudo apt-get autoremove && sudo apt-get autoclean

Nachdem unser Raspberry Pi nun aktuell ist, konfigurieren wir die WLAN-Netzwerkschnittstelle mit einer festen IP.

sudo nano /etc/network/interfaces

In die Datei schreiben wir nun folgendes:

# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

# localhost
auto lo
iface lo inet loopback
# ethernet
auto eth0
iface eth0 inet dhcp
# WLAN-interface
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.222.1
netmask 255.255.255.0

Diese Konfiguration bewirkt, dass der Raspberry Pi nun die IP-Adresse 192.168.222.1 auf der WLAN-Schnittstelle fest bekommt und bei der LAN-Schnittstelle nach wie vor eine IP-Adresse dynamisch zugewiesen bekommt.

Da wir den Raspberry Pi nun als "Server" verwenden möchten, müssen wir den DHCP-Client auf der WLAN-Schnittstelle deaktivieren.

sudo nano /etc/dhcpcd.conf

Ganz am Ende der Datei ergänzen wir folgende Zeile:

denyinterfaces wlan0

Anschließend rebooten wir den Raspberry Pi mit:

sudo reboot

Nach dem Neustart installieren wir einen DHCP- und DNS-Server und konfigurieren diesen:

sudo apt-get install dnsmasq

Wenn man möchte kann man die alte konfiguration sichern:
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf_alt


sudo nano /etc/dnsmasq.conf

Folgende konfiguration kommt nun in die Datei:

interface=wlan0
no-dhcp-interface=eth0
dhcp-range=192.168.222.10,192.168.222.200,12h
dhcp-option=option:dns-server,192.168.222.1

Mit dieser Konfiguration stellt der Raspberry nun einen DNS-Server auf der 192.168.222.1 zur Verfügung und der DHCP-Server vergibt die IP-Adressen von 192.168.222.10 - 200. Auf der LAN-Netzwerkschnittstelle ist der DHCP-Server nicht aktiv.

Wenn Ihr die Werte verändert habt und/oder testen wollt, ob die Konfiguration richtig übernommen wurde, könnt Ihr dies mit diesem Befehl testen:

dnsmasq --test -C /etc/dnsmasq.conf

als Antwort sollte "dnsmasq: syntax check OK." erscheinen.

Nun legen wir noch einen Autostart an, damit in Zukunft alles automatisch bei einem Neustart anläuft:

sudo systemctl enable dnsmasq

Anschließend rebooten wir den Raspberry Pi wieder mit:

sudo reboot

 

Als letzten Schritt aktivieren und installieren wir einen AccessPoint:

sudo apt-get install hostapd

sudo nano /etc/hostapd/hostapd.conf

Der Konfiguratonsinhalt:

interface=wlan0
ssid=raspberry-wlan
channel=1
hw_mode=g
ieee80211n=1
ieee80211d=1
country_code=DE
wmm_enabled=1

auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_passphrase=az-delivery

 

Mit dieser Konfiguraton erzeugen wir nun ein WLAN Signal auf Kanal 1, mit dem Namen "raspberry-wlan" und dem Passwort "az-delivery".

Wenn das WLAN nun automatisch nach einem Reboot erstellt werden soll, müssen wir das auch wieder in den Autostart aktivieren:

sudo nano /etc/default/hostapd

Wir ergänzen folgendem Dateiinhalt am ende der Datei:

RUN_DAEMON=yes
DAEMON_CONF="/etc/hostapd/hostapd.conf"

Und anschließend im System aktivieren:

sudo systemctl start hostapd

sudo systemctl enable hostapd

Nun können wir den Raspberry neustarten und jederzeit mit diesem Befehl den Status abrufen:

sudo systemctl status hostapd

Nun sehen wir in unserer WLAN-Übersicht ein neues WLAN-Netz und können uns mit diesem Netzwerk verbinden:

Nach der eingabe des Passwortes:

az-delivery

Sind wir auch schon verbunden

Der DHCP-Server auf dem Raspberry läuft auch, denn er vergibt eine korrekte IP-Adresse aus dem angegebenen Bereich:

Nun können wir den Raspberry als Router verwenden weitere Projekte erstellen.

Wir wünschen euch viel Spaß und lasst uns wissen, wofür ihr den "Raspberry-Router" einsetzt.

12 Kommentare

DS61

DS61

Es scheint als müsste man bei Verwendung von dnsmasq zusätzlich auch die Datei /etc/resolv.conf anpassen. Hier muss ein DNS Server eingetragen werden, um Anfragen außerhalb des lokalen Netzes beantworten zu können. Also am besten die Adresse des eigentlichen Routers eintragen:

nameserver 127.0.0.1
nameserver 192.168.178.1

Beste Grüße

pit02

pit02

Hat alles geklappt, doch wenn ich den Raspi z.b mit meinem Handy verbinde bekomme ich kein Internet und neben der WLAN Anzeige ein Ausrufezeichen.
Finde den Fehler nicht.
Kann jemand helfen?
Danke im voraus

Rago

Rago

Hallo,
vielen Dank für die Anleitung, es hat geklappt.
An einem verzweifele ich aber…. wenn ich dem wlan einen eigenen namen und ein anderes PW geben will startet der hostapd nicht.

was mache ich falsch ?

Gruss
Rago

sc4ry

sc4ry

Hi,

danke für die Anleitung. Wie bei meinem Vorredner komme ich leider auch nicht ins Internet, woran kann das liegen?

Anschließend würde ich gerne noch Tor nutzen, falls jemand eine funktionierende Anleitung kennt ;-)

Marc

Marc

Vielen Dank für die super Anleitung! Leider haben bei mir die Geräte, welche sich mit dem Wifi verbinden keinen Internet Zugriff? Ist das Absicht?

Nick

Nick

@Ingolf
schreibe nacheinander die Anweisungen
sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl start hostapd
systemctl status hostapd

Ingolf

Ingolf

Genau was ich gesucht habe.
Leider kann ich die letzten Schritte nicht abschließen.
Folgende Fehlermeldung wird ausgegeben:
pi@raspberrypi:~ $ sudo systemctl start hostapd
Failed to start hostapd.service: Unit hostapd.service is masked.
bzw.:
pi@raspberrypi:~ $ sudo systemctl enable hostapd
Synchronizing state of hostapd.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable hostapd
Failed to enable unit: Unit file /etc/systemd/system/hostapd.service is masked.
Ich hoffe ihr könnt mir da weiterhelfen.

Stephan Strittmatter

Stephan Strittmatter

Hier findet sich eine Anleitung, wo auch eine Netzwerkbrücke konfiguriert wird:
https://www.elektronik-kompendium.de/sites/raspberry-pi/2002161.htm

Fritz

Fritz

Hallo,
super, sowas habe ich gesucht.
Eine Frage, kann man auch bestimmten MAC-Adressen die IP vorgeben? Viele Router können das nicht, oder nur sehr begrenzt.
Wenn nun noch Pi-Hole gleichzeitig mit darauf laufen würde, wäre es der absolute Renner.
https://pi-hole.net/

Dankeschön an alle Entwickler.

Martin

Martin

Hi Leute, erst mal danke für die schöne genaue Erklärung und die einzelnen steps.
Ich hatte auch letztens mit diesem Gedanken gespielt, bin aber an ein paar Grenzen gestoßen und zwar: die Reichweite: die Raspis sind nicht für Ihre Sendeleistung bekannt, gibt es da eine Option eventuell ein Meshwlan aufzubauen, wie es Zigbee macht (also auch die Aktoren und Sensoren mit einzubinden ?

2: Könnt ihr das mit der Portweiterleitung noch mal erklären ? Also ich würde gerne schon weiterhin mit dem Handy die Geräte steuern ohne jedes Mal das WLAN zu wechseln. Kann ich einfach eine Portweiterleitung konfigurieren, die meine „Befehle“ ins iot Netz schiebt ? Ich hoffe ich habe mich verständlich ausgedrückt :D manchmal ist es echt blöd zu beschreiben 🙈

Danke schon mal für eure Antwort.

Knuzen

Knuzen

Klasse, auf genau solch einen Vorschlag hab ich wirklich gewartet. Sehr sinnvoll für eine mögliche Überwachungsmöglichleit außerhalb von Netzen, denke ich mir.

Stephan Strittmatter

Stephan Strittmatter

Cool! Genau das wollte ich mal recherchieren und realisieren!

Vielen Dank.

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert