Como evitar o encaminhamento de portas?

1

Estou fazendo programação de soquete UDP em C . Para ouvir uma porta, preciso encaminhar as portas no meu roteador. Minha pergunta é como evitar fazer isso e ainda ser capaz de se comunicar pela internet, se não for possível com sockets, qual é o nível mais baixo possível? Em outras palavras, cada dispositivo pode ouvir um servidor http, então o http é o único caminho desbloqueado para ir?

    
por Fuel 23.09.2018 / 18:05

1 resposta

2

Normalmente, seu ISP fornece um único endereço IP e seu roteador doméstico faz a conversão de endereços de rede (NAT) para fazer com que seu provedor acredite que todos os dispositivos em sua rede doméstica são apenas um único dispositivo. com o mesmo endereço do próprio roteador.

Por causa disso, se alguém quiser entrar em contato com sua rede doméstica pelo lado de fora, o roteador precisará "encaminhar uma porta" para o dispositivo em sua rede doméstica onde o serviço está sendo executado, porque o único endereço IP visível do lado de fora é o endereço IP do roteador.

Se você não quiser isso, a única alternativa é executar o serviço diretamente no roteador ou desconectar o roteador do provedor e, em vez disso, conectar o computador onde os serviços são executados diretamente (se tiver o hardware a fazer assim).

Não há outra maneira, não importa o protocolo que você usa.

Você também pode pagar seu ISP para fornecer seu mais de um endereço IPv4 (isso será caro). Ou, se o seu ISP fornecer um prefixo global IPv6, cada um dos dispositivos da sua rede doméstica terá seu próprio endereço IPv6, que pode ser acessado de fora. Portanto, não há NAT, nenhum redirecionamento de porta é necessário, mas só funcionará para o IPv6.

OTOH, configurar o encaminhamento de porta não é exatamente magia negra, então faça isso.

Editar

Quando você "visita um site", ou seja, seu cliente http local contatará o servidor http remoto, o NAT no roteador reescreverá o endereço de origem do pacotes de saída do endereço do seu dispositivo privado para o endereço IP do ISP. Ele também se lembrará de que um dispositivo local abriu uma conexão de saída e, quando chegam os pacotes de entrada que pertencem a essa conexão, ele reconfigurará o endereço de destino e os enviará ao dispositivo local. Isso é o que o NAT é.

Portanto, para conexões de saída do seu dispositivo local, você não precisa de encaminhamento de porta. NAT lida com isso para você. Para conexões recebidas , por exemplo Se você executar um http server , precisará informar ao seu roteador "por favor, encaminhe a porta 80 para o seguinte dispositivo local".

How can i open the port without accesing router settings?

Para conexões recebidas , você não pode. Como eu já tentei explicar.

Editar

Se você usar programas de exemplo do Google para UDP, sempre haverá um servidor em uma porta e um cliente não ouvindo, mas entrando em contato com o servidor (e depois que o servidor e o cliente podem trocar pacotes em qualquer direção). Portanto, "como você recebe informações sem ouvir uma porta" é que você escreve o cliente, não o servidor, e o servidor pode enviar dados para o cliente, para que o cliente "receba informações".

Você não pode executar o servidor por trás do NAT sem o encaminhamento de porta. Período. Não importa quantas vezes você pergunte. Não para TCP, não para UDP, não "usando um protocolo de baixo nível".

Se você não quiser habilitar o encaminhamento de porta na GUI do roteador: Muitos roteadores permitem que você defina o encaminhamento de porta, às vezes até mesmo o encaminhamento temporário de porta, via UPnP. Seu roteador pode ou não ter esse recurso.

Existem também outros truques, como primeiro entrar em contato com um tipo geral de servidor, que então estabelecerá uma conexão com algum outro ponto por trás do NAT (veja, por exemplo, o STUN protocolo).

Mas se você estiver por trás do NAT, primeiro terá que entrar em contato com um servidor na Internet "real". Este servidor estará escutando em uma porta, seu cliente não estará. Ou, se você tiver um servidor ouvindo uma porta, precisará configurar o encaminhamento de porta. Não há outra escolha. Viva com isso.

    
por 23.09.2018 / 18:16