Então, eu tenho vários Raspberry Pi 4Bs (8) conectados ao meu FritzBox via cabos ethernet. Todos os Pi's têm SSH ativado em suas configurações e são compatíveis com SSH na rede local digitando "ssh [email protected]". Configurei um serviço dynDNS para meu roteador, para que eu possa alcançá-lo sem precisar saber o endereço IP exato. Isso funcionou bem também.
Então usei a opção "Permitir Acesso" do FritzBox para encaminhar a porta 22 e 3389 para um dos RPi's. Agora posso usar o SSH e a área de trabalho remota do MS nesse.
Problema: Todos os outros RPi's têm instalações sem cabeça do Raspberry OS Lite e eu também preciso de SSH da Internet para eles. Mas como o primeiro RPi já está usando a porta 22, não posso usar nenhum outro RPi com a porta 22.
Existe um método chamado redirecionamento de porta que li várias vezes na internet. Mas ninguém realmente explicou isso facilmente. Então, eu tenho que encontrar uma maneira de fazer isso:
Roteador
|-> porta externa 2200 -> porta 22 do Pi Nr. 0
|
|-> porta externa 2201 -> porta 22 do Pi Nr. 1
|
|-> porta externa 2202 -> porta 22 do Pi Nr. 2
|
|-> porta externa 2203 -> porta 22 do Pi Nr. 3
Mas não faço ideia de como isso funciona ;D
Qual arquivo de configuração devo editar nos RPi's ou quais configurações devo alterar no roteador para conseguir isso?
Obrigado por uma resposta :)
(PS: Eu sou um noob em rede. Eu tenho codificado software java para pc's e às vezes Discord Bots como hobby há cerca de 2 anos. Mas eu não tenho idéia de como tudo isso funciona na internet e eu quero aprender XD)
Na maioria dos roteadores, permitir acesso externo a um host IPv4 interno é literalmente a mesma função, quer a porta precise ser alterada ou não. Se o seu Raspberry Pi tiver um endereço IP privado, o roteador precisará executar o NAT de qualquer maneira, portanto, o "redirecionamento de porta" faz parte dele e não é realmente uma coisa separada.
No seu caso, parece que o FRITZ!Box permite que você entre em diferentes portas "externas" e "internas" se você selecionar 'Outra aplicação' na mesma seção "Permitir acesso".
Indo pelas capturas de tela encontradas no google , isso seria:
(O campo é rotulado como específico do IPv4 porque no IPv6 você se conectaria diretamente ao próprio endereço do Pi em vez do endereço do roteador, para que não houvesse nenhuma separação entre as portas "externa" e "interna/para dispositivo".)
Normalmente é um ou outro, dependendo do que você quer.
Isso é provavelmente o que você chama de "redirecionamento de porta". Requer que o roteador traduza as portas e não requer nenhuma alteração no próprio Pi.
Geralmente é específico para IPv4; embora ainda seja tecnicamente possível no IPv6, é considerado uma coisa "deve ser evitada". (Isso ocorre principalmente porque no IPv6 cada um dos seus Pi teria seu próprio endereço externo, portanto, o problema de colisão da porta 22 seria discutível.)
No FRITZ!Box, isso parece estar oculto na opção "Outro aplicativo" na mesma página "Permitir acesso" que você já está usando.
Isso não requer nenhuma regravação do roteador (funcionando da mesma forma no IPv4 e no IPv6), mas exige que o serviço SSH no Pi escute na porta correspondente.
No Linux, essa é a
Port
opção/etc/ssh/sshd_config
- você provavelmente deve adicioná-la duas vezes, tanto para a porta padrão 22 quanto para sua porta personalizada 2200.É claro que você pode fazer as duas coisas, por exemplo, reescrever a porta externa 2200 para a porta Pi 3300, mas isso é desnecessário.
Há também a opção de não tornar os outros Pi acessíveis externamente. Em vez disso, você pode usar
ssh -J
para se conectar a todos eles através do 0º Pi, por exemplossh -J public.ip lan.ip.pi2
.