Como testar se uma porta do host remoto está acessível ou não no Unix

3

No Windows, eu vou para a linha de comando e 'telnet' para verificar a porta. Como fazer o mesmo no Unix?

Parece que algumas pessoas usam os comandos 'tcpdump port'. Isso está monitorando o tráfego em tempo real? Obrigado.

    
por Stan 15.07.2010 / 02:16

4 respostas

10

nmap é uma ótima ferramenta de propósito geral para essas coisas e muito mais.

nmap host.domain.tld (ou nmap host para uma máquina local, ou nmap <ipaddr> para verificar uma máquina por endereço não nome) listará quais portas comuns estão abertas.

nmap 192.168.23.1-254 -p 22,80,443 varrerá um intervalo de hosts por endereço para ver se as portas TCP normalmente associadas ao SSH, HTTP e HTTPS estão abertas.

Veja man nmap para muitas outras opções - é a pia da cozinha das ferramentas de verificação de rede.

Você pode não ter o nmap instalado no momento, mas ele está em praticamente todos os repositórios padrão das distribuições. Para as variantes do debian ou ubuntu aptitude install nmap para instalá-lo, ou encontre-o no gerenciador de pacotes GUI de sua escolha. Se não estiver disponível facilmente no seu sistema, obtenha mais informações do link

Você também pode usar a mesma técnica de cliente telnet com a qual você já está familiarizado, pois ela também está disponível e geralmente é instalada em um dos pacotes padrão, mas nmap é uma ferramenta que vale a pena conhecer ser útil para diagnosticar problemas de rede, apenas verificar se as coisas estão como deveriam, e assim por diante. Existem também alguns front-ends gráficos decentes, se você preferir interagir com ele longe da linha de comando.

    
por 15.07.2010 / 02:20
5

Se você estiver usando o bash, as páginas man man podem ser gravadas em / dev / tcp / HostNameOrIP / port. Eu usei isso algumas vezes e se a porta remota estiver aberta, não há resposta. Se o sistema não puder se conectar à porta remota, ele informará o motivo

[kevin@box ~]$ echo -n > /dev/tcp/www.yahoo.com/80
[kevin@box ~]$ nslookup www.no-such-domain.com
Server:         127.0.0.1
Address:        127.0.0.1#53

** server can't find www.no-such-domain.com: NXDOMAIN

[kevin@box ~]$ echo -n > /dev/tcp/www.no-such-domain.com/80
-bash: www.no-such-domain.com: Name or service not known
-bash: /dev/tcp/www.no-such-domain.com/80: Invalid argument
[kevin@box ~]$ echo -n > /dev/tcp/192.168.3.3/80    #no such server on my network
-bash: connect: No route to host
-bash: /dev/tcp/192.168.3.3/80: No route to host
[kevin@box ~]$ echo -n > /dev/tcp/192.168.3.1/88    #nothing listening on port 88
-bash: connect: Connection refused
-bash: /dev/tcp/192.168.3.1/88: Connection refused
[kevin@box ~]$
    
por 15.07.2010 / 03:31
3

Você também pode usar telnet em uma máquina * nix.

    
por 15.07.2010 / 03:37
0

Para testar se a porta está acessível no Bash, você pode usar o seguinte comando de uma linha:

$ </dev/tcp/example.com/80 && echo Port is open || echo Port is closed
Port is open

Para verificar manualmente, use o comando telnet (semelhante ao Windows).

    
por 16.03.2016 / 12:29