
Tengo un caso de uso en el que tengo 6 de mis Raspberry Pi detrás de un firewall privado y necesito acceder a ellos desde mis sistemas locales. Entonces se me ocurrió la arquitectura que se muestra a continuación.
- Desde mi rpi ssh inverso a un puerto específico de mi servidor en la nube
Y desde mi sistema local conéctese a los rpi usando mi servidor en la nube como jumpbox (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 | +--------+ | +---------+ +----------------+
Inicialmente, utilicé comandos SSH directos, pero encontré problemas como que la conexión se vuelve obsoleta y no responde después de un período de tiempo. Entonces, me mudé a autossh
. Empecé a systemd
hacer esta operación.
autossh -Nf -M 0 -o ServerAliveInterval=120 -o ServerAliveCountMax=3 -R 2101:127.0.0.1:22 root@my-server-ip
Esto funciona bien, para mis 6 dispositivos. Pero cuando intento conectar más dispositivos, el túnel no parece conectarse (es decir, el túnel establecido desde rpi, pero no hay nada en netstat -lnpt
el servidor de la nube).
Ahora necesito saber si este es el enfoque correcto para resolver este caso de uso. Teniendo en cuenta eso, este recuento de 6 rpm puede aumentar a 20 o 30 en el futuro. ¿Alguna sugerencia de mejora?