Estou tentando testar se posso acessar uma porta específica em um servidor remoto (ao qual tenho acesso) através do UDP.
Ambos os servidores estão voltados para a Internet. Estou usando o netcat para ter uma certa porta ouvindo.
Em seguida, uso o nmap para verificar se essa porta está aberta, mas não parece estar.
Iptables está desligado.
Alguma sugestão para que isso possa ser? Acabarei configurando um túnel VPN, mas como sou muito novo nos túneis, quero ter certeza de que tenho conectividade na porta UDP 1194 antes de avançar.
centos
udp
networking
Bloquear
fonte
fonte
Respostas:
Não existe uma porta UDP "aberta", pelo menos não no sentido que a maioria das pessoas costuma pensar (que responde a algo como "OK, aceitei sua conexão"). O UDP não possui sessão, portanto, "uma porta" (leia-se: o protocolo UDP na pilha de IPs do sistema operacional) nunca responderá "sucesso" por si próprio.
As portas UDP possuem apenas dois estados: escutando ou não. Isso geralmente se traduz em "ter um soquete aberto por um processo" ou "não ter nenhum soquete aberto". O último caso deve ser fácil de detectar, pois o sistema deve responder com um pacote de Destino Inacessível do ICMP com o código = 3 (Porta inacessível). Infelizmente, muitos firewalls podem descartar esses pacotes; portanto, se você não receber nada de volta, não terá certeza se a porta está nesse estado ou não. E não vamos esquecer que o ICMP também não tem sessão e não faz retransmissões: o pacote Port inacessível pode muito bem estar perdido em algum lugar da rede.
Uma porta UDP no estado "escutando" pode não responder de maneira alguma (o processo que escuta apenas recebe o pacote e não transmite nada) ou pode enviar algo de volta (se o processo agir na recepção e se agir por responder via UDP ao IP do remetente original: porta). Então, novamente, você nunca sabe ao certo qual é o estado se não receber nada de volta.
Você diz que pode ter o controle do host de recebimento: isso permite que você construa seu próprio protocolo para verificar a acessibilidade da porta UDP: basta colocar um processo no host de recebimento que escutará na porta UDP fornecida e responderá de volta (ou enviará você um email, ou apenas surte e
unlink()
tudo no sistema de arquivos host ... qualquer coisa que desperte sua atenção fará).fonte
Para testar se a porta udp está respondendo, use
netcat
.Um exemplo da página do manual :
Obviamente, se um firewall estiver em uso
DROP
, o que normalmente ocorre quando se lida com gateways com acesso à Internet, você não recebe uma resposta ICMP.fonte
yum install nc
(para centos)nc -ul 6111
nc -u <server> 6111
Nota: Quando você executa o
nc -ul
comando no servidor, ele se conecta apenas à primeira conexão que chega a ele. Como eu descobri, você não pode alternar entre os servidores que executam ping sem parar e reiniciarnc -ul
. De fato, se você ^ C parar o cliente (nc -u ...
), também não poderá reiniciar o cliente sem antes reiniciar o ouvinte do servidor.fonte
Testar portas UDP abertas com o nmap é repleto de perigos - não há handshake de três vias para indicar abertura. A menos que o processo de escuta responda ao que o nmap enviar, não há como o nmap diferenciar entre uma porta aberta que não está respondendo e uma porta filtrada.
Muito mais fácil é apenas ouvir em uma extremidade o netcat e usar o netcat na outra extremidade para enviar pacotes e ver que eles chegam na outra extremidade. Faça as duas coisas apenas tenha certeza. Você também pode
tcpdump
ver os pacotes chegando aonde precisam ir.fonte
Eu estava tendo um problema semelhante e encontrei uma boa solução usando o netcat aqui: http://en.wikipedia.org/wiki/Netcat#Test_if_UDP_port_is_open:_simple_UDP_server_and_client
nc -vzu <host> <port>
Consegui confirmar que minha porta UDP estava aberta e, em seguida, pude testar meu código real.
fonte
Você pode verificar portas udp usando o seguinte comando
fonte
Você pode fazer isso com
netcat
(nc) ouiperf
, supondo que você tenha outra máquina para testar fora da rede. Minha escolha seria umanmap
varredura UDP de um sistema fora do seu ambiente. Qual foi a sua linha de comando do nmap? Existem firewalls de hardware ou outros dispositivos no mix?fonte
Eu tenho uma abordagem simplória. Se o servidor UDP não retornar os dados esperados, simplesmente paro de coletar dgrams, assumindo que ele caiu:
fonte