To bit or not to bit, ingeniera en desarrollo de software, criadora de mantis, mujer transgénera
Ingeniería de software

Comandos para probar conexiones de red en Linux

Normalmente cuando administramos un servidor Linux usamos SSH y una terminal para administrarlo, y comúnmente queremos probar conexiones con otros servicios, ya sea en la intranet o en la nube, aquí quiero mostrar comandos básicos para probar conexiones.

Primero que nada quiero recordar las capas del modelo OSI para que se entienda a que nivel estamos usando nuestros comandos.

Capas del modelo OSI

Comandos para probar conexiones

Comando ping

Con este comando buscamos probar si existe conectividad con otro equipo por medio de su IP o su nombre de dominio, sin ahondar mucho, ping se realiza con el protocolo ICMP (Internet Control Message Protocol) que funciona a nivel de capa de red justo debajo de la capa de transporte donde están TCP o UDP, es por ello que no usa puertos, ni los procesos de aseguramiento de llegada de paquetes que usa TCP.

Por ejemplo podríamos hacer ping a google.com:

[root@localhost ~]# ping -c 5 google.com

Haciendo ping a google.com [172.217.7.46] con 32 bytes de datos:
Respuesta desde 172.217.7.46: bytes=32 tiempo=30ms TTL=109
Respuesta desde 172.217.7.46: bytes=32 tiempo=30ms TTL=109
Respuesta desde 172.217.7.46: bytes=32 tiempo=30ms TTL=109
Respuesta desde 172.217.7.46: bytes=32 tiempo=30ms TTL=109
Respuesta desde 172.217.7.46: bytes=32 tiempo=30ms TTL=109


Estadísticas de ping para 172.217.7.46:
    Paquetes: enviados = 5, recibidos = 5, perdidos = 0
    (0% perdidos),
Tiempos aproximados de ida y vuelta en milisegundos:
    Mínimo = 30ms, Máximo = 30ms, Media = 30ms

Aquí buscamos hacer ping a google 5 veces, es bueno indicar la opción “-c 5” para indicar el número de pings que queremos hacer, sino el programa en algunas distribuciones buscará hacer ping hasta que ingresemos un “Ctr + C“.

Comando traceroute

Con este comando buscamos trazar la ruta que usamos para llegar a otro equipo por medio de su IP o su FQDN, traceroute también se realiza con el protocolo ICMP (Internet Control Message Protocol) que funciona a nivel de capa de red como lo hace ping, una cosa adicional a mencionar de ambos es que usan peticiones de echo request y echo response para funcionar propios del protocolo ICMP.

El comando traceroute en algunas distribuciones de Linux no viene instalado por default, para eso lo podemos por instalar por algún manejador de paquetes, por ejemplo en distribuciones Fedora, CentOS y Red Hat usamos yum:

[root@host ~]# yum -y install traceroute

Un ejemplo básico de ejecución traceroute sería:

[root@host ~]# traceroute 192.168.1.115
traceroute to 192.168.1.115 (192.168.1.115), 30 hops max, 60 byte packets
 1  192.168.0.1 (192.168.0.1)  0.743 ms  0.614 ms  0.683 ms
 2  192.168.1.101 (192.168.1.101)  1.025 ms  1.008 ms  0.965 ms
 3  192.168.1.115 (192.168.1.115)  2.348 ms !X  1.754 ms !X  1.712 ms !X

Lo que indicaría que para llegar a nuestro destino tiene que pasar por otros dos equipos, mientras va buscando llegar, muestra una serie de métricas de tiempo de respuesta.

Comando telnet

El comando telnet busca realizar una conexión punto a punto por medio del puerto 23, la comunicación se hace en texto plano y principalmente se usa para ingresar a una terminal remota, este protocolo funciona en capa 7 del modelo OSI, la capa de Aplicación.

En nuestro caso podemos usar telnet para probar si hay conexión en algún puerto remoto y asegurarnos que la conexión no es cortada.

Al igual que traceroute, telnet no viene instalado en todas las distribuciones de Linux por lo que para Fedora, CentOS y Red Hat podemos usar yum para instalar de la siguiente forma:

[root@host ~]# yum -y install telnet

Una prueba para hacer un telnet y probar puerto 21 para el servicio de SSH podría ser:

[root@telecomgscae ~]# telnet 192.168.1.115 22
Trying 192.168.1.115...
Connected to 192.168.1.115.
Escape character is '^]'.
SSH-2.0-OpenSSH_8.0
hola
Invalid SSH identification string.
Connection closed by foreign host.
[root@telecomgscae ~]# 

Donde podemos apreciar que logramos conectar pero la comunicación se corta por que SSH no espera la palabra “hola” dentro del protocolo.

Comentarios finales

Existen más comandos para probar si nuestro servidor Linux tiene conexiones o puertos abiertos, esos los mostrare en otro artículo, el fin de este era mostrar como nuestro servidor puede probar conectarse con otros servidores.

Como siempre si les gusta compartan y si no también.