6 Utilidad de Linux para probar la conectividad de la red

¿Se pregunta cómo verificar la conectividad entre dos puntos finales de red?

Una de las tareas comunes del administrador de sistemas es verificar la conectividad para solucionar problemas de red. Podría ser algo como que la aplicación no puede conectarse al servicio de back-end, no puede obtener datos de una URL externa, verificar si el flujo está abierto, etc.

Sea lo que sea, las siguientes utilidades/comandos te ayudarán. Se prueban en CentOS y no veo ninguna razón para no trabajar en otra distribución de Linux.

Vamos a explorar…

telnet

Uno de los comandos ampliamente utilizados para probar la conectividad esencial entre servidores, servidor a IP de otro dispositivo de red. La sintaxis del comando es fácil.

telnet $destinationIP $PORT

Digamos que desea probar si puede conectarse al puerto 8080 en la dirección IP 10.0.0.1; entonces el comando sería.

telnet 10.0.0.1 8080

Si no hay problemas para conectarse, debería ver el mensaje conectado.

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

Nota: si obtiene un comando que no se encuentra mientras ejecuta telnet, entonces necesita instalar telnet como expliqué aquí.

En la mayoría de los escenarios, telnet debería ayudar. Sin embargo, si necesita alguna otra opción, aquí hay algunas alternativas de telnet.

ncat o nc

Ncat (también conocido como nc) es una poderosa utilidad de red con muchas características como vincular y aceptar una conexión, ejecutar comandos de forma remota, escribir y leer datos, etc. Funciona en IPv4 e IPv6, ambos.

  Las 5 mejores aplicaciones de edición de video para Linux

Para hacer una prueba simple para verificar si el puerto está abierto o no, ejecutará lo siguiente.

nc -vz $HOSTNAME $PORT

Tomemos un ejemplo de prueba del puerto 443 en kirukiru.es.com.

[[email protected] ~]# nc -vz kirukiru.es.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] ~]#

Como se mencionó, también puede usar nc para vincular la conexión para escuchar en un puerto en particular. Esto puede ser útil cuando no tiene servicios reales ejecutándose pero quiere asegurarse de que exista conectividad.

Para comenzar a escuchar en un puerto:

nc -l $PORTNUMBER

Vinculará el puerto a un número dado.

Si ncat no está instalado, puede hacerlo con yum install nc en servidores CentOS/RHEL.

wget

wget es un comando útil para descargar/probar HTTP, HTTPS y FTP. Si trabaja como ingeniero web o se ocupa a menudo de problemas relacionados con la web, entonces wget es su amigo. Probar usando wget es sencillo.

wget $URL

Aquí hay un ejemplo de testing tools.kirukiru.es.com

[[email protected] ~]# wget tools.kirukiru.es.com
--2019-05-09 20:40:01--  http://tools.kirukiru.es.com/
Resolving tools.kirukiru.es.com (tools.kirukiru.es.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ...
Connecting to tools.kirukiru.es.com (tools.kirukiru.es.com)|104.25.134.107|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://tools.kirukiru.es.com/ [following]
--2019-05-09 20:40:01--  https://tools.kirukiru.es.com/
Connecting to tools.kirukiru.es.com (tools.kirukiru.es.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] ~]#

Si muestra conectado significa que no hay problema de conectividad.

  Cómo hacer una copia de seguridad de la configuración de escritorio de KDE Plasma 5 en Linux

Consulte esto para ver algunos de los ejemplos de comandos wget más utilizados.

rizo

Un rizo es una herramienta multipropósito.

¿Sabes que puedes hacer telnet a un puerto usando curl?

Bien ahora lo sabes.

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

El siguiente es un ejemplo de trabajo.

[[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)

Y, cuando no haya un puerto de escucha o un problema con el firewall, verá intentarlo…

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

También puede usar curl para descargar los datos. Admite múltiples protocolos: HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER, etc.

nmap

Una herramienta popular con cientos de funciones. A menudo esto se considera como una herramienta de seguridad, nmap le permite probar una sola IP/puerto o en el rango.

Para probar un solo puerto

nmap -p $PORT $IP

Un ejemplo de prueba del puerto 443 en 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] ~]#

Mira la columna de estado. Si ve abierto, significa que la conexión está bien. Y, si se filtra el estado, eso significa que la conectividad no existe.

Silbido

Uno de los comandos más utilizados es verificar si un host remoto está respondiendo a ICMP ECHO_REQUEST o no. Tenga en cuenta que es posible que esto no le brinde resultados precisos cuando ICMP está bloqueado en el firewall de la red remota. Suponiendo que ese no sea el caso, puede hacer ping al punto final de la red IPv4 o IPv4 como se muestra a continuación.

ping $ipaddress
ping $url

Por ejemplo, resultado de éxito de kirukiru.es.com

[email protected] ~ % ping kirukiru.es.com
PING kirukiru.es.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 ejemplo, resultado de falla de IP interna.

[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

Si el punto final admite IPv6, puede usar el comando ping6 como se muestra a continuación.

[email protected] ~ % ping6 kirukiru.es.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

Si necesita hacer un ping remoto a través de Internet, puede usar la herramienta de ping en línea.

  Cómo reemplazar el audio en un video en Linux

Conclusión

telnet se está eliminando gradualmente en la última versión de Linux. Gracias a la alternativa de telnet anterior.

Si eres nuevo en Linux y buscas aprender, mira esto Curso de Udemy.