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.


