Comando nethogs de Linux
Manual completo de comandos de Linux
nethogs es una herramienta de línea de comandos de Linux de código abierto que se utiliza para monitorear en tiempo real el uso de ancho de banda de red por proceso. A diferencia de las herramientas tradicionales de monitoreo de red (como iftop), nethogs no estadísticas de tráfico basadas en puertos o protocolos, sino que muestra directamente la actividad de red de cada proceso.
Por qué usar nethogs
En los sistemas Linux, cuando la red presenta anomalías, los administradores generalmente necesitan localizar rápidamente qué proceso está consumiendo una gran cantidad de ancho de banda. nethogs ofrece las siguientes ventajas:
- Monitoreo a nivel de proceso: muestra directamente el tráfico de red de cada proceso
- Actualización en tiempo real: actualiza los datos cada segundo por defecto
- Sin necesidad de configuración: listo para usar, no requiere configuraciones complejas
- Ligero: bajo consumo de recursos, adecuado para entornos de producción
Instalar nethogs
Sistemas Ubuntu/Debian
Ejemplo
sudo apt-get install nethogs
Sistemas CentOS/RHEL
Ejemplo
sudo yum install nethogs
Compilar e instalar desde el código fuente
Ejemplo
cd nethogs
make && sudo make install
Uso básico
Monitorear todas las interfaces de red
sudo nethogs
Ejemplo de salida:
PID USER PROGRAM DEV SENT RECEIVED 1234 root /usr/bin/ssh eth0 12.456 5.678 KB/sec 5678 bob /usr/bin/firefox wlan0 45.789 32.123 KB/sec
Monitorear una interfaz de red específica
sudo nethogs eth0
Configuración del intervalo de actualización (segundos)
sudo nethogs -d 5 # 每5秒刷新一次
Opciones comunes del comando
| Opción | Descripción |
|---|---|
-d |
Establece el intervalo de actualización (segundos) |
-c |
Salir después de actualizar un número específico de veces |
-t |
Modo de rastreo (muestra el tráfico acumulado) |
-p |
Modo promiscuo (escucha todo el tráfico) |
-V |
Muestra la información de versión |
-h |
Muestra la información de ayuda |
Uso avanzado
1. Rastrear un proceso específico
sudo nethogs -p | grep "进程名"
2. Guardar los resultados de monitoreo en un archivo
sudo nethogs -t > network_log.txt
3. Monitorear procesos de un usuario específico
sudo nethogs -u username
4. Combinar opciones
sudo nethogs -d 10 -c 6 eth0 # 每10秒刷新一次,共刷新6次后退出
Explicación de los campos de salida
La salida de nethogs incluye la siguiente información clave:
- PID: ID del proceso
- USER: usuario que ejecuta el proceso
- PROGRAM: nombre del proceso o línea de comandos
- DEV: interfaz de red utilizada
- SENT: velocidad de envío de datos del proceso (KB/seg)
- RECEIVED: velocidad de recepción de datos del proceso (KB/seg)
Escenarios de aplicación práctica
Escenario 1: Diagnosticar problemas de red lenta
sudo nethogs
Al observar qué proceso consume más ancho de banda, localice rápidamente el origen del problema.
Escenario 2: Monitorear tráfico anómalo del servidor
sudo nethogs -d 30 -c 12 > /var/log/nethogs.log
Registrar cada 30 segundos, durante un total de 6 minutos de actividad de red.
Escenario 3: Limitar el ancho de banda de un proceso específico
Ejemplo
sudo nethogs
# Luego use tc o wondershaper para limitar el ancho de banda
sudo wondershaper eth0 1024 512 # Limitar subida a 1024Kbps y bajada a 512Kbps
Solución de problemas comunes
Problema 1: Permisos insuficientes
Error: opening device eth0: Operation not permitted
Solución: ejecute nethogs con sudo o como usuario root.
Problema 2: No se puede reconocer el nombre del proceso
PID USER PROGRAM DEV SENT RECEIVED 1234 - - eth0 12.456 5.678 KB/sec
Solución: puede ser que el proceso haya finalizado, o que nethogs no tenga permisos suficientes para obtener la información del proceso.
Problema 3: No se admite una interfaz de red específica
Error: No such device exists (device_name)
Solución: use elifconfigoip acomando para confirmar el nombre correcto de la interfaz.
Comparación de herramientas alternativas
| Herramienta | Características | Escenario adecuado |
|---|---|---|
| nethogs | Muestra el tráfico por proceso | Localizar rápidamente procesos problemáticos |
| iftop | Muestra el tráfico por conexión | Analizar conexiones de red específicas |
| nload | Muestra el tráfico total por interfaz | Monitorear el uso general de ancho de banda |
| bmon | Interfaz gráfica | Ver tendencias de tráfico de forma visual |
Resumen
nethogs es una herramienta de diagnóstico de red indispensable en el kit de herramientas del administrador de sistemas Linux, especialmente adecuada para:
- Identificar rápidamente procesos con actividad de red anómala
- Monitorear el uso de ancho de banda de cada servicio en el servidor
- Solucionar problemas de rendimiento de red
Con los usos básicos y consejos avanzados presentados en este artículo, debería poder utilizar nethogs con soltura para monitorear y gestionar el tráfico de red del sistema.
Otras extensiones