Raspberry Pi als Zugangspunkt einrichten - ganz einfach

15

Ich weiß, wie es auf klassische Weise gemacht wird, wie es zum Beispiel in der offiziellen Dokumentation unter Einrichten eines Raspberry Pi als Zugangspunkt in einem eigenständigen Netzwerk (NAT) beschrieben ist . Das erfordert jedoch viele verschiedene Komponenten, die zusammenspielen müssen, und jede Komponente muss auf ihre eigene Weise konfiguriert werden. Dies sind Netzwerk- (ifupdown) , dhcpcd- , hostapd- , dnsmasq- und bridge-Utils .

Heutzutage hat Raspbian Stretch alle erforderlichen Komponenten eingebaut, so dass keine zusätzliche Software installiert werden muss. Dies könnte das Setup erheblich vereinfachen.

Ist es möglich, Raspbian so zu konfigurieren , dass es als WLAN-Zugangspunkt funktioniert, ohne dass zusätzliche Software installiert werden muss?

Ingo
quelle

Antworten:

25

━━━ Einrichten eines Zugangspunkts ━━━

Es handelt sich um einen Zugangspunkt zusammen mit einem Ethernet-Port eth0 .

Wenn Sie einen Access Point zusammen mit einer WLAN0- Client-Verbindung zu einem anderen WLAN-Netzwerk (WLAN-Repeater) wünschen, sehen Sie sich Access Point als WLAN-Router / -Repeater an, optional mit Bridge .

Es ist möglich, Raspbian Stretch als WLAN-Zugangspunkt zu konfigurieren, ohne zusätzliche Software zu installieren. Alle benötigten Komponenten sind verfügbar: Netzwerk, DHCP-Server und Bridging werden mit systemd- networkd geliefert und WLAN kann mit wpa_supplicant eingerichtet werden . Das Verbinden von zwei Schnittstellen eth0 und wlan0 kann durch Routing oder durch Bridging erfolgen. Unten zuerst das Setup für die schnelle Installation und dann die Details. Zuerst müssen wir auf systemd-networkd umsteigen .

Getestet mit
Raspbian Stretch Lite 2019-04-08 auf einem Raspberry Pi 3B +, aktualisiert am 2019-04-14.
Raspbian Buster Lite 2019-07-10 auf einem Raspberry Pi 4B, aktualisiert am 2019-07-20.
Updates gemacht mit sudo apt update && sudo apt full-upgrade && sudo reboot.


♦ Allgemeine Einrichtung

Wechseln Sie zu systemd-networkd

Detaillierte Informationen finden Sie unter (1) . Hier nur kurz. Führen Sie diese Befehle aus:

# disable classic networking
rpi ~$ sudo -Es
rpi ~# systemctl mask networking.service dhcpcd.service
rpi ~# mv /etc/network/interfaces /etc/network/interfaces~
rpi ~# sed -i '1i resolvconf=NO' /etc/resolvconf.conf

# enable systemd-networkd
rpi ~# systemctl enable systemd-networkd.service systemd-resolved.service
rpi ~# ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

Konfigurieren Sie wpa_supplicant als Zugangspunkt

So konfigurieren Sie wpa_supplicant als Access Point erstellen Sie diese Datei mit den Einstellungen für country=, ssid=, psk=und vielleicht frequency=. Sie können dies einfach kopieren und in einem Block in Ihre Befehlszeile einfügen, beginnend mit catund einschließlich beider EOF (Trennzeichen EOF wird nicht Teil der Datei sein):

rpi ~# cat > /etc/wpa_supplicant/wpa_supplicant-wlan0.conf <<EOF
country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="RPiNet"
    mode=2
    frequency=2437
    #key_mgmt=NONE   # uncomment this for an open hotspot
    # delete next 3 lines if key_mgmt=NONE
    key_mgmt=WPA-PSK
    proto=RSN WPA 
    psk="password"
}
EOF
rpi ~# chmod 600 /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
rpi ~# systemctl disable wpa_supplicant.service
rpi ~# systemctl enable [email protected]

Abschluss der allgemeinen Einrichtung. Geh zurück.


♦ Einrichten eines eigenständigen Zugriffspunkts

Beispiel für diesen Aufbau:

                 wifi
mobile-phone <~.~.~.~.~> (wlan0)RPi(eth0)
            \             /
           (dhcp)   192.168.4.1

Führen Sie "General setup" aus und erstellen Sie dann die folgende Datei, um wlan0 zu konfigurieren . Wir haben nur den Zugangspunkt. Es ist kein Ethernet-Gerät konfiguriert.

rpi ~# cat > /etc/systemd/network/08-wlan0.network <<EOF
[Match]
Name=wlan0
[Network]
Address=192.168.4.1/24
DHCPServer=yes
EOF

Wenn Sie dies möchten, starten Sie neu.
Das ist es.
Andernfalls müssen Sie zu diesem Zeitpunkt nicht neu starten.


♦ Einrichten eines Access Points und mit eth0 ohne Routing

Beispiel für diesen Aufbau:

                                 |
                 wifi            |           wired            wan
mobile-phone <~.~.~.~.~> (wlan0)RPi(eth0) <---------> router <---> INTERNET
            \             /      |     \             /
           (dhcp)   192.168.4.1  |    (dhcp)   192.168.50.1

Installieren

Führen Sie "Einrichten eines eigenständigen Zugriffspunkts" aus, und erstellen Sie dann die folgende Datei, um eth0 zu konfigurieren .

rpi ~# cat > /etc/systemd/network/04-eth0.network <<EOF
[Match]
Name=eth0
[Network]
DHCP=yes
EOF

Starten Sie neu.
Das ist es.

Einzelheiten

Die Schnittstelle eth0 ist mit einem Ethernet-Kabel mit dem Internet-Router verbunden und wird vom Internet-Router per DHCP konfiguriert. Es ist kein Problem, eine statische IP-Adresse mit zB Address=192.168.50.2anstelle von zu vergeben DHCP=yes.

Ohne Routing kommt man mit dem Handy nicht ins Internet. Sie können nur vom RPi selbst darauf zugreifen, um Updates oder ähnliches zu erhalten.


♦ Einrichten eines Access Points und mit eth0 mit NAT (empfohlen)

Beispiel für diesen Aufbau:

                 wifi                        wired            wan
mobile-phone <~.~.~.~.~> (wlan0)RPi(eth0) <---------> router <---> INTERNET
            \             /            \
           (dhcp)   192.168.4.1       (dhcp)

Installieren

Führen Sie "General setup" aus, und erstellen Sie dann die folgenden Dateien, um wlan0 und eth0 zu konfigurieren . Stellen Sie sicher, dass Sie für den Zugangspunkt ein anderes Subnetz als das des Routers verwenden. Der Router in diesem Beispiel verwendet nicht das Subnetz 192.168.4.0/24. Wenn Sie ein anderes Subnetz benötigen, ändern Sie einfach die Adresszeile, z Address=192.168.5.1/24.

rpi ~# cat > /etc/systemd/network/08-wlan0.network <<EOF
[Match]
Name=wlan0
[Network]
Address=192.168.4.1/24
DHCPServer=yes
[DHCPServer]
DNS=84.200.69.80 1.1.1.1
EOF

rpi ~# cat > /etc/systemd/network/04-eth0.network <<EOF
[Match]
Name=eth0
[Network]
DHCP=yes
IPForward=yes
EOF

Um NAT zu konfigurieren, müssen Sie den Dienst wpa_supplicant folgendermaßen erweitern :

rpi ~# systemctl edit [email protected]

Fügen Sie im leeren Editor diese Anweisungen ein, speichern Sie sie und beenden Sie den Editor:

[Service]
ExecStartPre=/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
ExecStopPost=-/sbin/iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Starten Sie neu.
Das ist es.

Einzelheiten

Wenn Sie keinen Zugriff auf den Internet-Router haben, können Sie ihn mit NAT (Network Address Translation) vortäuschen, um zu erkennen, dass alle Pakete von Ihrem RasPi-AP stammen. Dies ist jedoch kein sauberes Routing und weist Einschränkungen auf. Clients im Subnetz des Routers können keine Verbindung zu Clients im WLAN herstellen. In den meisten Fällen wird dies jedoch nicht benötigt, weshalb dieses Setup empfohlen wird, da es das Setup vereinfacht. Wenn Sie vom Routernetzwerk aus eine Verbindung zu den WLAN-Clients herstellen müssen, müssen Sie das im nächsten Abschnitt beschriebene vollständige Routing verwenden.


♦ Einrichten eines Access Points und mit eth0, mit Routing

Beispiel für diesen Aufbau:

                 wifi                        wired            wan
mobile-phone <~.~.~.~.~> (wlan0)RPi(eth0) <---------> router <---> INTERNET
            \             /            \              /
           (dhcp)   192.168.4.1   192.168.50.2   192.168.50.1

Installieren

Führen Sie "General setup" aus, und erstellen Sie dann die folgenden Dateien, um wlan0 und eth0 zu konfigurieren . Stellen Sie sicher, dass Sie für den Zugriffspunkt und das Routernetzwerk unterschiedliche Subnetze verwenden. Wir müssen statische IP-Adressen verwenden, weil wir sie als Gateways verwenden müssen.

rpi ~# cat > /etc/systemd/network/08-wlan0.network <<EOF
[Match]
Name=wlan0
[Network]
Address=192.168.4.1/24
DHCPServer=yes
[DHCPServer]
DNS=84.200.69.80 1.1.1.1
EOF

rpi ~# cat > /etc/systemd/network/04-eth0.network <<EOF
[Match]
Name=eth0
[Network]
Address=192.168.50.2/24
Gateway=192.168.50.1
DNS=84.200.69.80 1.1.1.1
IPForward=yes
EOF

Starten Sie neu.

Um das Routing zum Laufen zu bringen, müssen Sie eine statische Route in Ihrem Internet-Router festlegen, damit dieser die Route für zurückkommende Pakete über das RasPi zu den Clients ermitteln kann, die per WLAN mit dem Zugangspunkt verbunden sind. Auf den meisten Internet-Routern können Sie eine statische Route festlegen. Die Vorgehensweise ist jedoch von Modell zu Modell unterschiedlich. Es liegt an Ihnen, es herauszufinden. Zum Beispiel hat Ihre RasPi eth0- Schnittstelle die statische IP-Adresse 192.168.50.2. Dann ist auf Ihrem Router das Gateway (nächster Hop) 192.168.50.2, das Zielnetz ist 192.168.4.0/24 (oder 192.168.4.0, Netzmaske 255.255.255.0).

Das bedeutet für den Internet-Router: "Senden Sie alle Pakete, die zum Subnetz gehören 192.168.4.0/24(Zielnetzwerk vom AP), an den nächsten Router in meinem Subnetz, den RasPi-AP 192.168.50.2(Gateway). Er weiß, wohin er gehen soll."

Das ist es.


♦ Einrichten eines Zugangspunkts mit einer Brücke

Beispiel für diesen Aufbau:

                               RPi
               wifi   ┌──────bridge──────┐   wired            wan
mobile-phone <.~.~.~> │(wlan0) br0 (eth0)│ <-------> router <-----> INTERNET
            \                   |                   / DHCP-server
           (dhcp              (dhcp           192.168.50.1
        from router)       from router)

Wenn Sie bereits ein Ethernet-Netzwerk mit DHCP-Server und Internet-Router haben und dieses um einen WLAN-Zugangspunkt mit denselben IP-Adressen erweitern möchten, verwenden Sie eine Bridge. Dies wird häufig als Uplink zu einem Router verwendet.

Installieren

Führen Sie "General setup" aus, und bereinigen Sie dann das Verzeichnis / etc / systemd / network. Berühren Sie jedoch nicht, 99-default.linkfalls vorhanden. Erstellen Sie die folgenden drei Dateien, um eth0 und br0 zu konfigurieren . Die IP-Adressen sind Beispiele. Sie müssen Ihre eigenen einstellen.

rpi ~# cat > /etc/systemd/network/02-br0.netdev <<EOF
[NetDev]
Name=br0
Kind=bridge
EOF

rpi ~# cat > /etc/systemd/network/04-br0_add-eth0.network <<EOF
[Match]
Name=eth0
[Network]
Bridge=br0
EOF

rpi ~# cat > /etc/systemd/network/12-br0_up.network <<EOF
[Match]
Name=br0
[Network]
DHCP=yes
# to use static IP uncomment these and comment DHCP=yes
#Address=192.168.50.60/24
#Gateway=192.168.50.1
#DNS=84.200.69.80 1.1.1.1
EOF

Jetzt müssen wir wpa_supplicant anweisen , eine Bridge zu verwenden. Wir tun es, indem wir seinen Service ändern mit:

rpi ~# systemctl edit [email protected]

Fügen Sie im leeren Editor diese Anweisungen ein, speichern Sie sie und beenden Sie den Editor:

[Service]
ExecStartPre=/sbin/iw dev %i set type __ap
ExecStartPre=/bin/ip link set %i master br0

ExecStart=
ExecStart=/sbin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -Dnl80211,wext -i%I -bbr0

ExecStopPost=-/bin/ip link set %i nomaster
ExecStopPost=-/sbin/iw dev %i set type managed

Starten Sie neu.
Das ist es.

Einzelheiten

Wir müssen wpa_supplicant mitteilen, dass sein Interface wlan0 Slave einer Bridge ist. Andernfalls werden Client-Verbindungen mit "falschem Passwort" abgelehnt. Dies bedeutet, dass die Schlüsselaushandlung nicht funktioniert. Wenn wir sagen , / sbin / wpa_supplicant mit der Option , -dbr0eine Brücke verwenden wlan0 dann muss die Schnittstelle bereits ein Mitglied der Brücke sein. Das machen wir mit dem Drop-In-File (Overlay) für den Dienst wpa_supplicant . Die leere Anweisung ExecStart=löscht den alten Eintrag. Andernfalls haben Sie zwei Zeilen ExecStart=und wpa_supplicant wird zweimal gestartet. Das Original, mit dem ExecStart=Sie anzeigen können systemctl cat [email protected].

Normalerweise ist auf dem Router, mit dem Sie über das Ethernet-Kabel verbunden sind, ein DHCP-Server aktiviert. Die Bridge ist auch transparent für DHCP-Anforderungen von den Stationen (an den Access Point angeschlossenen Geräten), sodass Sie sich nicht um die Konfiguration der Schnittstellen mit IP-Adressen und -Optionen kümmern müssen. Der Router wird es bedienen.
exkurs:
Aber wenn der Router keinen DHCP-Server hat, können Sie einen auf dem RasPi einrichten. systemd-networkd verfügt über Optionen zum Konfigurieren des integrierten DHCP-Servers. Das Problem besteht jedoch darin, dass systemd-networkd davon ausgeht, dass es auf dem Router selbst ausgeführt wird. Dies ist in diesem Fall nicht der Fall. Es werden den Stationen falsche Optionen bereitgestellt, insbesondere die Router- Option. Es gibt keine Möglichkeit, es zu konfigurieren. Also müssen wir installierendnsmasqIn diesem Fall kann dies nach Bedarf konfiguriert werden. Installieren und konfigurieren Sie es mit (verwenden Sie zum Beispiel Ihre eigenen IP-Adressen):

rpi ~$ sudo -Es
rpi ~# apt install dnsmasq
rpi ~# systemctl stop dnsmasq
rpi ~# mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

rpi ~# cat > /etc/dnsmasq.conf <<EOF
interface=br0
  dhcp-range=192.168.50.128,192.168.50.164,255.255.255.0,24h
  dhcp-option=option:router,192.168.50.1
  dhcp-option=option:dns-server,8.8.8.8,1.1.1.1
EOF

rpi ~# systemctl start dnsmasq
rpi ~# exit
rpi ~$

In diesem Beispiel sind die IP-Adressen 192.168.50.128 bis 192.168.50.164 für die Weitergabe an Stationen reserviert. Für andere statische IP-Adressen verwenden Sie eine außerhalb dieses Pools, auch die IP-Adresse für die Bridge selbst.


♦ Optimieren

Beim Start von wpa_supplicant erhalten Sie meistens folgende Meldungen im Journal:

wpa_supplicant[427]: random: Cannot read from /dev/random: Resource temporarily unavailable
wpa_supplicant[427]: random: Only 12/20 bytes of strong random data available from /dev/random
wpa_supplicant[427]: random: Not enough entropy pool available for secure operations
wpa_supplicant[427]: WPA: Not enough entropy in random pool for secure operations - update keys later when the first station connects

Es ist kein großes Problem. wpa_supplicant benötigt Zufallszahlen, um Verschlüsselungsschlüssel zu generieren. Dies geschieht etwas langsam, so dass es warten muss. Glücklicherweise hat die Raspi einen eingebauten T rue R Andom N umber G enerator (TRNG). Wir können es verwenden und das Abrufen von Zufallszahlen beschleunigen, indem wir eine Software installieren (3) mit:

rpi ~$ sudo apt install rng-tools

Update:
Seit dem Raspbian Stretch 2019-04-08 ist keine Installation mehr erforderlich rng-tools. Sie werden standardmäßig installiert.


♦ Fehlerbehebung

systemd-networkd

Schauen Sie sich den Status eines Dienstes an:

rpi ~$ systemctl status systemd-networkd.service
rpi ~$ systemctl status [email protected]

Oder noch ein bisschen mehr:

rpi ~$ journalctl --boot --pager-end

Ich fand es hilfreich, die laufende Protokollierung zu verfolgen:

rpi ~$ journalctl --boot --follow

Wenn Sie eine Datei abgelegt haben, können Sie sich das Ergebnis ansehen:

rpi ~$ systemctl cat [email protected]

Um die Laufzeitumgebung einer Unit zu überprüfen, können Sie diese anzeigen und beispielsweise prüfen, ob zwei ExecStart=Zeilen vorhanden sind :

rpi ~$ systemctl show [email protected]

Und wenn nichts anderes hilft, können Sie die Debug-Option von /sbin/wpa_supplicantmit -din einem Drop-In-File aktivieren :

rpi ~$ sudo systemctl edit [email protected]
ExecStart=
ExecStart=/sbin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -Dnl80211,wext -i%I -bbr0 -d

Die Ausgabe erfolgt im Journal. Auf diese Weise habe ich das Problem mit der falschen Schlüsselverhandlung gefunden.

W-lan

Wenn Sie den Zugangspunkt eingerichtet haben, sollten Sie ihn mit einem Mobiltelefon finden. Die verfügbaren Netzwerke werden mit dem Namen RPiNet angezeigt und Sie können eine Verbindung herstellen. Auf dem RasPi können Sie auch den Befehl verwenden:

rpi ~$ sudo iw dev wlan0 info
phy#0
        Interface wlan0
                ifindex 3
                wdev 0x2
                addr b8:27:eb:06:e8:8b
                ssid RPiNet
                type AP
                channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz

Wie Sie sehen, handelt es sich um einen AP (Access Point) und zeigt Ihnen auch, welchen Kanal er verwendet. Ein Problem kann darin bestehen, einen Kanal in eine Frequenz umzuwandeln. Die Frequenz muss mit einem Kanal übereinstimmen. Unter (2) finden Sie eine Liste der WLAN-Kanäle. Zum Beispiel zur Verwendung Kanal 36 auf der 5,1 - GHz - Band müssen Sie setzen frequency=5180in /etc/wpa_supplicant\wpa_supplicant.conf. Sie müssen jedoch sicher sein, dass Ihr WLAN das 5,1-GHz-Band unterstützt. Sie können mit überprüfen sudo iw phy. Dadurch erhalten Sie eine Reihe von Informationen. Es muss auch unterstützte Frequenzen über 5000 MHz enthalten. Wenn Sie nur Frequenzen von 24xx MHz sehen, können Sie natürlich nur diese verwenden.

Ein weiterer Punkt könnten Zufallszahlen sein. Für die Verschlüsselung von Schlüsseln für gesicherte Verbindungen benötigt wpa_supplicant Zufallszahlen. Das Erzeugen ist auf einem Raspberry Pi sehr langsam. Wenn die Entropie nicht ausreicht, um Verschlüsselungsschlüssel zu generieren, lehnt wpa_supplicant die Authentifizierung ab. Sie können sehen, mit cat /proc/sys/kernel/random/entropy_availwie viel Entropie verfügbar ist. Es sollte> 1000 sein, um schnell genug zu arbeiten. Um dies zu beschleunigen, rng-toolswerden die standardmäßig installiert. Weitere Informationen finden Sie im Abschnitt Optimieren .


Referenzen:
[1] Migrieren von Netzwerk zu Systemd-Networkd mit dynamischem Failover
[2] Liste der WLAN-Kanäle
[3] Rng-Tools

Ingo
quelle
rpi ~ # systemd-tmpfiles --create --prefix / var / log / journalroot FEHLT mit dieser Ausgabemeldung: ~ # systemd-tmpfiles --create --prefix / var / log / journal var / log / journal ', Wert = 0x00800000, Maske = 0x00800000: Vorgang nicht unterstützt. Dateiattribut für' / var / log / journal / 6d18954849a74479955b761e891619aa ', Wert = 0x00800000, Maske = 0x00800000: Vorgang nicht unterstützt umgesetzt. Kein guter Start für die Umsetzung des Verfahrens.
Jan Hus
1
Hi @JanHus Danke für dein Feedback. Dies ist nur eine Warnung, kein Fehler und spielt keine Rolle. Ich bekomme es auch jedes Mal. Das persistente Journal wird erstellt. Schau mit ls /var/log/journal/. Sie sehen ein Verzeichnis, das aussieht fa9462093e8d419cb646d0a0c44771c2. Dies ist der Speicher für das Journal, auf das Sie zugreifen journalctl. Ich werde meine Antwort aktualisieren.
Ingo
Ja, ich habe geprüft, ob die Datei erstellt wurde. Aber ich wurde abgelenkt und blieb stehen. Ich werde heute weitermachen. Bisher ist dies eines der besseren "Tutorials" zum Thema. Vielen Dank für die Veröffentlichung. PS nennt es dauerhaft OK? Wenig verwirrend, wenn es mit Temp-Prozess erstellt wird.
Jan Hus
2
@Ingo Ich denke, es wird empfohlen, proto=WPA2in der AP-Konfiguration zu verwenden. Zumindest mein Telefon klagt über "schwache Sicherheit", wenn es nicht vorhanden ist.
Robin Dinse
2
@RobinDinse Sie haben natürlich Recht. Ich habe es beaufsichtigt. Danke für den Tipp. Ich habe hinzugefügt proto=RSN. Das ist es, was das Dokument bevorzugt (Benennung proto=WPA2eines Alias).
Ingo
3

Eine noch einfachere Möglichkeit, einen Himbeer-Pi als AP einzurichten , ist die Verwendung des Pi-Ap-Github-Repos, mit dem die Konfiguration eines Pi 3B + / 4 in einen AP automatisiert wird.

Verbinden Sie den Pi mit einem freien Port in Ihrem mit dem Internet verbundenen Router, der DHCP aktiviert hat (wahrscheinlich der Fall bei den meisten Consumer-Routern).

Einmal verbunden, SSH in Pi auf der eth0vom Router zugewiesenen DHCP-IP und dann:

git clone https://github.com/f1linux/pi-ap

cd pi-ap

nano variables.sh   # Change default values for SSID & password

sudo ./install.sh

Trinken Sie Tee und nach ca. 2 Minuten Wartezeit wird die von Ihnen eingegebene SSID variables.shin Ihrer Liste der drahtlosen Netzwerke angezeigt. Stellen Sie eine Verbindung zum WLAN des Pis her, für das geworben wird.

wlan0Verwenden Sie die Standard-IP von, um SSH direkt mit dem AP selbst auf der Pi- Schnittstelle zu verbinden192.168.0.1

BITTE BEACHTEN SIE : Das standardmäßige DHCP-Subnetz, das pi-ap verwendet, um WiFi-Clients IPs zuzuweisen, variables.shist 192.168.0.0/28. Wenn Sie dieses Subnetz bereits in Ihrem Netzwerk verwenden, legen Sie VOR der Ausführung ein anderes Subnetz variables.shfür WLAN-Clients fest .install.sh

Kein Subnetzrechner oder ernsthafte Netzwerkfähigkeiten sind erforderlich, um gute Ergebnisse zu erzielen. pi-ap unterstützt sogar Zugriffsbeschränkungen über MAC-ACLs.

OFFENLEGUNG : Ich bin der Entwickler von pi-ap .

F1Linux
quelle
0

━━━ Prüfen Sie die Installation Schritt für Schritt mit den Kontrollpunkten ━━━

Diese Antwort ist nicht für die Einrichtung gedacht. Sehen Sie sich für eine stabile Einrichtung die andere Antwort an. Einrichten eines Zugangspunkts .

Diese Antwort dient hauptsächlich zur Fehlerbehebung und um zu zeigen, wie es mit detaillierten Befehlen Schritt für Schritt und Checkpoints funktioniert, jedoch ohne Hintergrundinformationen. Ich nehme an, Sie haben einen Monitor, eine Tastatur und eine Maus an Ihrem Raspberry Pi. IP-Adressen und andere Einstellungen in dieser Überprüfung sind Beispiele. Du musst deins benutzen. Sie können immer nach journalctl -b -eprotokollierten Informationen suchen .

Download ZIPimage Raspbian Stretch Lite 2018-11-13 auf deinen Linux-PC.

Prüfpunkt 1: Vergleichen Sie die Prüfsumme mit der auf der Download-Site.

pc ~$ sha256sum 2018-11-13-raspbian-stretch-lite.zip

47ef1b2501d0e5002675a50b6868074e693f78829822eef64f3878487953234d 2018-11-13-raspbian-stretch-lite.zip

Nächster Schritt: Brennen Sie das Image auf eine angeschlossene SD-Karte:

pc ~$ unzip -p 2018-11-13-raspbian-stretch-lite.zip | sudo dd of=/dev/sdb bs=4M conv=fsync

Prüfpunkt 2: Partitionen auf der SD-Karte prüfen:

pc ~$ sudo parted /dev/sdb print
Model: Mass Storage Device (scsi)
Disk /dev/sdb: 3965MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      4194kB  50,2MB  46,0MB  primary  fat32        lba
 2      50,3MB  1866MB  1816MB  primary  ext4

Nächster Schritt: Laden Sie die Boot-Partition und erstellen Sie eine wpa_supplicant.confDatei:

pc ~$ mkdir boot/
pc ~$ sudo mount /dev/sdb1 boot/
pc ~$ sudo -e boot/wpa_supplicant.conf

# insert this into the empty editor with your settings, save it and quit the editor
country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="RPiNet"
    mode=2
    key_mgmt=WPA-PSK
    psk="password"
    frequency=2412
}

pc ~$ sudo umount boot/

Legen Sie die SD-Karte in Ihr RasPi ein und booten Sie.

Prüfpunkt 3: Überprüfen Sie nach der Anmeldung die Kabelverbindung. Die eth0- Schnittstelle muss eine IP-Adresse haben:

rpi ~$ ip -4 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.50.177/24 brd 192.168.50.255 scope global eth0
       valid_lft forever preferred_lft forever

rpi ~$ ping -I eth0 -c3 google.com
PING google.com (172.217.22.78) from 192.168.50.177 eth0: 56(84) bytes of data.
64 bytes from fra15s17-in-f14.1e100.net (172.217.22.78): icmp_seq=1 ttl=55 time=15.0 ms
64 bytes from fra15s17-in-f14.1e100.net (172.217.22.78): icmp_seq=2 ttl=55 time=14.7 ms
64 bytes from fra15s17-in-f14.1e100.net (172.217.22.78): icmp_seq=3 ttl=55 time=15.1 ms

--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 14.729/14.965/15.125/0.170 ms

Dies sollte sofort funktionieren. Wenn dies nicht funktioniert, liegt ein allgemeines Problem mit der Netzwerkeinrichtung vor. Bitte beheben Sie es, bevor Sie fortfahren.

Checkpoint 4: Überprüfen Sie den Access Point:

rpi ~$ sudo iw dev wlan0 info
Interface wlan0
        ifindex 3
        wdev 0x1
        addr b8:27:eb:06:e8:8b
        ssid RPiNet
        type AP
        wiphy 0
        channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
        txpower 31.00 dBm

Die wlan0- Schnittstelle sollte eine IP-Adresse haben. Da wir die Schnittstelle nicht konfiguriert haben, hat sie eine Link-Local-Adresse von 169.254.0.0/16.

rpi ~$ ip -4 addr show dev wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 169.254.210.182/16 brd 169.254.255.255 scope global wlan0
       valid_lft forever preferred_lft forever

Sie sehen RPiNet in der Liste der Zugangspunkte auf Ihrem Mobiltelefon, können jedoch noch keine Verbindung herstellen.

Nächster Schritt: Vollständiges Upgrade und Neustart:

rpi ~$ sudo apt update
rpi ~$ sudo apt full-upgrade
rpi ~$ sudo systemctl reboot

Wechseln Sie nach dem Neustart und der Anmeldung zu systemd-networkd :

rpi ~$ sudo -Es
rpi ~# mkdir -p /var/log/journal
rpi ~# systemd-tmpfiles --create --prefix /var/log/journal #ignore warnings (*)

rpi ~# apt install rng-tools
rpi ~# systemctl mask networking.service
rpi ~# systemctl mask dhcpcd.service
rpi ~# sudo mv /etc/network/interfaces /etc/network/interfaces~
rpi ~# sed -i '1i resolvconf=NO' /etc/resolvconf.conf

rpi ~# systemctl enable systemd-networkd.service
rpi ~# systemctl enable systemd-resolved.service
rpi ~# ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

(*) Es werden ein oder zwei verwirrende Warnungen angezeigt "... Dateiattribut kann nicht festgelegt werden ..." Dies ist kein Fehler und in diesem Fall nicht von Bedeutung.

Erstellen Sie diese Dateien für die Schnittstellen eth0 und wlan0 mit Ihren Einstellungen:

rpi ~# cat > /etc/systemd/network/04-eth0.network <<EOF
[Match]
Name=eth0
[Network]
Address=192.168.50.60/24
Gateway=192.168.50.1
DNS=84.200.69.80 84.200.70.40
IPForward=yes
EOF

rpi ~# cat > /etc/systemd/network/08-wlan0.network <<EOF
[Match]
Name=wlan0
[Network]
Address=192.168.4.1/24
DHCPServer=yes
[DHCPServer]
DNS=84.200.69.80 84.200.70.40
EOF

Benennen Sie /etc/wpa_supplicant/wpa_supplicant.conf so dass es die Einstellung der Schnittstelle und Neustart übereinstimmt:

rpi ~# mv /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
rpi ~# systemctl disable [email protected]
rpi ~# systemctl reboot

Prüfpunkt 5: Überprüfen Sie nach dem Neustart und der Anmeldung die kabelgebundene Verbindung eth0 :

rpi ~$ ip -4 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.50.60/24 brd 192.168.50.255 scope global eth0
       valid_lft forever preferred_lft forever

rpi ~$ ping -I eth0 -c3 google.com
PING google.com (172.217.10.14) from 192.168.50.60 eth0: 56(84) bytes of data.
64 bytes from lga34s12-in-f14.1e100.net (172.217.10.14): icmp_seq=1 ttl=51 time=93.5 ms
64 bytes from lga34s12-in-f14.1e100.net (172.217.10.14): icmp_seq=2 ttl=51 time=93.5 ms
64 bytes from lga34s12-in-f14.1e100.net (172.217.10.14): icmp_seq=3 ttl=51 time=93.5 ms

--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 93.519/93.551/93.592/0.030 ms

Prüfpunkt 6: Überprüfen Sie die WLAN-Verbindung wlan0 :

rpi ~$ sudo systemctl start [email protected]
rpi ~$ sudo iw dev wlan0 info
Interface wlan0
        ifindex 3
        wdev 0x1
        addr b8:27:eb:06:e8:8b
        ssid RPiNet
        type AP
        wiphy 0
        channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
        txpower 31.00 dBm

rpi ~$ ip -4 addr show dev wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.4.1/24 brd 192.168.4.255 scope global wlan0
       valid_lft forever preferred_lft forever

Überprüfen Sie WLAN auf Ihrem Handy. Du solltest finden RPiNetund du kannst dich damit verbinden. Ihr Mobiltelefon kann nicht mit dem Internet verbunden werden, da das Routing noch nicht konfiguriert ist.

Nächster Schritt: Aktivieren Sie NAT für die Internetverbindung. Um NAT zu konfigurieren, müssen Sie den Dienst wpa_supplicant folgendermaßen erweitern:

rpi ~$ sudo systemctl edit [email protected]

Fügen Sie im leeren Editor diese Anweisungen ein, speichern Sie sie und beenden Sie den Editor:

[Service]
ExecStartPre=/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
ExecStopPost=-/sbin/iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Dann mach:

rpi ~$ sudo systemctl daemon-reload
rpi ~$ sudo systemctl restart systemd-networkd.service
rpi ~$ sudo systemctl restart [email protected]

Prüfpunkt 7: Jetzt sollten Sie mit dem Mobiltelefon ins Internet gelangen können.

Ingo
quelle
@Wim Du hast in einer gelöschten Antwort gefragt: "Wie geht das mit dem neuen Raspbian Release Buster?" Diese Antwort "━━━ Installation Schritt für Schritt mit Checkpoints prüfen ━━━" ist nicht die richtige, wenn Sie einen Access Point einrichten möchten. Verwenden Sie dazu die andere Antwort "━━━ Access Point einrichten ━━━" hier auf dieser Seite. Es funktioniert auch mit Raspbian Buster. Ich habe es gerade überprüft.
Ingo