Comando nethogs de Linux

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:

  1. Monitoreo a nivel de proceso: muestra directamente el tráfico de red de cada proceso
  2. Actualización en tiempo real: actualiza los datos cada segundo por defecto
  3. Sin necesidad de configuración: listo para usar, no requiere configuraciones complejas
  4. Ligero: bajo consumo de recursos, adecuado para entornos de producción

Instalar nethogs

Sistemas Ubuntu/Debian

Ejemplo

sudo apt-get update
sudo apt-get install nethogs

Sistemas CentOS/RHEL

Ejemplo

sudo yum install epel-release
sudo yum install nethogs

Compilar e instalar desde el código fuente

Ejemplo

git clone https://github.com/raboof/nethogs
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:

  1. PID: ID del proceso
  2. USER: usuario que ejecuta el proceso
  3. PROGRAM: nombre del proceso o línea de comandos
  4. DEV: interfaz de red utilizada
  5. SENT: velocidad de envío de datos del proceso (KB/seg)
  6. 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

# Primero use nethogs para encontrar procesos de alto tráfico
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:

  1. Identificar rápidamente procesos con actividad de red anómala
  2. Monitorear el uso de ancho de banda de cada servicio en el servidor
  3. 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.


Linux 命令大全Manual completo de comandos de Linux

Otras extensiones