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…
últimas postagens
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.
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.
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.
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.