6 Utilitário Linux para testar a conectividade de rede

Quer saber como verificar a conectividade entre dois pontos de extremidade de rede?

Uma das tarefas comuns do administrador de sistema é verificar a conectividade para solucionar problemas de rede. Pode ser algo como o aplicativo não pode se conectar ao serviço de back-end, não é possível buscar dados de URL externo, verificar se o fluxo está aberto, etc.

Seja o que for, os seguintes utilitários/comandos irão ajudá-lo. Eles são testados no CentOS e não vejo motivo para não funcionar em outra distribuição Linux.

Vamos explorar…

telnet

Um dos comandos amplamente utilizados para testar a conectividade essencial entre servidores, servidor para o IP de outro dispositivo de rede. A sintaxe do comando é fácil.

telnet $destinationIP $PORT

Digamos que você queira testar se pode se conectar à porta 8080 no endereço IP 10.0.0.1; então o comando seria.

telnet 10.0.0.1 8080

Se não houver nenhum problema na conexão, você deverá ver a mensagem conectada.

Trying 10.0.0.1...
Connected to 10.0.0.1.
Escape character is '^]'.

Nota: se você receber um comando não encontrado ao executar o telnet, precisará instalar o telnet conforme explicado aqui.

Na maioria dos cenários, o telnet deve ajudar. No entanto, se você precisar de alguma outra opção, aqui estão algumas alternativas de telnet.

ncat ou nc

Ncat (também conhecido como nc) é um poderoso utilitário de rede com muitos recursos, como vincular e aceitar uma conexão, executar comandos remotamente, gravar e ler dados, etc. Funciona em IPv4 e IPv6, ambos.

  Como instalar o Lumina do BSD no Linux

Para fazer um teste simples para verificar se a porta está aberta ou não, você executará o seguinte.

nc -vz $HOSTNAME $PORT

Vamos dar um exemplo de teste da porta 443 em etechpt.com.com.

[[email protected] ~]# nc -vz etechpt.com.com 443
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 104.25.133.107:443.
Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds.
[[email protected] ~]#

Conforme mencionado, você também pode usar nc para vincular a conexão para escutar em uma porta específica. Isso pode ser útil quando você não possui serviços reais em execução, mas deseja garantir a existência de conectividade.

Para começar a ouvir em uma porta:

nc -l $PORTNUMBER

Ele vinculará a porta a um determinado número.

Se ncat não estiver instalado, você pode fazer isso com yum install nc em servidores CentOS/RHEL.

wget

wget é um comando útil para baixar/testar HTTP, HTTPS e FTP. Se você trabalha como engenheiro da Web ou lida frequentemente com problemas relacionados à Web, o wget é seu amigo. Testar usando wget é simples.

wget $URL

Aqui está um exemplo de ferramentas de teste.etechpt.com.com

[[email protected] ~]# wget tools.etechpt.com.com
--2019-05-09 20:40:01--  http://tools.etechpt.com.com/
Resolving tools.etechpt.com.com (tools.etechpt.com.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ...
Connecting to tools.etechpt.com.com (tools.etechpt.com.com)|104.25.134.107|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://tools.etechpt.com.com/ [following]
--2019-05-09 20:40:01--  https://tools.etechpt.com.com/
Connecting to tools.etechpt.com.com (tools.etechpt.com.com)|104.25.134.107|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: 'index.html.2'

    [ <=>                                                                                                                                  ] 15,139      --.-K/s   in 0.001s  

2019-05-09 20:40:02 (12.8 MB/s) - 'index.html.2' saved [15139]

[[email protected] ~]#

Se mostrar conectado significa que não há problema de conectividade.

  Como usar o comando cd no Linux

Verifique isso para ver alguns dos exemplos de comando wget usados ​​com frequência.

ondulação

Um curl é uma ferramenta multifuncional.

Você sabia que pode fazer telnet para uma porta usando curl?

Bem, agora você sabe.

curl -v telnet://$IP:$PORT

O seguinte é um exemplo de trabalho.

[[email protected] ~]# curl -v telnet://chandan.io:443
* About to connect() to chandan.io port 443 (#0)
*   Trying 104.31.68.106...
* Connected to chandan.io (104.31.68.106) port 443 (#0)

E, quando não houver porta de escuta ou problema de firewall, você verá tentando…

[[email protected] ~]# curl -v telnet://chandan.io:4434
* About to connect() to chandan.io port 4434 (#0)
*   Trying 104.31.68.106...

Você também pode usar curl para baixar os dados. Ele suporta vários protocolos – HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER, etc.

nmap

Uma ferramenta popular com centenas de recursos. Muitas vezes, isso é considerado uma ferramenta de segurança, nmap permite testar um único IP/porta ou no intervalo.

Para testar uma única porta

nmap -p $PORT $IP

Um exemplo de teste da porta 443 em siterelic.com

[[email protected] ~]# nmap -p 443 siterelic.com
Starting Nmap 7.70 ( https://nmap.org ) at 2019-05-10 06:55 UTC
Nmap scan report for siterelic.com (104.27.174.50)
Host is up (0.0079s latency).
Other addresses for siterelic.com (not scanned): 104.27.175.50 2606:4700:30::681b:ae32 2606:4700:30::681b:af32

PORT    STATE SERVICE
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds
[[email protected] ~]#

Veja a coluna de estado. Se você vir aberto, significa que a conexão está ok. E, se o estado for filtrado, isso significa que a conectividade não existe.

  Como atualizar o Fedora Linux

Ping

Um dos comandos amplamente utilizados é verificar se um host remoto está respondendo ao ICMP ECHO_REQUEST ou não. Lembre-se de que isso pode não fornecer resultados precisos quando o ICMP é bloqueado no firewall da rede remota. Supondo que não seja o caso, você pode executar ping para IPv4 ou terminal de rede IPv4 conforme abaixo.

ping $ipaddress
ping $url

Por exemplo, resultado de sucesso de etechpt.com.com

[email protected] ~ % ping etechpt.com.com
PING etechpt.com.com (104.27.119.115): 56 data bytes
64 bytes from 104.27.119.115: icmp_seq=0 ttl=53 time=7.944 ms
64 bytes from 104.27.119.115: icmp_seq=1 ttl=53 time=8.870 ms

Por exemplo, resultado de falha de IP interno.

[email protected] ~ % ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1

Se o endpoint suportar IPv6, você pode usar o comando ping6 conforme abaixo.

[email protected] ~ % ping6 etechpt.com.com
PING6(56=40+8+8 bytes) 2a01:4b00:88e4:8700:d8ca:bf50:159c:2a1d --> 2606:4700:20::681b:7673
16 bytes from 2606:4700:20::681b:7673, icmp_seq=0 hlim=250 time=8.650 ms
16 bytes from 2606:4700:20::681b:7673, icmp_seq=1 hlim=250 time=8.738 ms

Se você precisar fazer ping remoto pela Internet, poderá usar a ferramenta de ping online.

Conclusão

O telnet está sendo desativado na versão mais recente do Linux. Graças à alternativa telnet acima.

Se você é novo no Linux e quer aprender, confira este curso udemy.