Dominando el Comando Linux Netstat: De lo Básico al Monitoreo Avanzado de Redes
Introducción
El comando netstat
(estadísticas de red) es una de las herramientas de red más esenciales en el conjunto de herramientas de un administrador de sistemas Linux. Este versátil comando de línea de comandos proporciona una vista completa de las conexiones de red, las tablas de enrutamiento, las estadísticas de las interfaces y otra información crucial relacionada con la red.
¿Qué es netstat?
netstat
es una utilidad de red de línea de comandos que muestra información variada relacionada con la red, incluyendo:
- Conexiones de red (tanto entrantes como salientes)
- Tablas de enrutamiento
- Estadísticas de interfaces de red
- Conexiones de mascarada
- Membresías de multidifusión
- Estadísticas de protocolos
Por Qué Es Importante
Los administradores de sistemas y los ingenieros de red confían en netstat
para varias tareas críticas:
- Resolución de problemas de red: Identificar rápidamente problemas de conexión y cuellos de botella.
- Monitoreo de seguridad: Detectar conexiones no autorizadas y actividades sospechosas.
- Análisis de rendimiento: Monitorear patrones de tráfico de red y estadísticas de interfaces.
- Auditoría del sistema: Revisar servicios activos y puertos abiertos.
Breve Historia
El comando netstat
ha sido parte del conjunto de herramientas de redes TCP/IP desde los primeros días de los sistemas Unix. Aunque se originó en BSD Unix, ha evolucionado hasta convertirse en una herramienta estándar en varios sistemas operativos similares a Unix, incluyendo Linux. A pesar de ser considerado "obsoleto" en favor de herramientas más nuevas como ss
, netstat
sigue siendo ampliamente utilizado debido a:
- Su familiaridad entre los administradores de sistemas.
- Su amplia disponibilidad en diferentes sistemas Unix-like.
- Su rico conjunto de características y opciones detalladas de salida.
- Su extensa documentación y soporte comunitario.
Sintaxis Básica y Uso
Formato del Comando
La sintaxis básica del comando netstat es:
netstat [opciones]
El comando se puede utilizar con varias opciones para personalizar la salida según tus necesidades. Sin ninguna opción, netstat
mostrará una lista de sockets abiertos.
Opciones y Banderas Comunes
A continuación se presentan las opciones más utilizadas:
Opción | Descripción |
---|---|
-a | Muestra todos los puertos en escucha y las conexiones activas |
-t | Muestra las conexiones TCP |
-u | Muestra las conexiones UDP |
-n | Muestra direcciones numéricas en lugar de resolver nombres de host y puertos |
-l | Muestra solo sockets en escucha |
-p | Muestra el PID y el nombre del programa |
-r | Muestra la tabla de enrutamiento |
-i | Muestra estadísticas de interfaces de red |
-s | Muestra estadísticas de protocolos |
Ejemplos Básicos
- Ver todas las conexiones activas
netstat -a
- Mostrar todas las conexiones TCP
netstat -at
- Mostrar puertos en escucha con información del programa
sudo netstat -tulnp
Esta combinación popular muestra:
-t
: Conexiones TCP-u
: Conexiones UDP-l
: Solo puertos en escucha-n
: Direcciones numéricas-p
: Información del programa
- Comprobar la tabla de enrutamiento
netstat -r
- Ver estadísticas de interfaces
netstat -i
Entender la Salida
Una salida típica de netstat
incluye varias columnas:
- Proto: Protocolo (TCP, UDP)
- Recv-Q: Datos en cola para recibir
- Send-Q: Datos en cola para enviar
- Local Address: Punto final local de la conexión
- Foreign Address: Punto final remoto de la conexión
- State: Estado de la conexión (LISTEN, ESTABLISHED, etc.)
Ejemplo de salida al usar netstat -tan
:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.5:22 192.168.1.100:52614 ESTABLISHED
Características Clave y Opciones
Opciones de Visualización
Listar Todas las Conexiones
El comando netstat ofrece varias formas de listar conexiones de red según tus necesidades específicas:
- Mostrar todos los protocolos con direcciones numéricas
netstat -an
- Mostrar información extendida
netstat -ae
Esto agrega información adicional como usuario e inodo.
- Mostrar información de temporizadores
netstat -o
Añade información de temporización útil para resolución de problemas.
Visualización Específica del Protocolo
- Solo TCP
# Mostrar todas las conexiones TCP, incluyendo puertos en escucha
netstat -at
# Mostrar solo puertos en escucha TCP
netstat -lt
- Solo UDP
# Mostrar todas las conexiones UDP
netstat -au
# Mostrar solo puertos en escucha UDP
netstat -lu
- Sockets de Dominio Unix
# Mostrar sockets de dominio Unix
netstat -x
Opciones de Formato de Salida
Visualización Numérica
# Salida numérica completa (sin resolución de nombres)
netstat -n
# Combinar con otras opciones
netstat -ant # Conexiones TCP con direcciones numéricas
Beneficios de la visualización numérica:
- Ejecución más rápida
- Sin búsquedas DNS
- Más confiable en caso de problemas con DNS
Vista Extendida de Información
# Mostrar información de procesos
sudo netstat -p
# Mostrar información de usuario y procesos
sudo netstat -ep
# Mostrar estadísticas de interfaces de red con información extendida
netstat -ie
Visualización Continua
# Actualizar cada 2 segundos
netstat -c
# Combinar con otras opciones para monitoreo continuo
netstat -ct # Monitoreo continuo de TCP
Visualización de Estadísticas
- Estadísticas de Protocolos
# Mostrar estadísticas de todos los protocolos
netstat -s
# Mostrar solo estadísticas de TCP
netstat -st
# Mostrar solo estadísticas de UDP
netstat -su
- Estadísticas de Interfaces
# Mostrar estadísticas de interfaces
netstat -i
# Mostrar información extendida de interfaces
netstat -ie
Ejemplo de salida de estadísticas de interfaces:
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 158426 0 0 0 88573 0 0 0 BMRU
lo 65536 24846 0 0 0 24846 0 0 0 LRU
Donde:
- RX: Estadísticas de recepción
- TX: Estadísticas de transmisión
- OK: Paquetes exitosos
- ERR: Número de errores
- DRP: Paquetes descartados
- OVR: Eventos de sobrecarga
Casos de Uso Comunes
Solución de Problemas de Red
Verificación de Puertos Abiertos
- Encontrar todos los puertos abiertos en el sistema
sudo netstat -tulpn | grep LISTEN
Este comando ayuda a identificar:
- Qué servicios están funcionando.
- Qué puertos están utilizando.
- Qué procesos poseen estos puertos.
- Comprobar si un puerto específico está en uso
sudo netstat -tulpn | grep ":80" # Comprobar servidor web
sudo netstat -tulpn | grep ":3306" # Comprobar MySQL
Identificación de Conexiones Activas
- Monitorear conexiones actuales
# Mostrar todas las conexiones establecidas
netstat -nat | grep ESTABLISHED
# Contar conexiones por dirección IP
netstat -nat | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c
- Rastrear estados de conexión
# Ver distribución de estados de conexión
netstat -ant | awk '{print $6}' | sort | uniq -c
Monitoreo del Tráfico de Red
- Análisis del tráfico de interfaces
# Ver estadísticas de interfaces en tiempo real
netstat -i
watch -n 1 "netstat -i"
- Monitoreo específico por protocolo
# Monitorear estadísticas de tráfico TCP
netstat -st
# Monitorear estadísticas de tráfico UDP
netstat -su
Análisis de Seguridad
Encontrar Conexiones Sospechosas
- Detectar puertos inusuales
# Listar todos los puertos en escucha no estándar
sudo netstat -tulpn | grep -v ":22\|:80\|:443"
- Verificar patrones de conexión sospechosos
# Buscar conexiones desde IPs inesperadas
netstat -ant | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn
Detección de Escaneo de Puertos
# Buscar múltiples intentos de conexión
netstat -ant | grep SYN_RECV | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
Auditoría del Sistema
- Verificación de servicios
# Ver qué procesos están escuchando en qué puertos
sudo netstat -tulpn | grep LISTEN | sort -k 4
- Registro de conexiones
# Crear un registro simple de conexiones
while true; do
date >> connection_log.txt
netstat -ant >> connection_log.txt
sleep 60
done
- Monitoreo de uso de recursos
# Monitorear el número de conexiones por servicio
netstat -ant | grep ESTABLISHED | awk '{print $4}' | cut -d: -f2 | sort | uniq -c
Escenarios Comunes de Solución de Problemas
- Problemas en Servidores Web
# Comprobar conexiones al servidor web
sudo netstat -ant | grep ":80\|:443" | awk '{print $6}' | sort | uniq -c
- Problemas de Conexión a Bases de Datos
# Monitorear conexiones de bases de datos (ejemplo: MySQL)
sudo netstat -ant | grep :3306 | awk '{print $6}' | sort | uniq -c
- Análisis de Servidores de Correo
# Verificar conexiones al servidor de correo
sudo netstat -ant | grep ":25\|:465\|:587" | awk '{print $6}' | sort | uniq -c
Uso Avanzado
Combinación con Otros Comandos
Usar con grep y awk
- Filtrado y análisis complejo
# Contar conexiones por estado y puerto
netstat -ant | awk '{print $6, $4}' | sort | uniq -c | sort -rn
# Monitorear conexiones a un servicio específico con el tiempo
watch -n 1 'netstat -ant | grep ":80" | wc -l'
- Análisis avanzado de conexiones
# Crear un resumen de conexiones
netstat -ant | \
awk '{ip[$5]++} END {for (i in ip) print ip[i],i}' | \
sort -nr | head -n 10
Encadenar con otras herramientas
# Usar con tee para crear registros
netstat -ant | tee network_status.log
# Usar con xargs para gestión de procesos
netstat -tulpn | grep LISTEN | awk '{print $7}' | cut -d/ -f1 | xargs ps -f
Scripts y Automatización
Script Básico de Monitoreo
#!/bin/bash
LOG_FILE="/var/log/network_monitor.log"
monitor_connections() {
echo "=== Informe de Estado de la Red ===" >> $LOG_FILE
date >> $LOG_FILE
echo "Conexiones Activas:" >> $LOG_FILE
netstat -ant | grep ESTABLISHED | wc -l >> $LOG_FILE
echo "Puertos en Escucha:" >> $LOG_FILE
netstat -tulpn | grep LISTEN >> $LOG_FILE
echo "=========================" >> $LOG_FILE
}
# Ejecutar cada 5 minutos
while true; do
monitor_connections
sleep 300
done
Script Avanzado de Análisis
#!/bin/bash
analyze_network() {
echo "=== Análisis de Red ==="
echo -e "\nTop 10 IPs con Conexiones:"
netstat -ant | grep ESTABLISHED | \
awk '{print $5}' | cut -d: -f1 | \
sort | uniq -c | sort -rn | head -n 10
echo -e "\nEstados de Conexión:"
netstat -ant | awk '{print $6}' | \
sort | uniq -c | sort -rn
echo -e "\nUso de Puertos:"
netstat -ant | awk '{print $4}' | \
cut -d: -f2 | sort | uniq -c | sort -rn | head -n 10
}
# Guardar en un archivo con marca de tiempo
analyze_network | tee -a "network_analysis_$(date +%Y%m%d_%H%M%S).log"
Monitoreo de Rendimiento
Seguimiento del Uso de Recursos
- Impacto en CPU y Memoria
# Monitorear el uso de recursos de netstat
while true; do
ps aux | grep netstat | grep -v grep
sleep 1
done
- Rendimiento de la Interfaz de Red
#!/bin/bash
# Monitorear el tráfico de la interfaz
INTERVAL=1
INTERFACE="eth0"
while true; do
R1=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes)
T1=$(cat /sys/class/net/$INTERFACE/statistics/tx_bytes)
sleep $INTERVAL
R2=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes)
T2=$(cat /sys/class/net/$INTERFACE/statistics/tx_bytes)
RBPS=$(( ($R2 - $R1) / $INTERVAL ))
TBPS=$(( ($T2 - $T1) / $INTERVAL ))
echo "Interfaz $INTERFACE:"
echo "RX: $(($RBPS/1024)) KB/s"
echo "TX: $(($TBPS/1024)) KB/s"
echo "------------------------"
done
Soluciones de Monitoreo a Largo Plazo
#!/bin/bash
# Crear un informe de estadísticas de red cada hora
LOGDIR="/var/log/netstat_reports"
mkdir -p $LOGDIR
generate_report() {
TIMESTAMP=$(date +%Y%m%d_%H)
REPORT="$LOGDIR/netstat_report_$TIMESTAMP.log"
echo "Informe de Red - $(date)" > $REPORT
echo "=========================" >> $REPORT
echo "Resumen de Conexiones:" >> $REPORT
netstat -s >> $REPORT
echo "Estadísticas de la Interfaz:" >> $REPORT
netstat -i >> $REPORT
echo "Conexiones Actuales:" >> $REPORT
netstat -ant >> $REPORT
}
# Ejecutar generación de informes
generate_report
Consejos para la Integración
- Combinación con Monitoreo del Sistema
# Agregar a scripts de monitoreo del sistema
if [ $(netstat -ant | grep ESTABLISHED | wc -l) -gt 100 ]; then
echo "Alerta: Alto número de conexiones" | mail -s "Alerta de Red" [email protected]
fi
- Funciones Personalizadas de Informe
network_summary() {
local port="$1"
echo "Conexiones en el puerto $port:"
netstat -ant | grep ":$port" | awk '{print $6}' | sort | uniq -c
}
# Uso: network_summary 80
Alternativas a netstat
El Comando ss
ss
(Socket Statistics) es el reemplazo moderno para netstat
en sistemas Linux. Es generalmente más rápido y cuenta con más características que netstat
.
Ventajas Clave de ss
- Ejecución más rápida, especialmente en sistemas con muchas conexiones.
- Información más detallada sobre sockets.
- Mejor soporte para protocolos modernos.
- Menor uso de recursos del sistema.
Comparación con netstat
# comando netstat vs equivalente en ss
# Listar todas las conexiones
netstat -a
ss
# Mostrar puertos TCP en escucha
netstat -tln
ss -tln
# Mostrar información de procesos
netstat -p
ss -p
# Mostrar estadísticas
netstat -s
ss -s
Ejemplo de Uso de ss
# Mostrar información detallada de sockets
ss -i
# Mostrar información de temporización
ss -o
# Mostrar uso de memoria
ss -m
# Filtrar por estado
ss state established
# Filtrar por puerto
ss sport = :80
Alternativas Modernas
lsof (Listar Archivos Abiertos)
# Mostrar conexiones de red
lsof -i
# Mostrar puertos en escucha
lsof -i -P -n | grep LISTEN
# Mostrar conexiones establecidas
lsof -i | grep ESTABLISHED
nmap
# Escanear puertos abiertos
nmap localhost
# Escaneo detallado de puertos
nmap -sV localhost
iptraf-ng
- Monitor en tiempo real del tráfico IP.
- Estadísticas detalladas de protocolos.
- Estadísticas de interfaces.
- Monitor de estaciones en redes LAN.
Cuándo Usar Cada Herramienta
Usa netstat cuando:
- Trabajas en sistemas antiguos.
- Necesitas compatibilidad entre plataformas.
- Sigues documentación establecida.
- Realizas diagnósticos básicos de red.
Usa ss cuando:
- Trabajas en sistemas Linux modernos.
- Necesitas una ejecución más rápida.
- Gestionas muchas conexiones.
- Requieres información detallada de sockets.
Usa lsof cuando:
- Necesitas ver información de descriptores de archivo.
- Quieres correlacionar conexiones de red con procesos.
- Resuelves problemas de aplicaciones.
Usa nmap cuando:
- Realizas auditorías de seguridad.
- Necesitas un análisis detallado de puertos.
- Inspeccionas servicios de red.
Guía de Migración
Cambiar de netstat a ss
Comando netstat | Equivalente en ss | Descripción |
---|---|---|
netstat -t | ss -t | Mostrar conexiones TCP |
netstat -u | ss -u | Mostrar conexiones UDP |
netstat -l | ss -l | Mostrar sockets en escucha |
netstat -p | ss -p | Mostrar información del proceso |
netstat -n | ss -n | Evitar resolución de nombres |
netstat -a | ss | Mostrar todos los sockets |
netstat -r | ip route | Mostrar tabla de enrutamiento |
Ejemplo de Migración de Scripts
# Script antiguo con netstat
#!/bin/bash
netstat -tulpn | grep LISTEN > listening_ports.log
# Nuevo script con ss
#!/bin/bash
ss -tulpn | grep LISTEN > listening_ports.log
Consejos para la Selección de Herramientas
- Consideraciones de Rendimiento
- Para sistemas a gran escala: Usa
ss
. - Para verificaciones básicas: Cualquiera de las herramientas funciona bien.
- Para análisis detallado: Combina varias herramientas.
- Problemas de Compatibilidad
# Verificar si ss está disponible
if command -v ss >/dev/null 2>&1; then
ss -tulpn
else
netstat -tulpn
fi
- Requisitos de Características
- Monitoreo básico: netstat/ss.
- Análisis de seguridad: nmap.
- Correlación con procesos: lsof.
- Monitoreo en tiempo real: iptraf-ng.
Mejores Prácticas y Consejos
Consideraciones de Rendimiento
- Usar Salida Numérica Siempre que Sea Posible
# Más lento (con resolución DNS)
netstat -ta
# Más rápido (sin resolución DNS)
netstat -tan
- Limitar el Tamaño de la Salida
# En lugar de mostrar todas las conexiones
netstat -a
# Filtrar para información específica
netstat -an | grep ':80'
- Evitar el Sondeo Continuo
# No recomendado para sistemas ocupados
netstat -c
# Mejor enfoque con intervalos controlados
while true; do
netstat -an | grep ESTABLISHED
sleep 5
done
Errores Comunes
- Problemas de Uso de Recursos
- Problema: Uso excesivo de CPU durante la resolución de nombres.
# Comando problemático
watch -n 1 'netstat -ta'
# Alternativa mejorada
watch -n 1 'netstat -tan'
- Problemas de Permisos
- Problema: Falta de información del proceso.
# Mostrará información incompleta
netstat -p
# Uso correcto
sudo netstat -p
- Interpretación de la Salida
- Problema: Malentendido de los estados de conexión.
# Malentendidos comunes con TIME_WAIT
netstat -ant | grep TIME_WAIT
# Mejor análisis con contexto
netstat -ant | awk '{print $6}' | sort | uniq -c
Consejos para el Uso Diario
- Creación de Alias Útiles
# Agregar a ~/.bashrc
alias ns='netstat -tulpn'
alias nsc='netstat -ant | grep ESTABLISHED'
alias nsl='sudo netstat -tulpn | grep LISTEN'
- Verificaciones Rápidas de Seguridad
# Comprobar puertos en escucha inusuales
check_ports() {
echo "Puertos conocidos:"
sudo netstat -tulpn | grep -E ':22|:80|:443'
echo -e "\nPuertos desconocidos:"
sudo netstat -tulpn | grep -vE ':22|:80|:443'
}
- Plantillas de Monitoreo
# Plantilla de monitoreo de conexiones
monitor_connections() {
local port=$1
local threshold=$2
count=$(netstat -an | grep ":$port" | grep ESTABLISHED | wc -l)
if [ $count -gt $threshold ]; then
echo "Alerta: $count conexiones en el puerto $port superan el umbral de $threshold"
fi
}
# Uso: monitor_connections 80 100
Documentación y Registro
- Creación de Registros Útiles
#!/bin/bash
# Registro del estado de la red
log_network_status() {
local logfile="/var/log/network_status.log"
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
{
echo "=== Estado de la Red en $timestamp ==="
echo "Puertos en Escucha:"
netstat -tulpn | grep LISTEN
echo "Conexiones Actuales:"
netstat -ant | awk '{print $6}' | sort | uniq -c
echo "=================================="
} >> "$logfile"
}
- Procedimientos Operativos Estándar
# Plantilla para verificaciones regulares
daily_network_check() {
echo "1. Comprobando puertos en escucha..."
sudo netstat -tulpn | grep LISTEN
echo "2. Comprobando conexiones establecidas..."
netstat -ant | grep ESTABLISHED | wc -l
echo "3. Comprobando estados de conexión..."
netstat -ant | awk '{print $6}' | sort | uniq -c
echo "4. Comprobando estadísticas de interfaces..."
netstat -i
}
Guías de Solución de Problemas
- Problemas de Conexión
connection_troubleshoot() {
local port=$1
echo "=== Resolución de Problemas para el Puerto $port ==="
echo "1. Verificando si el puerto está en escucha:"
sudo netstat -tulpn | grep ":$port"
echo "2. Verificando conexiones activas:"
netstat -ant | grep ":$port" | awk '{print $6}' | sort | uniq -c
echo "3. Verificando estados de conexión:"
netstat -ant | grep ":$port" | awk '{print $6}' | sort | uniq -c
}
- Monitoreo de Recursos del Sistema
resource_check() {
echo "=== Verificación de Recursos del Sistema ==="
echo "1. Total de conexiones:"
netstat -ant | wc -l
echo "2. Conexiones por IP:"
netstat -ant | grep ESTABLISHED | \
awk '{print $5}' | cut -d: -f1 | \
sort | uniq -c | sort -nr | head -5
echo "3. Uso de memoria de los procesos de red:"
ps aux | grep -E 'netstat|ss
' | grep -v grep
}
Preguntas Frecuentes (FAQ)
P: ¿Por qué no puedo ver la información del proceso (PID)?
R: Esto suele deberse a permisos. Ejecuta el comando con sudo:
sudo netstat -tulpn
La opción -p requiere privilegios de root para mostrar información del proceso.
P: ¿Cuál es la diferencia entre los estados LISTEN y ESTABLISHED?
R:
- LISTEN: Indica que un servicio está escuchando en ese puerto, esperando conexiones.
- ESTABLISHED: Representa una sesión activa y actualmente conectada.
P: ¿Cómo verifico las conexiones para un puerto específico?
R: Puedes usar grep para filtrar conexiones específicas por puerto:
# Ver todas las conexiones en el puerto 80
netstat -an | grep ":80"
# Ver solo los puertos en escucha
netstat -tunl | grep ":80"
P: ¿Por qué mi comando netstat funciona lentamente?
R: Hay dos razones principales:
1. Resolución de nombres DNS: Usa la opción -n para evitar la resolución de nombres.
2. Demasiadas conexiones: Usa filtros o considera cambiar a ss.
# Ejemplo de comando más rápido
netstat -tan | grep ESTABLISHED
P: ¿Afectará netstat el rendimiento del sistema?
R: El sondeo frecuente puede impactar el rendimiento. Mejores prácticas:
1. Aumenta los intervalos de sondeo.
2. Usa filtros para reducir la salida.
3. Considera usar ss en sistemas grandes.
4. Evita el modo continuo (-c) en sistemas ocupados.
P: ¿Cómo identifico qué aplicación está usando un puerto específico?
R: Usa estos comandos:
# Mostrar el proceso que usa el puerto 80
sudo netstat -tulpn | grep ":80"
# Alternativa usando lsof
sudo lsof -i :80
P: ¿Cómo monitoreo los estados de conexión?
R: Hay varias formas de hacerlo:
# Contar conexiones por estado
netstat -ant | awk '{print $6}' | sort | uniq -c
# Monitorear conexiones establecidas
watch -n 1 'netstat -ant | grep ESTABLISHED | wc -l'
P: ¿Cómo detecto conexiones sospechosas?
R: Busca:
1. Puertos inusuales:
netstat -tulpn | grep -vE ':22|:80|:443'
2. Un alto número de conexiones desde una sola IP:
netstat -ant | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
P: ¿Cómo detecto intentos de escaneo de puertos?
R: Monitorea conexiones SYN_RECV:
netstat -ant | grep SYN_RECV | awk '{print $5}' | cut -d: -f1 | sort | uniq -c
P: ¿Cuál es la diferencia entre las opciones -t y -u?
R:
-t: Muestra solo conexiones TCP.
-u: Muestra solo conexiones UDP.
Puedes combinarlas:
netstat -tu: Muestra tanto TCP como UDP.
P: ¿Cómo guardo la salida de netstat en un archivo?
R: Hay varios métodos:
# Salida básica a un archivo
netstat -ant > network_status.log
# Con marca de tiempo
(date; netstat -ant) > network_status.log
# Registro continuo
while true; do
netstat -ant >> network_log.txt
sleep 300
done
P: ¿Qué significa "Address already in use" en la salida de netstat?
R: Esto indica que un puerto ya está siendo usado por otro proceso. Para identificarlo:
sudo netstat -tulpn | grep "<número_de_puerto>"
P: ¿Por qué veo muchas conexiones TIME_WAIT?
R: TIME_WAIT es normal después de que se cierran las conexiones. Sin embargo, un número excesivo puede indicar:
1. Alta rotación de conexiones.
2. Posibles problemas de red.
3. La aplicación no reutiliza conexiones.
Monitorea con:
netstat -ant | grep TIME_WAIT | wc -l