por exemplo, eu poderia executar um servidor web no meu computador conectado ao roteador, o que sugere que ele não possui um endereço IP público. Como posso enviar dados de outro cliente ou servidor?
O soquete da Web parece promissor, mas o que eu quero é uma solução com bom suporte na linha de comando e que não exija alterações nas configurações do roteador, como encaminhamento de porta.
Responder1
Encaminhamento de porta
O encaminhamento de porta é de longe a solução mais fácil.
Túnel SSH reverso
Outra forma seria envolver um servidor terceirizado publicamente acessível como retransmissor. Você teria que iniciar uma conexão com este servidor de terceiros a partir do servidor web (já que seu roteador bloqueia conexões de entrada) e então usar essa conexão para retransmitir o tráfego HTTP através do servidor de terceiros.
Isso quase certamente pode ser feito usando Tunelamento SSH
Frequentemente preciso obteracesso a uma máquina atrás de um firewallpara fazer algum desenvolvimento web, mas não tenho uma VPN disponível. Não é um problema – basta usar um túnel SSH reverso. Ao final deste tutorial, seremos capazes de fazer SSH para o servidor remoto, bem comovisualizar quaisquer páginas da web às quais o servidor tenha acesso.
(minha ênfase)
Responder2
Como alternativa ao tunelamento SSH, você pode considerar o tunelamento IPv6. eu usogogo6/freenet6 como provedor ipv6(embora existam outros provedores). No Windows, o cliente geralmente funciona. No Linux, você precisará compilar o cliente. Feito isso, você poderá acessar o sistema através de qualquer sistema que suporte ipv6.
A vantagem de configurar um túnel IPv6 é que você pode fazer as coisas como se fosse um endereço IP público normal, porque é.