Verwenden Sie SSH, wenn mehrere Rasberries mit dem Router verbunden sind

Verwenden Sie SSH, wenn mehrere Rasberries mit dem Router verbunden sind

Ich habe also mehrere Raspberry Pi 4Bs (8) über Ethernet-Kabel mit meiner FritzBox verbunden. Alle Pis haben SSH in ihren Einstellungen aktiviert und sind im lokalen Netzwerk SSH-fähig, indem Sie "ssh[email geschützt]". Ich habe für meinen Router einen DynDNS-Dienst eingerichtet, so dass ich ihn erreichen kann, ohne die genaue IP-Adresse kennen zu müssen. Das hat auch gut funktioniert.

Dann habe ich die Option „Zugriff zulassen“ der FritzBox verwendet, um die Ports 22 und 3389 an einen der RPis weiterzuleiten. Jetzt kann ich auf diesem SSH und MS Remote Desktop verwenden.

Problem: Alle anderen RPis haben Headless-Installationen von Raspberry OS Lite und ich brauche für sie auch SSH aus dem Internet. Da der erste RPi aber bereits Port 22 verwendet, kann ich keine anderen RPis mit Port 22 verwenden.

Es gibt eine Methode namens Port-Redirecting, von der ich im Internet schon mehrfach gelesen habe. Aber niemand hat sie wirklich einfach erklärt. Also muss ich mir einen Weg einfallen lassen, dies zu tun:

Router

|-> externer Port 2200 -> Port 22 von Pi Nr. 0

|

|-> externer Port 2201 -> Port 22 von Pi Nr. 1

|

|-> externer Port 2202 -> Port 22 von Pi Nr. 2

|

|-> externer Port 2203 -> Port 22 von Pi Nr. 3

Aber ich habe keine Ahnung wie das funktioniert ;D

Welche Konfigurationsdatei muss ich auf dem RPi bearbeiten bzw. welche Einstellungen muss ich am Router ändern, um dies zu erreichen?

Danke für eine Antwort :)

(PS: Ich bin ein Netzwerk-Neuling. Ich programmiere seit etwa 2 Jahren als Hobby Java-Software für PCs und manchmal Discord-Bots. Aber ich habe keine Ahnung, wie dieser ganze Internetkram funktioniert, und ich möchte es lernen XD)

Antwort1

Es gibt eine Methode namens Port-Redirecting, von der ich im Internet schon mehrmals gelesen habe. Aber niemand hat sie wirklich einfach erklärt.

Bei den meisten Routern ist das Zulassen des externen Zugriffs auf einen internen IPv4-Host buchstäblich dieselbe Funktion, unabhängig davon, ob der Port geändert werden muss oder nicht. Wenn Ihr Raspberry Pi eine private IP-Adresse hat, muss der Router ohnehin NAT durchführen, sodass die „Portumleitung“ Teil davon ist und nicht wirklich eine separate Sache.

In Ihrem Fall scheint die FRITZ!Box die Angabe unterschiedlicher „externer“ und „interner“ Ports zu ermöglichen, wenn Sie im gleichen Abschnitt „Zugriff zulassen“ die Option „Andere Anwendung“ auswählen.

Nach Screenshots vorgehenbei Google gefundendas wäre:

  • Anwendung: [Andere Anwendung]
  • Protokoll: [TCP]
  • Port zum Gerät: [22] bis [22]
  • Extern angeforderter Port (IPv4): [2201]

(Das Feld ist als IPv4-spezifisch gekennzeichnet, da Sie bei IPv6 eine direkte Verbindung mit der Adresse des Pi und nicht mit der Adresse des Routers herstellen würden. Es gäbe also keine Trennung zwischen den Ports „extern“ und „intern/zum Gerät“.)

Welche Konfigurationsdatei muss ich auf dem RPi bearbeiten bzw. welche Einstellungen muss ich am Router ändern, um dies zu erreichen?

Normalerweise ist es einsoderdas andere, je nachdem was Sie möchten.

  • Router
    |-> externer Port 2200 -> Port22von Pi Nr. 0
    |-> externer Port 2201 -> Port22von Pi Nr. 1
    |-> externer Port 2202 -> Port22von Pi Nr. 2
    

    Dies ist wahrscheinlich das, was Sie als „Portumleitung“ bezeichnen. Der Router muss die Ports übersetzen, und am Pi selbst sind keine Änderungen erforderlich.

    Es ist im Allgemeinen spezifisch für IPv4; obwohl es bei IPv6 technisch immer noch möglich ist, wird es als etwas angesehen, das „vermieden werden sollte“. (Das liegt hauptsächlich daran, dass bei IPv6jedeIhrer Pi's hättenseine eigeneexterne Adresse, sodass das Kollisionsproblem mit Port 22 hinfällig wäre.)

    Bei FRITZ!Box scheint dies unter der Option „Andere Anwendung“ auf derselben Seite „Zugriff erlauben“ versteckt zu sein, die Sie bereits verwenden.

  • Router
    |-> externer Port 2200 -> Port2200von Pi Nr. 0
    |-> externer Port 2201 -> Port2201von Pi Nr. 1
    |-> externer Port 2202 -> Port2202von Pi Nr. 2
    

    Dies erfordert keine Umschreibung vom Router (funktioniert bei IPv4 und IPv6 gleich), erfordert aber, dass der SSH-Dienst auf dem Pi auf dem entsprechenden Port lauscht.

    Unter Linux ist dies die PortOption /etc/ssh/sshd_config– Sie sollten sie wahrscheinlich zweimal hinzufügen, sowohl für den Standardport 22 als auch für Ihren benutzerdefinierten Port 2200.

DukönnteNatürlich könnte man beides tun, z. B. den externen Port 2200 auf den Pi-Port 3300 umschreiben, aber das ist einfach unnötig.

Es besteht auch die Möglichkeit,nichtMachen Sie die anderen Pi's überhaupt extern zugänglich. Stattdessen könnten Sie ssh -Jbeispielsweise über den 0. Pi eine Verbindung zu allen herstellen ssh -J public.ip lan.ip.pi2.

verwandte Informationen