Como experimentar a perfuração UDP usando o Ncat no Linux?

2

Eu gostaria de ver o furo UDP em ação. Eu testei isso no Linux, usando o Ncat. Aqui está o que eu tentei:

  1. Abra a porta 1234 / UDP no host A e a porta 12345 / UDP no firewall do host B (ainda estou atrás do NAT, mas se o pacote chegar até mim, pelo menos o kernel não o descartará)
  2. sudo ncat -u -p 1234 B 12345 no host A, tente enviar um pacote para fazer um furo
  3. sudo ncat -u -p 12345 Um 1234 no host B, tente enviar outro pacote para fazer um furo
  4. Tente se comunicar do host A para o B e vice-versa e veja se nenhum pacote chega ao outro lado.

O que eu poderia estar fazendo de errado? Eu sei que o host A pode criar um buraco para o host B porque eu observei um comunicador P2P fazendo isso, mas eu ainda não tinha verificado o contrário.

    
por d33tah 24.11.2014 / 21:22

2 respostas

0

Eu sugeriria começar tirando o host B do firewall, ou apenas fazendo um para um NAT para hospedar B (todos os protocolos incluindo TCP e UDP) para expô-lo completamente. Ou, pelo menos, expor a porta 12345 / UDP no host B. Deixe o host A dentro do firewall, sem necessidade de abrir portas. Envie pacotes de A para B, depois de B para A. Se A receber pacotes UDP de B, você terá experimentado com sucesso a perfuração no firewall do host A.

Então, meu conselho é tentar perfurar um firewall primeiro.

Eu não acho possível perfurar entre dois hosts completamente cobertos pelo NAT, a menos que haja um terceiro host C que possa ser acessado pelas duas máquinas e enganar os firewalls para encaminhar os pacotes UDP dentro da rede.

Espero que isso ajude

    
por 24.11.2014 / 22:38
0

O NAT reescreve o IP de origem e a porta de origem. Você pode perguntar a um servidor STUN qual é o seu IP externo e porta. Felizmente, a maioria dos dispositivos NAT torna a porta de origem previsível. Você pode verificar isso verificando vários servidores STUN. Seu IP e porta de origem devem ser os mesmos.

Para que isso funcione para você, faça com que ambos os seus hosts façam solicitações de STUN para obter os IPs e portas externos. O NAT reescreve a porta de origem, portanto, você não precisa usar root nem definir a porta de origem.

A> ncat -u [B external IP] [B external port] perfura um furo em A
B> ncat -u [A external IP] [A external port] conecta através do furo em A

    
por 12.02.2018 / 19:42

Tags