
Tenho um caso de uso em que tenho 6 dos meus raspberry pi atrás de um firewall privado e preciso acessá-los em meus sistemas locais. Então eu criei uma arquitetura mostrada abaixo
- Do meu ssh reverso RPI para uma porta específica do meu servidor em nuvem
E do meu sistema local conecte-se aos RPIs usando meu servidor em nuvem como um 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, usei comandos SSH diretos, mas me deparei com problemas como a conexão ficar obsoleta e sem resposta após um período de tempo. Então, mudei para autossh
. Comecei um systemd
para fazer esta operação.
autossh -Nf -M 0 -o ServerAliveInterval=120 -o ServerAliveCountMax=3 -R 2101:127.0.0.1:22 root@my-server-ip
Isso funciona bem, para meus 6 dispositivos. Mas quando tento conectar mais dispositivos, o túnel não parece estar conectando (ou seja) o túnel estabelecido a partir do rpi, mas nada no netstat -lnpt
servidor em nuvem.
Agora preciso saber se esta é a abordagem correta para resolver este caso de uso. Dado isso, esta contagem de 6 RPIs pode ir até 20 ou 30 no futuro. Alguma sugestão para melhoria?