Raspberry Pi – Wifi repeater im Eigenbau
Als alter Technik Freak darf bei mir natürlich ein Raspberry Pi nicht fehlen. Nur was soll man damit machen? Erster Gedanke: Mediacenter. Naja. Läuft. Könnte besser sein, richtig freude kommt dabei allerdings nicht auf. Dann hab ich mich an die letzte Grillparty erinnert. Im Garten. Ohne WLAN. Weil das Signal zu schwach war. Also 2 WLAN sticks gekauft und mal geschaut ob man nicht nen Repeater draus basteln kann. Fazit: Es hat funktioniert!
Mein Setup:
- Raspberry Pi B (512 MB SDRAM) mit “2012-12-16-wheezy-raspbian“
- 4GB SanDisk Klasse 6 SD Karte
- iPad 3 Ladegerät für die Stromversorgung
- 2x LogiLink W-LAN USB Sticks mit Ralink RT5370 chipsatz. (LogiLink WL0084B)
Hinweis:
Ich habe mich dafür entschieden wlan0 als Accesspoint (AP) zu verwenden, damit der Raspi auch ohne zweiten WLAN Stick im AP Modus bootet und ich mich per SSH verbinden kann. Wer das nicht möchte, muss einfach wlan0 und wlan1 in dieser Anleitung tauschen.
Schritt 1 (Accespoint einrichten)
hostapd und dnsmasq installieren, damit der Pi als AP und DHCP Server verwendet werden kann.
1 |
sudo apt-get install hostapd dnsmasq |
Danach den WLAN Stick auf eine statische IP setzen, damit hostapd richtig funktioniert und einen AP erstellen kann.
dazu in die datei /etc/network/interfaces das hier eintragen
1 2 3 4 5 6 7 |
## /etc/network/interfaces for wlan0 device # Setup the device with an static IP iface wlan0 inet static # Static IP-Address address 10.0.0.1 # Networkmask netmask 255.255.255.0 |
Jetzt muss hostapd konfiguriert werden. Natürlich muss es dazu wissen wo die Konfig Datei liegt, also /etc/default/hostapd öffnen und editieren
1 |
DAEMON_CONF="/etc/hostapd/hostapd.conf" |
Nun die eben eingetragene Datei anpassen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# Content of /etc/hostapd/hostapd.conf # 1. The Device which will act as AP interface=wlan0 driver=nl80211 # 2. Parameters so that the daemon runs ctrl_interface=/var/run/hostapd ctrl_interface_group=0 # 3. The Wifi configuration ssid=Raspi channel=6 hw_mode=g ieee80211n=1 # 4. Security of the Wifi connection wpa=2 wpa_passphrase=VERYSECRET wpa_key_mgmt=WPA-PSK wpa_pairwise=CCMP rsn_pairwise=CCMP # 5. Other settings beacon_int=100 auth_algs=3 wmm_enabled=1 |
Dann muss dnsmasq angepasst werden, damit der Pi auch IP Adressen vergeben kann wenn man sich einloggt. Dazu in der datei /etc/dnsmasq.conf
1 2 |
interface=wlan0 dhcp-range=10.0.0.2,10.0.0.20,255.255.255.0,12h |
Nun lauscht dnsmasq auf dem Interface wlan0 und gibt jedem Gerät dass sich verbindet eine IP zwischen 10.0.0.2 und 10.0.0.20 für 12 Stunden
Den Pi Neustarten und mit den Einstellungen von oben zum neuen AP-WLAN (Raspi) verbinden. Klappt. Yeah.
Schritt 2 (Verbinden zu einem Netzwerk):
Eigentlich sollte wpa_supplicant bereits installiert sein, wenn es das aus irgend einem Grund nicht ist
1 |
sudo apt-get install wpa_supplicant |
Wir brauchen als erstes wieder eine Konfig Datei damit supplicant weis wie es sich zum AP/Router mit der Internet verbindung verbinden soll.
Dazu habe ich die datei /etc/wpa.conf erstellt.
1 2 3 4 5 |
network={ ssid="myssid" psk="password" priority=0 } |
Ich Möchte mich in dem Fall zu dem WPA2 Netzwerk myssid mit dem Passwort password verbinden. Für andere Einstellungen / Netzwerke ist Google oder das wpa_supplicant.conf manual hilfreich.
Damit nun auch beim booten des Pi eine Verbindung aufgebaut wird muss die Datei /etc/network/interfaces angepasst werden. ACHTUNG! Stellt sicher dass ihr wlan1 benutzen wollt oder ersetzt wlan1 mit eurem Interface Namen. Es darf keine andere Einstellung für das gewählte Interface vorhanden sein.
1 2 3 4 5 6 7 |
## Additional lines in /etc/network/interfaces for wlan1 device # Start the device at system startup auto wlan1 # Configure the device via dhcp iface wlan1 inet dhcp # Use the given file for connecting to the internet wpa-conf /etc/wpa.conf |
Neustart und der Pi hat eine Verbindung zum Internet.
Schritt 3 (Signal von wlan1 zu wlan0 weiterleiten):
Der Pi hat nun eine Internetverbindung und fungiert als AP. Nun muss noch das Signal der Internetverbindung an die mit dem Pi verbundenen Geräte weitergegeben werden.
Dazu als erstes in der Datei /etc/sysctl.conf in der folgende Zeile das # entfernen (sollte zeile 28 sein)
1 |
#net.ipv4.ip_forward=1 |
im anschluss muss die sysctl.conf neu eingelesen werden
1 |
sysctl -p |
um die Pakete von wlan1 an wlan0 und umgekehrt weiterzuleiten, iptables installieren
1 |
sudo apt-get install iptables |
damit das ganze auch automatisch beim booten passieren kann hab ich die datei /etc/network/if-up.d/router.sh erstellt und ausführbar gemacht (chmod +x)
1 2 |
iptables --table nat --append POSTROUTING --out-interface wlan1 -j MASQUERADE iptables --append FORWARD --in-interface wlan0 -j ACCEPT |
Als letztes muss dnsmasq noch den Geräten mitteilen dass es selbst das Gateway zum Internet ist, dazu in der Datei /etc/dnsmasq.conf noch folgendes eintragen
1 |
dhcp-option=3,10.0.0.1 |
Neustart und der Pi sollte sich zum Router verbinden und die Internetverbindung an alle mit dem Pi verbundenen Geräte weitergeben.
PS:
Es kann unter Umständen sein, dass der Pi beim booten nicht immer sauber in den AP modus wechselt und/oder das durchschleifen der Pakete von wlan0 < > wlan1 nicht funktioniert, dann sollten die iptalbes befehle in die rc.locale datei geschrieben werden, so dass sie zwingend bei jedem Start ausgeführt werden.
-
Super Anleitung. Ein paar Anmerkungen hätte ich noch.
In Schritt drei hast du dich bei der Config datei vertan.
Die heißt “/etc/sysctl.conf”
Und in der letzten Anweisung sollte meiner Meinung nach “dhcp-option=3,10.0.0.1″ stehen
-
Erst einmal danke für die tolle Erklärung.
Zwei fragen habe ich trotzdem noch.
Die 2 WLAN-Dongles müssen beide auch an die raspberry Pi angeschlossen werden (wlan0 und wlan1), richtig?
Wie verbinde ich mich denn dann mit meinem Laptop an die raspberry Pi? Erscheint dann da irgendwo ein zusätzliches WLAN-Netz unter den Netzwerken, dass ich dann wählen kann?Vielen Dank
Eddi
-
Hallo Raphael,
wie hoch ist der Geschwindigkeitsverlust durch den Repeater? Bei meinem Netgear Repeater ist er doch schon erheblich. Würde mich mal interessieren was beim Pi so verloren geht.
Gruß
Willem -
Erstmal vielen Dank für die ausführliche Anleitung!
Mit dieser Hilfe konnte ich meinen Raspi einfach zum WLan-Router umbauen.An einer Stelle habe ich aber länger gebraucht, da meiner Ansicht nach die Anleitung dort etwas undeutlich ist und ich davon auch nicht genug verstehe.
Unter Schritt 3 (Signal von wlan1 zu wlan0 weiterleiten) steht,
wie die Datei /etc/sysctl.conf geändert werden muss.
Richtig muss die Zeile so aussehen: (also ohne den Lattenzaun am Anfang)
net.ipv4.ip_forward=1
Der Eintrag muss also wirksam sein. -
Tippfehler ?
Schritt 1 / Zeile 1 :
statt : sudo apt-get install hostapd, dnsmasq
sudo apt-get install hostapd dnsmasq ??Schritt 1 / Zeile 26 :
statt : wmm_enable=1
wmm_enabled=1 ?? -
Hi,
nette Anleitung. Doch irritieren mich die beiden WLAN Sticks. Da fertig gebaute Router/APs das Repeaten über eine Antenne mit meistens einem Chip machen, kapiere ich im Moment noch nicht wirklich wieso ich hier 2 Sticks brauche?!
Würde es nicht auch nur mit einem gehen? Sodass alle Clients im selben Subnetz sind und die IP Adresse müsste über einen zentralen DHCP Server verteilt werden. Gibts dafür eine Lösung auf dem Weg oder bin ich gezwungen fertige Repeater zu kaufen?
Danke.
Gruß
Ted
-
Hi, sehr gute Anleitung! Habe dieser sehr gut folgen können und es funktioniert. Aber: das “Durchreichen” der Verbindung geschieht sehr langsam (max 60 kbit/s), was bremst denn da? Wäre nett, wenn mir jemand helfen könnte
-
Hey,
habe die Idee den RBP als WLAN Accespoint im Auto zu verwenden zusammen mit einer PAL/NTSC Rückfahrkamera oder evtl. direkt mit einem zugehörigen Modul.
Bei der Suche nach Projekten bin ich auf deines hier gestoßen. Meine Frage ist, wielange benötigt der RBP nach Beginn der Stromversorgung zum Booten, Bereitstellen des WLANs (und automatischen Starten bspw. eines Streamingservices zu dem ich mich von meinem Android Smartphone aus verbinden könnte)?Mittels Tasker für Android könnte man sich sobald das WLAN des RBP verfügbar ist automatisch connecten, eine StreamingApp starten und den Stream anzeigen.
Sobald das WLAN aus ist, würde die App gestoppt und das Smartphone in den vorigen Zustand zurückgeführt.Grüße
-
Hallo Raphael,
erstmal danke für die ausführliche Anleitung.
Leider bekomme ich beim Hochfahren immer diese Fehlermeldung:
FAIL Starting advanced IEEE 802.11 management: hostapd failed!
und Wlan funktioniert natürlich nicht.
Weißt eine Lösung?Vielen Dank
Günter -
Schöne Anleitung.
– Ist mit dem Repeater ein (unterbrechungsfreies) WLAN Roaming möglich?
-
Hallo Raphael
Danke für diese interessante Page!
Sorry, die Fragen mögen für Freaks absurd erscheinen – aber ich bin ein Newbie in Sachen Linux:
Wie weiss der RPi, dass die Datei /etc/network/if-up.d/router.sh at Boottime ausgeführt werden muss?
Ebenso für /etc/sysctl.conf. Wird ‘sysctl -p’ automatisch at Boottime gestartet?
Gruss und Dank
-Didi -
hallo zusammen
hat jemand den Repeater schon mit dem LOGILINK WL0150 realisieren können?
http://www.pollin.de/shop/dt/MjUxODgyOTk-/Computer_und_Zubehoer/Netzwerktechnik/Wireless_LAN_Router/WLAN_USB_Stick_LOGILINK_WL0150_300_Mbps_abnehmbare_Antenne.html
Das Teil hat einen RT5372 Chipset-Didix
-
Super Anleitung! Ist es auch möglich das Signal über Wlan einzufangen und über Land weiterzugeben?
-
Hallo,
ich konnte mit Hilfe dieses Blogposts meinen eigenen WLAN-Repeater einrichten. Meine Anleitung (inkl. Quellverweis :)) findet sich unter http://blog.kay-farin.de/2014/04/25/raspberry-pi/tragbar-raspberry-pi-als-wlan-repeater – vielleicht ist dort noch der eine oder andere Tipp enthalten?
Viele Grüße,
Kay -
Hallo,
zunächst einmal: ich habe deine Anleitung noch nicht getesetet, da ich eine, mir wichtige, Frage habe.
Ich hatte schon einmal den Raspi als AP eingerichtet (mit Ethernet- Kabel), allerdings wurde dann der gesamte Traffic über den Raspi geleitet und es war nicht mehr möglich über den “normalen” eigentlichen Router über Wlan ins Internet zu gehen.
Daher ist jetzt meine Frage, ob dies mit deiner Anleitung ähnlich ist, oder ob der Raspi dann auch wie ein gekaufter WiFi Repeater funktioniert und man dennoch über den normalen Router surfen kann.
Vielen Dank =)
MfG Benjamin
-
Hallo Raphael,
meinst Du das Ganze funktioniert auch mit einem AWUS036NHR2 und einem EDIMAX EW-7811UN.
Hintergrund:
Ich werde bald wieder auf Langzeit-Reise gehen (www.panamericana2013.de) – wir hatte dort immer wieder Probleme mit schwachen Wifi Signalen. Nun hab ich mir ein AWUS036NHR2 mit TPLINK Aussenantenne. Das Ding funzt an meinem Mac, aber wäre natürlich saucool, wenn man sich einen eigenen kleinen Wifi-AP im Wohnanhänger schaffen kann :)Würd mich über eine Antwort sehr freuen!
LG,
Jan-
Hallo Jan, ich bin wie du auch immer wieder auf Langzeitreise (Seidenstrasse 2014, Afrika 2016, Australien 2017) und kenne die Probleme.
Ich habe auch einenAWUS036NHV, welcher bisher an Win7 lief. Vor einem Jahr bin ich auf Mac umgestiegen und kann den AWUS seitdem nicht mehr betreiben. Vom WiFi24Shop habe ich für Sierra 10.12.1 einen neuen Treiber bekommen, der legt aber den Mac lahm, so dass ich das System mit TimeMachine wieder aufbauen musste.
Hast du in der Zwischenzeit eine Lösung und läuft der AWUS bei dir an Sierra?
Danke für deine Hilfe.
-
-
Hallo Raphael,
ich habe folgendes Problem. Ich habe zur Konfiguration des PIs mich mit ihm über meinen Router verbunden, wo er mit dem LAN verbunden war. Habe ich ihn über diese Verbindung gesteuert, hat er bei jedem reboot das konfigurierte PI WLAN gestartet. Wenn ich die Verbindung zum Router nun kappe und beim nächsten reboot hoffe mich mit dem konfiguriertem PI WLAN zu verbinden, erstellt er jedoch keines. Und ich frage mich jetzt, warum er nur sein WLAN erstellt, wenn er mit dem Router verbunden ist, nicht jedoch wenn er alleine, nur mit Stromanschluss, gestartet wird.
Grüße
Maik -
Hallo,ich habe diese Anleitung 10 Mal step by step durchgeführt, trotzdem mein Wlan1 sieht so aus: Access Point: Not-Associated, woran kann es liegen?Vielen Dank
-
das Problem war diese Zeile, DAEMON_CONF=”/etc/hostapd/hostapd.conf”
man sollte doch das Zeichen # davor löschen:), so viele Zeit verloren bis ich das rausgefunden habe:)
vielen Dank
-
uppps eine Frage noch, wenn ich pi ausschalte, hostapd startet nicht automatisch. es geht erst wieder, wenn ich “sudo service hostapd restart” eintippe. any idea?
-
Hey
super Anleitung, echt anschaulich und für Einsteiger auch verständlich.
Habe jetzt alles durch und der Pi wird mir unter meinem angegebenen namen auch in der Liste meiner WLAN-Signale angezeigt. Was leider nicht funktioniert, ist das Verbinden.
Ausgewählt, Key eingegeben und mein Handy versucht eine IP zu empfangen. Das klappt nicht, dann bricht der Versuch ab und es versucht es erneut.
Kannst du mir dabei helfen?-
Das Problem hat sich gelöst, nur habe ich jetzt das Problem, dass die Geräte die am Pi hängen keine Verbindung zum Internet bekommen, also dass keine Seiten etc aufgerufen werden können.
-
-
Kann man auch das wlan signal an den lanport ausgeben?
-
Halli hallo!
Vielen Dank schon jetzt für die ausführliche Anleitung!
Ich überlege mir einen Raspberry B zu kaufen um ein Wlan zu repeaten das mit WPA2-Enterprise verschlüsselt ist.Meine Frage ist ob sowas überhaupt möglich ist? D.h. den Pi zu konfigurieren, dass er sich mit Benutzername u Passwort ins Wlan verbindet und dieses dann weiterrepeated?
Da ich wenig Ahnung auf diesem Gebiet habe bin ich für jegliche Hinweise sehr dankbar! :)
Lg
-
Hast Du schon weitere Ergebnisse zu deinem Test Philipp?
Ich habe das gerade mit nur “einer” Netzwerkkarte getestet. :-( bin erstmal geschreitet.
Mal sehen, ob ein einfaches “Dummy-Device” da helfen kann. Immerhin soll das Große Kind ja lückenloses WLAN im Zimmer haben :DDDD-
Hi!
Nein, noch habe ich das nicht ausprobiert. Werde mir morgen wahrscheinlich einen Pi kaufen und dann einmal die Bastelei starten… Da ich ein absoluter noob bin, bin ich schon mal gespannt :)
Ich werde hier bescheid geben. Falls jemand irgendwelche Tips oder sonstige Hinweise hat, nur her damit… :)
Danke!
-
So, Ergebnisse zum Test sind vorhanden!
Nach einigem Herumspielen und dank der Anleitung( :) !!) läuft das vollendete Werk und repeated brav das WPA2-Enterprise geschützte Wlan(dank Dr. google!). :)
Allerdings mit sehr großen Geschwindigkeitseinbußen. Laut speedtest.net habe ich – wenn ich ohne Raspberry verbunden bin – 10Mbps download.
Mit gebauten Repeater und den oben verwendeten USB Adaptern komme ich auf 0,5 bis max. 1,5 Mbps…
Also sehr hohe Verluste, die surfen nur mit hohen Qualitätsverlusten möglich machen…Hat jemand vergleichbare Erfahrungswerte? Wie ging es bei euch?
-
Hallo Philipp,
ich habe mittlerweile gefühlt 1000 Anleitungen abgearbeitet und bin was Linux betrifft sicher kein absoluter Neuling mehr, aber ich bekomme ein ähnliches Ergebnis:
zwei identische Adapter (Ralink 5372) sowohl mit Rasbian Wheezy (wie hier aus der Anleitung) und mit Jessie … ich habe teilweise eine Bandbreite im kBit-Bereich. Irgendwas funktioniert nicht und ich bin nach Wochen nun mit meinem Latein am Ende. Interessant ist folgendes, wenn man dieses Szenario zu Grunde legt:
Internet raspi lokales Lan
Wenn ich wifi1 allein mit iperf messe (wifi2 keine Übertragung) komme ich auf so ca 15 mbit (völlig ausreichend). Das Gleiche auch bei der Messung von wifi2.
Lasse ich beide Messungen parallel laufen geht es nur noch im Schneckentempo voran, als ob sich beide WLANs behindern (beide laufen auf verschiedenen Channels!).-
ok leider wurde mein ASCII-Art meines Setups gefiltert, hier nochmal ein neuer Versuch:
internet — (wifi1) — raspi — (wifi2) — lokales Netz
-
-
@Philipp: hast du zufällig Erfolg gehabt mit der Geschwindigkeit?
-
Hi Andreas!
Mit den zwei Wlanadaptern habe ich keine Verbesserung geschafft. Habe einen Wlan Router geschenkt bekommen und gebe jetzt das Internet über den Ethernetport aus; wie hier beschrieben:
wlan0 durch eth0 und wlan1 durch wlan0 in der Anleitung ersetzen. Bei direktem Anschluss an den Laptop gibts quasi keinen Geschwindigkeitsverlust! Habe das ganze jetzt an einen Netgearrouter gehängt und muss noch die optimale Position des Raspis finden, da die kleine Antenne ein doch recht gutes Signal braucht.Vielen Dank an Raphael!!!
Und viel Glück! :)
-
-
-
-
-
Hallo und danke für die tolle Anleitung. Hat nachdem ich den richtigen Treiber für meinen Stick hatte auch super funktioniert.
Kann man in die /etc/wpa.conf eigentlich auch mehrere Wlan´s eintragen, so das er sich automatisch mit dem verfügbaren verbindet? -
Ich hatte auch das Problem mit den iptables, aber mit apt-get install iptables-persistent hat es dann geklappt!
-
Einen Fehle habe ich auch noch gefunden in der /etc/hostapd/hostapd.conf ist in den leeren Zeilen ein Leerzeichen. sudo hostapd /etc/hostapd/hostapd.conf meckert dort ;-)
-
Hallo Raphael,
ich möchte gern nochmal mein Problem von vor 2 Monaten aufwärmen: hast du das hier beschriebene Setup deines Repeaters noch im Einsatz?
Ich habe nun nach einem Raspberry 2 und zwei Raspberry 1 einen Pi Zero getestet. Ich habe (mittlerweile mehr als) 2 RT5370-Dongles und wie vor einiger Zeit geschrieben nun das Problem (wie auch Philipp), dass die Repeater-Performance unterirdisch ist. Durchschnittlich 90 kB/s geht einfach nicht.
Funktioniert das alles bei dir aktuell immer noch problemlos?Danke
-
Ich habe das gleiche Problem. Sobald ich mit dem Repeater verbunden bin sinkt die Downloadgeschwindigkeit auf 250 kb/s. Wenn ich direkt mit meine WLAN Router verbunden bin sind es bis zu 2,5 Mb/s.
Setup: Raspberry B+, TP-Link-WN821N, CSL – 300 mbps WiFi USB Adapter with antenna,
Der TP-Link dient dabei als AP.
Ist es möglich, da mein Provider Dual Stack verwendet, und ich keine ipv6 Adresse von DHCP Server bekomme nur eine eingeschränkte Geschwindigkeit habe?
-
-
Super, funktioniert. Habe zwei verschiedene USB WiFi Sticks, nur einer von beiden lässt sich anscheinend als AP betreiben.
-
Tolle Anleitung habe sie heute erst gefunden.
Ich habe allerdings eine frage und zwar wie kann ich einstellen das der supplicant sich über LAN-Kabel kabel verbindet. Sorry falls die frage doof erscheint aber ich hab es bis jetzt nicht herausgefunden.
Würde mich sehr über eine Antwort freuen :)
Comments