Podemos usar o seguinte para testar a porta telnet VIA; no exemplo a seguir, testamos a porta 6667:
[root@kafka03 ~]# telnet kafka02 6667
Trying 103.64.35.86...
Connected to kafka02.
Escape character is '^]'.
^CConnection closed by foreign host
Como em algumas máquinas não podemos usar telnet (por motivos internos) quais são as alternativas para checar portas, como telnet?
Netcat (
nc
) é uma opção.-z
= define nc para simplesmente procurar por daemons de escuta, sem realmente enviar nenhum dado para eles-v
= habilita o modo detalhadoSe estiver usando o Bash Shell, você pode usar seu recurso para verificar se uma porta está aberta ou fechada:
Observe que, se o servidor não responder após 1 segundo, o tempo limite é atingido, os comandos são
'
interrompidos e, portanto, nada é impresso.O padrão ouro é sem dúvida
nmap
( nmap.org ), mas normalmente requer root para “melhores resultados”. No entanto, binários autônomos estão disponíveis e é possível executá-lo como um usuário sem privilégios, apenas com recursos degradados.syn
Por exemplo, em vez de uma varredura furtiva (-sS
), ele retorna para uma varredura de conexão TCP padrão (-sT
). Isso é funcionalmente equivalente ao netcat, mas com os bons recursos multi-host e acelerados que ele possui.Um exemplo:
'curl' pode tornar a vida mais fácil. Nenhuma raiz requer; curl está prontamente disponível em todos os sistemas linux
1) Se a porta não estiver aberta, aparecerá abaixo da saída
2) Se a porta estiver aberta, a saída será exibida abaixo
CtrlCsair
Se Perl for uma opção, você pode usar seu
IO::Socket
módulo para testar uma conexão com um host e uma porta específicos; o script abaixo codifica o TCP como o protocolo (que é o que o telnet usaria):Saída de amostra de uma porta fechada:
Saída de amostra de uma porta aberta:
Arquivo de dispositivo /dev/tcp e /dev/udp podem ser usados em vez de telnet. Exemplo:
echo 0 > /dev/tcp/103.64.35.86/6667
. Em seguida, verifique o status de saída usandoecho $?
. Se o status de saída for 0, a porta estará aberta. Se o status de saída for diferente de zero, a porta será fechada. Para verificar pacotes udp, useecho 0 > /dev/udp/103.64.35.86/6667
.Achei rápido e simples dessa maneira, através do interpretador Python (de https://serverfault.com/a/500062/168647 ):
Se isso não gerou um erro até agora, a conexão está ok.
openssl s_client -connect host:port
este é outro comando que você pode usar.