Solución de Problemas de Red con Comandos: ping, traceroute, netstat, ss - Guía Completa

Introducción

La solución de problemas de red es una habilidad crítica para administradores de sistemas, ingenieros DevOps y profesionales de TI que gestionan servidores e infraestructura. Cuando surgen problemas de conectividad de red, la diferencia entre horas de inactividad y una resolución rápida a menudo depende de dominar las herramientas fundamentales de diagnóstico de red. A diferencia de las soluciones gráficas de monitoreo de red que pueden no estar disponibles en servidores sin interfaz gráfica o durante situaciones de emergencia, las herramientas de línea de comandos proporcionan información inmediata y detallada sobre el comportamiento de la red, problemas de conectividad, problemas de enrutamiento y disponibilidad de servicios.

Esta guía completa cubre comandos esenciales de solución de problemas de red que todo administrador de Linux debe dominar: ping para pruebas de conectividad, traceroute para análisis de rutas, netstat para estadísticas de red y ss (socket statistics) para monitoreo moderno de conexiones. Aprenderás no solo cómo usar estas herramientas, sino cuándo usarlas, cómo interpretar su salida y cómo combinarlas para un diagnóstico efectivo de problemas. Ya sea que estés investigando por qué un servidor no puede alcanzar Internet, diagnosticando conexiones lentas, identificando conflictos de puertos o rastreando problemas de seguridad de red, estos comandos forman la base de la solución sistemática de problemas de red.

Al dominar estas herramientas, estarás equipado para diagnosticar y resolver rápidamente problemas de red, reduciendo el tiempo de inactividad y manteniendo una infraestructura confiable en entornos de producción.

Comprendiendo la Metodología de Solución de Problemas de Red

Enfoque Sistemático de Solución de Problemas

1. Definir el Problema

  • ¿Qué exactamente no funciona?
  • ¿Cuándo comenzó el problema?
  • ¿Ha cambiado algo recientemente?

2. Recopilar Información

  • Verificar mensajes de error
  • Revisar cambios recientes
  • Identificar sistemas afectados

3. Probar Capas de Red

  • Capa física: cables, interfaces
  • Capa de red: enrutamiento, direccionamiento IP
  • Capa de transporte: puertos TCP/UDP
  • Capa de aplicación: configuración de servicios

4. Aislar el Problema

  • Probar desde diferentes ubicaciones
  • Eliminar variables sistemáticamente
  • Identificar la causa raíz

5. Implementar y Verificar Solución

  • Aplicar corrección
  • Probar exhaustivamente
  • Documentar cambios

Modelo OSI y Solución de Problemas

Capa 7 - Aplicación: Configuraciones de servicio, protocolos
Capa 6 - Presentación: Cifrado, formato de datos
Capa 5 - Sesión: Gestión de conexiones
Capa 4 - Transporte: Puertos TCP/UDP, conexiones
Capa 3 - Red: Enrutamiento IP, direccionamiento
Capa 2 - Enlace de Datos: Direcciones MAC, switches
Capa 1 - Física: Cables, NICs, estado del enlace

Comienza la solución de problemas desde la Capa 1 hacia arriba para un diagnóstico sistemático.

Prerrequisitos

Antes de usar comandos de solución de problemas de red, asegúrate de tener:

  • Comprensión básica de conceptos de redes TCP/IP
  • Acceso root o sudo para ciertos comandos
  • Conocimiento de tu topología de red
  • Diagrama de red o documentación (útil)
  • Direcciones IP, máscaras de subred e información de puerta de enlace

Instalar Herramientas Requeridas

# Ubuntu/Debian
sudo apt update
sudo apt install iputils-ping traceroute net-tools iproute2 dnsutils tcpdump -y

# CentOS/RHEL/Rocky Linux
sudo dnf install iputils traceroute net-tools iproute bind-utils tcpdump -y

# Verificar instalaciones
ping -V
traceroute --version
ss -V

ping - Pruebas de Conectividad

El comando ping prueba la conectividad de red enviando paquetes ICMP Echo Request y midiendo las respuestas.

Uso Básico de ping

# Ping básico
ping google.com

# Ping con número específico de paquetes
ping -c 4 google.com

# Ping con marca de tiempo
ping -D google.com

# Ping a dirección IPv6
ping6 2001:4860:4860::8888

Entendiendo la Salida de ping

$ ping -c 4 google.com

PING google.com (142.250.185.46) 56(84) bytes of data.
64 bytes from lga25s67-in-f14.1e100.net (142.250.185.46): icmp_seq=1 ttl=117 time=15.2 ms
64 bytes from lga25s67-in-f14.1e100.net (142.250.185.46): icmp_seq=2 ttl=117 time=14.8 ms
64 bytes from lga25s67-in-f14.1e100.net (142.250.185.46): icmp_seq=3 ttl=117 time=15.1 ms
64 bytes from lga25s67-in-f14.1e100.net (142.250.185.46): icmp_seq=4 ttl=117 time=14.9 ms

--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 14.822/15.000/15.169/0.142 ms

Métricas clave:

  • icmp_seq: Número de secuencia (detectar pérdida de paquetes)
  • ttl: Time To Live (saltos restantes)
  • time: Tiempo de ida y vuelta en milisegundos
  • packet loss: Porcentaje de paquetes perdidos
  • rtt: Estadísticas de tiempo de ida y vuelta (mín/prom/máx/desviación estándar)

Opciones Avanzadas de ping

Establecer Tamaño de Paquete

# Tamaño de paquete más grande (probar problemas de MTU)
ping -s 1472 google.com

# MTU estándar máximo de Ethernet
ping -s 1500 google.com

# Prohibir fragmentación
ping -M do -s 1472 google.com

Ajustar Temporización

# Ping rápido (intervalo 0.2 segundos)
sudo ping -i 0.2 google.com

# Flood ping (solo root, usar con cuidado)
sudo ping -f google.com

# Establecer tiempo de espera
ping -W 2 google.com  # 2 segundos de tiempo de espera

Interfaz de Origen

# Ping desde interfaz específica
ping -I eth0 google.com

# Ping desde IP de origen específica
ping -I 192.168.1.100 google.com

Escenarios de Diagnóstico con ping

Probar Conectividad de Red Local

# Probar interfaz de loopback
ping 127.0.0.1

# Probar puerta de enlace predeterminada
ping $(ip route | grep default | awk '{print $3}')

# Probar hosts de red local
ping 192.168.1.1

Probar Conectividad a Internet

# Probar servidores conocidos
ping 8.8.8.8          # DNS de Google
ping 1.1.1.1          # DNS de Cloudflare
ping 208.67.222.222   # OpenDNS

# Probar con nombre de host (verifica DNS también)
ping google.com

Detectar Problemas de Conexión Intermitentes

# Ping continuo con estadísticas
ping -c 1000 google.com | tee ping-results.txt

# Monitorear pérdida de paquetes
ping -c 100 google.com | grep "packet loss"

Medir Latencia de Red

# Ping múltiples veces y analizar
ping -c 50 remote-server.com

# Observar varianza en tiempos de respuesta
# Alta varianza indica inestabilidad de red

Interpretando Resultados de ping

Ping exitoso:

64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=15.2 ms

✓ Conectividad de red funcionando

Destino inalcanzable:

From 192.168.1.1 icmp_seq=1 Destination Host Unreachable

✗ Host no alcanzable, problema de enrutamiento o host caído

Tiempo de espera de solicitud:

Request timeout for icmp_seq 1

✗ No se recibió respuesta, firewall bloqueando o problema de red

Alta pérdida de paquetes:

10 packets transmitted, 5 received, 50% packet loss

✗ Congestión de red o conexión inestable

Alta varianza de latencia:

rtt min/avg/max/mdev = 15.2/156.3/892.1/245.8 ms

✗ Inestabilidad de red, congestión o problemas de enrutamiento

traceroute - Análisis de Rutas

Traceroute muestra la ruta de red que toman los paquetes para alcanzar un destino, identificando cada salto a lo largo de la ruta.

Uso Básico de traceroute

# Rastrear ruta al destino
traceroute google.com

# Usar ICMP en lugar de UDP
sudo traceroute -I google.com

# Usar paquetes TCP SYN (útil para atravesar firewalls)
sudo traceroute -T -p 80 google.com

# Traceroute IPv6
traceroute6 google.com

Entendiendo la Salida de traceroute

$ traceroute google.com

traceroute to google.com (142.250.185.46), 30 hops max, 60 byte packets
 1  192.168.1.1 (192.168.1.1)  1.245 ms  1.189 ms  1.156 ms
 2  10.0.0.1 (10.0.0.1)  8.423 ms  8.395 ms  8.367 ms
 3  72.14.218.26 (72.14.218.26)  12.445 ms  12.428 ms  12.401 ms
 4  108.170.252.1 (108.170.252.1)  13.876 ms  13.859 ms  13.832 ms
 5  142.251.61.221 (142.251.61.221)  14.234 ms  14.217 ms  14.190 ms
 6  lga25s67-in-f14.1e100.net (142.250.185.46)  15.123 ms  14.956 ms  14.929 ms

Cada línea muestra:

  • Número de salto
  • Nombre de host (si está disponible DNS inverso) y dirección IP
  • Tres tiempos de ida y vuelta (tres pruebas por salto)

Opciones Avanzadas de traceroute

Controlar Número de Pruebas

# Enviar 5 pruebas por salto en lugar de 3
traceroute -q 5 google.com

# Una sola prueba por salto (más rápido)
traceroute -q 1 google.com

Establecer Máximo de Saltos

# Máximo 15 saltos
traceroute -m 15 google.com

# Máximo 50 saltos (incrementar para rutas largas)
traceroute -m 50 google.com

Ajustar Tiempo de Espera

# Esperar 1 segundo por prueba
traceroute -w 1 google.com

# Esperar 5 segundos (conexiones lentas)
traceroute -w 5 google.com

Especificar Interfaz de Origen

# Usar interfaz específica
traceroute -i eth1 google.com

# Usar dirección de origen específica
traceroute -s 192.168.1.100 google.com

Escenarios de Diagnóstico con traceroute

Identificar Cuellos de Botella de Red

# Buscar aumentos repentinos de latencia
traceroute remote-server.com

# Comparar rutas a diferentes destinos
traceroute server1.com > route1.txt
traceroute server2.com > route2.txt
diff route1.txt route2.txt

Detectar Bucles de Enrutamiento

# Bucle de enrutamiento muestra direcciones IP repetidas
traceroute problematic-destination.com

# Buscar conteos de saltos que excedan límites razonables

Detección de Firewall y Filtrado

# Asteriscos indican saltos filtrados
traceroute -I destination.com

# Probar diferentes protocolos
traceroute -T -p 443 destination.com

Interpretando Resultados de traceroute

Salto normal:

3  72.14.218.26 (72.14.218.26)  12.445 ms  12.428 ms  12.401 ms

✓ Router respondiendo normalmente

Tiempo de espera en salto:

4  * * *

⚠ Salto no respondiendo (firewall bloqueando ICMP o router configurado para no responder)

Aumento repentino de latencia:

5  router1.isp.com (10.1.1.1)  15 ms  16 ms  14 ms
6  router2.isp.com (10.1.1.2)  145 ms  152 ms  148 ms

✗ Congestión o enlace lento entre salto 5 y 6

Enrutamiento asimétrico: Diferentes rutas para diferentes pruebas indican balanceo de carga o fluctuación de rutas

netstat - Estadísticas de Red (Herramienta Heredada)

Netstat muestra conexiones de red, tablas de enrutamiento, estadísticas de interfaz y más. Aunque en gran medida reemplazado por ss, sigue siendo ampliamente disponible y comprendido.

Uso Básico de netstat

# Mostrar todas las conexiones
netstat -a

# Mostrar puertos en escucha
netstat -l

# Mostrar conexiones TCP
netstat -t

# Mostrar conexiones UDP
netstat -u

# Mostrar puertos TCP en escucha
netstat -lt

# Mostrar direcciones numéricas (sin búsqueda DNS)
netstat -n

# Mostrar nombres de programas
sudo netstat -p

Combinaciones Comunes de netstat

# Mostrar todos los puertos TCP en escucha con programas
sudo netstat -tlnp

# Mostrar todas las conexiones establecidas
netstat -tnp | grep ESTABLISHED

# Mostrar todos los puertos UDP en escucha
sudo netstat -ulnp

# Mostrar todas las conexiones con direcciones numéricas
netstat -an

Entendiendo la Salida de netstat

$ sudo netstat -tlnp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1234/sshd
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      5678/mysqld
tcp6       0      0 :::80                   :::*                    LISTEN      9101/apache2

Columnas:

  • Proto: Protocolo (tcp, tcp6, udp, udp6)
  • Recv-Q: Bytes en cola de recepción
  • Send-Q: Bytes en cola de envío
  • Local Address: IP:Puerto local
  • Foreign Address: IP:Puerto remoto
  • State: Estado de conexión
  • PID/Program: ID de proceso y nombre

Estados de Conexión

LISTEN      - Esperando solicitudes de conexión
ESTABLISHED - Conexión activa
TIME_WAIT   - Conexión cerrada, esperando para asegurar que el remoto recibió confirmación
CLOSE_WAIT  - Remoto cerrado, esperando cierre local
SYN_SENT    - Intentando establecer conexión
SYN_RECV    - Solicitud de conexión recibida
FIN_WAIT1   - Conexión cerrándose
FIN_WAIT2   - Conexión cerrada, esperando cierre remoto
CLOSING     - Ambos lados cerrándose simultáneamente

Escenarios de Diagnóstico con netstat

Encontrar Qué Proceso Usa un Puerto

# Encontrar qué está escuchando en el puerto 80
sudo netstat -tlnp | grep :80

# Encontrar todos los procesos escuchando en puertos
sudo netstat -tlnp | grep LISTEN

Verificar Conexiones Establecidas

# Mostrar todas las conexiones establecidas
netstat -tn | grep ESTABLISHED

# Contar conexiones por estado
netstat -an | awk '/tcp/ {print $6}' | sort | uniq -c

Monitorear Estadísticas de Interfaz de Red

# Mostrar estadísticas de interfaz
netstat -i

# Monitoreo continuo de interfaz
netstat -ic

# Estadísticas detalladas de interfaz
netstat -s

Ver Tabla de Enrutamiento

# Mostrar tabla de enrutamiento
netstat -r

# Tabla de enrutamiento numérica
netstat -rn

ss - Estadísticas de Socket (Alternativa Moderna)

El comando ss es el reemplazo moderno de netstat, proporcionando información de socket más rápida y más detallada.

Uso Básico de ss

# Mostrar todos los sockets
ss -a

# Mostrar sockets en escucha
ss -l

# Mostrar sockets TCP
ss -t

# Mostrar sockets UDP
ss -u

# Mostrar sockets TCP en escucha
ss -lt

# Mostrar direcciones numéricas
ss -n

# Mostrar información de proceso
sudo ss -p

Combinaciones Comunes de ss

# Mostrar todos los puertos TCP en escucha con información de proceso
sudo ss -tlnp

# Mostrar todas las conexiones TCP establecidas
ss -tn state established

# Mostrar todos los sockets con proceso y salida numérica
sudo ss -tunap

# Mostrar sockets en escucha con información extendida
ss -lte

Entendiendo la Salida de ss

$ sudo ss -tlnp

State    Recv-Q  Send-Q   Local Address:Port   Peer Address:Port  Process
LISTEN   0       128      0.0.0.0:22            0.0.0.0:*          users:(("sshd",pid=1234,fd=3))
LISTEN   0       80       127.0.0.1:3306        0.0.0.0:*          users:(("mysqld",pid=5678,fd=25))
LISTEN   0       511      *:80                  *:*                users:(("apache2",pid=9101,fd=4))

Columnas:

  • State: Estado del socket
  • Recv-Q: Tamaño de cola de recepción
  • Send-Q: Tamaño de cola de envío
  • Local Address:Port: Punto final local
  • Peer Address:Port: Punto final remoto
  • Process: Información de proceso (con -p)

Opciones Avanzadas de ss

Filtrar por Estado

# Mostrar conexiones establecidas
ss -t state established

# Mostrar conexiones en escucha
ss -t state listening

# Mostrar conexiones time-wait
ss -t state time-wait

# Múltiples estados
ss -t state established state syn-sent

Filtrar por Puerto

# Mostrar conexiones en el puerto 80
ss -tn sport = :80

# Mostrar conexiones al puerto 443
ss -tn dport = :443

# Mostrar rango de puertos
ss -tn sport ge :1024

Información Extendida

# Mostrar información extendida de socket
ss -te

# Mostrar uso de memoria
ss -tm

# Mostrar información interna de TCP
ss -ti

# Mostrar todas las opciones extendidas
ss -tiem

Resumen de Sockets

# Resumen de estadísticas de sockets
ss -s

# Ejemplo de salida:
# Total: 589
# TCP:   12 (estab 5, closed 2, orphaned 0, timewait 2)
# Transport Total     IP        IPv6
# RAW       1         0         1
# UDP       8         5         3
# TCP       10        6         4

Escenarios de Diagnóstico con ss

Identificar Conflictos de Puertos

# Verificar si el puerto ya está en uso
sudo ss -tlnp | grep :8080

# Encontrar proceso usando puerto específico
sudo ss -tlnp 'sport = :3306'

Monitorear Estados de Conexión

# Contar conexiones por estado
ss -tan | awk '{print $1}' | sort | uniq -c

# Observar conexiones TIME_WAIT
watch -n 1 'ss -tan | grep TIME-WAIT | wc -l'

Detectar Inundación de Conexiones

# Mostrar conexiones por IP
ss -tn | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

# Monitorear SYN_RECV (posible inundación SYN)
ss -tan | grep SYN-RECV

Verificar Cola de Escucha

# Mostrar detalles de cola de escucha
ss -tlnp

# Recv-Q grande en socket de escucha indica backlog
# Puede necesitar aumentar backlog de escucha o procesar más rápido

Combinando Herramientas para Solución de Problemas Efectiva

Diagnóstico Completo de Conectividad

#!/bin/bash
# network-diagnosis.sh - Verificación completa de red

TARGET=$1

echo "=== Diagnóstico de Red para $TARGET ==="

echo -e "\n1. Probando conectividad..."
if ping -c 4 $TARGET > /dev/null 2>&1; then
    echo "✓ Ping exitoso"
    ping -c 4 $TARGET | tail -2
else
    echo "✗ Ping falló"
fi

echo -e "\n2. Rastreando ruta..."
traceroute -m 15 $TARGET

echo -e "\n3. Probando resolución DNS..."
dig $TARGET +short

echo -e "\n4. Verificando red local..."
echo "Puerta de enlace predeterminada:"
ip route | grep default

echo -e "\nDirecciones IP locales:"
ip addr show | grep "inet " | grep -v 127.0.0.1

echo -e "\n5. Verificando servicios en escucha..."
sudo ss -tlnp

echo -e "\n6. Resumen de conexiones..."
ss -s

Uso:

chmod +x network-diagnosis.sh
./network-diagnosis.sh google.com

Prueba de Accesibilidad de Puerto de Servidor

#!/bin/bash
# port-check.sh - Probar si un puerto específico es accesible

HOST=$1
PORT=$2

echo "Probando $HOST:$PORT"

# Probar con nc (netcat)
if nc -zv -w 5 $HOST $PORT 2>&1 | grep -q "succeeded"; then
    echo "✓ Puerto $PORT está abierto"
else
    echo "✗ Puerto $PORT está cerrado o filtrado"
fi

# Alternativa: usando telnet
timeout 5 telnet $HOST $PORT 2>&1 | grep -q "Connected" && \
    echo "✓ Conexión telnet exitosa" || \
    echo "✗ Conexión telnet falló"

# Verificar escucha local
if sudo ss -tlnp | grep -q ":$PORT "; then
    echo "✓ Servicio escuchando localmente en puerto $PORT"
    sudo ss -tlnp | grep ":$PORT "
else
    echo "✗ No hay servicio escuchando en puerto $PORT localmente"
fi

Script de Monitoreo de Conexiones

#!/bin/bash
# monitor-connections.sh - Monitorear conexiones de red

echo "=== Monitor de Conexiones de Red ==="
echo "Presiona Ctrl+C para detener"

while true; do
    clear
    echo "=== Conexiones Activas en $(date) ==="

    echo -e "\nConexiones establecidas:"
    ss -tn state established | tail -n +2 | wc -l

    echo -e "\nTop 10 conexiones externas:"
    ss -tn state established | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -10

    echo -e "\nConexiones por estado:"
    ss -tan | awk '{print $1}' | tail -n +2 | sort | uniq -c

    echo -e "\nServicios en escucha:"
    sudo ss -tlnp | grep LISTEN | wc -l

    sleep 5
done

Herramientas Adicionales de Solución de Problemas de Red

dig - Búsqueda DNS

# Búsqueda DNS básica
dig google.com

# Consultar tipo de registro específico
dig google.com A
dig google.com AAAA
dig google.com MX
dig google.com TXT

# Consultar servidor DNS específico
dig @8.8.8.8 google.com

# Salida corta
dig google.com +short

# Búsqueda DNS inversa
dig -x 8.8.8.8

nslookup - Consulta DNS

# Búsqueda básica
nslookup google.com

# Consultar servidor DNS específico
nslookup google.com 8.8.8.8

# Consultar tipo de registro específico
nslookup -type=MX google.com

host - Búsqueda DNS Simple

# Búsqueda básica
host google.com

# Búsqueda inversa
host 8.8.8.8

# Todos los registros
host -a google.com

nc (netcat) - Navaja Suiza de Red

# Probar conectividad de puerto
nc -zv google.com 80

# Probar rango de puertos
nc -zv google.com 80-443

# Escuchar en puerto
nc -l 8080

# Transferir archivo
# Receptor: nc -l 8080 > received_file
# Emisor: nc target-ip 8080 < file_to_send

tcpdump - Captura de Paquetes

# Capturar en interfaz específica
sudo tcpdump -i eth0

# Capturar puerto específico
sudo tcpdump -i eth0 port 80

# Capturar y guardar en archivo
sudo tcpdump -i eth0 -w capture.pcap

# Leer desde archivo
tcpdump -r capture.pcap

# Filtrar por host
sudo tcpdump -i eth0 host 192.168.1.100

mtr - Ping y traceroute Combinados

# Modo interactivo
mtr google.com

# Modo de reporte (10 ciclos)
mtr -r -c 10 google.com

# Sin resolución DNS
mtr -n google.com

Solución de Problemas Comunes de Red

Problema 1: No Puede Alcanzar Sitio Web

Diagnóstico:

# Probar resolución DNS
dig example.com

# Probar conectividad básica
ping example.com

# Probar puerto específico
nc -zv example.com 80

# Rastrear ruta
traceroute example.com

Causas comunes:

  • DNS no resolviendo
  • Firewall bloqueando
  • Servicio no ejecutándose
  • Problemas de enrutamiento

Problema 2: Rendimiento de Red Lento

Diagnóstico:

# Verificar pérdida de paquetes
ping -c 100 remote-server.com

# Identificar saltos lentos
mtr remote-server.com

# Verificar congestión
ss -s

# Monitorear errores de interfaz
netstat -i

Problema 3: Puerto Ya en Uso

Diagnóstico:

# Encontrar proceso usando puerto
sudo ss -tlnp | grep :8080
sudo lsof -i :8080

# Matar proceso
sudo kill -9 <PID>

# O detener servicio
sudo systemctl stop apache2

Problema 4: Demasiadas Conexiones

Diagnóstico:

# Contar conexiones totales
ss -s

# Verificar conexiones TIME_WAIT
ss -tan | grep TIME-WAIT | wc -l

# Identificar fuentes de conexión
ss -tn | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn

Soluciones:

  • Ajustar parámetros del kernel
  • Implementar limitación de tasa
  • Investigar posible DDoS

Problema 5: Fallos de Resolución DNS

Diagnóstico:

# Probar servidores DNS
dig @8.8.8.8 google.com
dig @1.1.1.1 google.com

# Verificar /etc/resolv.conf
cat /etc/resolv.conf

# Probar con diferentes tipos de consulta
dig google.com A
dig google.com AAAA

Mejores Prácticas

1. Establecer Métricas de Línea Base

# Recopilar datos de línea base cuando los sistemas estén saludables
ping -c 1000 critical-server.com > baseline-ping.txt
ss -s > baseline-connections.txt
netstat -s > baseline-stats.txt

2. Crear Listas de Verificación de Solución de Problemas

  • Verificar conectividad física
  • Verificar configuración IP
  • Probar alcance de puerta de enlace
  • Verificar resolución DNS
  • Probar disponibilidad de servicio
  • Verificar reglas de firewall
  • Revisar logs de aplicación

3. Documentar Topología de Red

Mantener diagramas mostrando:

  • Subredes de red
  • Ubicaciones de puerta de enlace/router
  • Ubicación de firewall
  • Servidores y servicios críticos

4. Usar Registro y Monitoreo

# Registrar resultados de ping continuo
ping -D remote-server.com | tee -a ping-monitor.log

# Monitorear estados de conexión
watch -n 5 'ss -s'

# Rastrear estadísticas de interfaz
while true; do netstat -i >> interface-stats.log; sleep 60; done

5. Automatizar Verificaciones Rutinarias

# Trabajo cron para monitoreo de red
*/5 * * * * /usr/local/bin/network-check.sh >> /var/log/network-check.log 2>&1

Consideraciones de Seguridad

Limitar Exposición de Información

# Deshabilitar respuesta ICMP (¡con cuidado!)
sudo sysctl -w net.ipv4.icmp_echo_ignore_all=1

# Limitar tasa ICMP
sudo iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

Monitorear Actividad Sospechosa

# Observar escaneos de puertos
sudo ss -tan | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head

# Monitorear intentos de inundación SYN
watch 'ss -tan | grep SYN-RECV'

Asegurar Herramientas de Diagnóstico

  • Restringir tcpdump a usuarios autorizados
  • Limitar ejecución de netstat/ss
  • Revisar datos de captura de paquetes cuidadosamente
  • Nunca compartir capturas de paquetes con datos sensibles

Conclusión

Dominar los comandos de solución de problemas de red es esencial para mantener una infraestructura confiable y segura. Las herramientas cubiertas en esta guía—ping para pruebas de conectividad, traceroute para análisis de rutas, netstat para compatibilidad heredada y ss para estadísticas de socket modernas—forman la base del diagnóstico sistemático de red y resolución de problemas.

Puntos clave:

  • ping valida conectividad y mide latencia
  • traceroute identifica rutas de enrutamiento y cuellos de botella
  • netstat proporciona estadísticas de red heredadas (aún ampliamente usado)
  • ss ofrece información de socket moderna y rápida con filtrado extenso
  • Herramientas combinadas permiten diagnóstico completo de red
  • Enfoque sistemático mejora eficiencia de solución de problemas
  • Documentación y monitoreo apoyan detección proactiva de problemas

Estas herramientas de línea de comandos funcionan en prácticamente todas las distribuciones de Linux, requieren recursos mínimos y proporcionan información inmediata durante escenarios críticos de solución de problemas. Ya sea diagnosticando fallos de conectividad, problemas de rendimiento, incidentes de seguridad o problemas de disponibilidad de servicios, las habilidades desarrolladas a través de esta guía te servirán a lo largo de tu carrera en administración de sistemas y gestión de infraestructura.

Continúa expandiendo tu experiencia en solución de problemas de red explorando herramientas avanzadas como Wireshark para análisis de paquetes, iperf para pruebas de ancho de banda y nmap para descubrimiento de red y auditoría de seguridad.