
Ich habe einen Anwendungsfall, bei dem ich 6 meiner Raspberry Pi hinter einer privaten Firewall habe und von meinen lokalen Systemen aus auf sie zugreifen muss. Also habe ich mir die unten gezeigte Architektur ausgedacht
- Von meinem RPI Reverse SSH zu einem bestimmten Port meines Cloud-Servers
Und von meinem lokalen System aus verbinde ich mich mit den RPIs, indem ich meinen Cloud-Server als Jumpbox verwende (SSH ProxyJump).
Firewall +--------+ | +---------+ +----------------+ | Rpi 1 |-> 2101/tcp ->| -> | | <- 22/tcp - | Local System 1 | +--------+ | | | +----------------+ | | | +--------+ | | Cloud | +----------------+ | Rpi 2 |-> 2201/tcp ->| -> | Server | <- 22/tcp - | Local System 2 | +--------+ | | | +----------------+ ... | | | +--------+ | | | +----------------+ | Rpi 6 |-> 2601/tcp ->| -> | | <- 22/tcp - | Local System 3 | +--------+ | +---------+ +----------------+
Anfangs habe ich direkte SSH-Befehle verwendet, aber ich hatte Probleme, beispielsweise dass die Verbindung nach einer gewissen Zeit veraltet und nicht mehr reagiert. Also wechselte ich zu autossh
. Ich habe einen gestartet, systemd
um diesen Vorgang durchzuführen.
autossh -Nf -M 0 -o ServerAliveInterval=120 -o ServerAliveCountMax=3 -R 2101:127.0.0.1:22 root@my-server-ip
Das funktioniert bei meinen 6 Geräten einwandfrei. Aber wenn ich versuche, weitere Geräte anzuschließen, scheint der Tunnel keine Verbindung herzustellen (d. h.) Tunnel vom RPI hergestellt, aber auf netstat -lnpt
dem Cloud-Server passiert nichts.
Jetzt muss ich wissen, ob dies der richtige Ansatz zur Lösung dieses Anwendungsfalls ist. Unter diesen Umständen kann die Anzahl von 6 RPIs in Zukunft auf 20 oder 30 steigen. Irgendwelche Verbesserungsvorschläge?