Tutoriales

4 herramientas para encontrar qué programas utilizan su ancho de banda en Linux

La red de su servidor Linux está al límite y no sabe qué la está consumiendo, así que aquí le mostramos cómo encontrar el programa exacto detrás de ella en 2 minutos: nethogs, iftop, ss,así como /proc Sistema de archivos.

Esto sucede a menudo. Los servidores comienzan a sentirse lentos, las cargas se atascan al 100% o notas que los cargos de la nube aumentan sin ningún motivo claro.

lo compruebas arriba o arribapero todo parece estar bien porque estas herramientas solo muestran la CPU y la memoria, no el uso de la red. Entonces sabes que algo está consumiendo ancho de banda, pero en realidad no puedes ver qué es.

Linux ya cuenta con algunas herramientas sencillas para ayudar con este problema. Una vez que se acostumbre a ellos, podrá descubrir rápidamente los procesos detrás de su tráfico en lugar de simplemente adivinar y reiniciar servicios al azar.

Funciona con las configuraciones de Linux más comunes, como ubuntu, RHELy distribuciones modernas similares, por lo que puedes utilizar el mismo enfoque en casi todas partes.

Boletín semanal de TechMint

conseguir Aprenda el curso intensivo de 7 días de Linux Únase a más de 34.000 profesionales de Linux que leen gratis todos los jueves.

Publicaciones relacionadas

Revise su correo electrónico para ver el enlace mágico para comenzar.

Algo salió mal. Por favor inténtalo de nuevo.

Instala las herramientas que necesitas

Estas herramientas no siempre están instaladas de forma predeterminada, por lo que primero debes agregarlas. verás sudo En el siguiente comando, esto simplemente significa que está ejecutando el comando con privilegios de administrador. Si Linux arroja «Permission denied«Error, generalmente porque sudo Desaparecido.

En Ubuntu o Debian:

sudo apt install nethogs iftop net-tools -y

En RHEL o Rocky Linux:

sudo dnf install nethogs iftop net-tools -y

Las tres herramientas son livianas y normalmente solo tardan unos segundos en ejecutarse o comprenderse después de la instalación.

  • cerdo de internet: muestra el uso de ancho de banda de cada proceso para que pueda identificar rápidamente qué aplicación está consumiendo tráfico de red.
  • si arriba: Muestra el tráfico de red en tiempo real entre conexiones, permitiéndole saber quién está hablando con quién en tiempo real.
  • netstat (de herramientas de red): una herramienta alternativa que muestra las conexiones abiertas y la actividad básica de la red para una inspección rápida
  • SS: Preinstalado como parte de los sistemas Linux modernos iproute2 paquete, que se utiliza para inspeccionar el socket y muestra información detallada sobre TCP, UDP, puerto de escucha, conexión y su estado, como netstat.
Si desea observar más de cerca el estado de su servidor en tiempo real, Herramienta de monitoreo del rendimiento de Linux Los cursos de Pro TecMint cubren CPU, memoria, disco y red de un extremo a otro.

1. Utilice nethogs para encontrar el uso del ancho de banda de la red en cada viaje.

Cuando necesitas una respuesta rápida a «¿Qué está usando realmente mi ancho de banda ahora?«, nethogs Suele ser la forma más rápida de conseguirlo. En lugar de mostrar el uso total de la red como la mayoría de las herramientas, desglosa el tráfico por ID de proceso (PID), que es simplemente un número que Linux asigna a cada programa en ejecución, para que pueda ver exactamente qué programa es responsable del tráfico.

Para ejecutarlo, apúntelo a su interfaz web activa. reemplazar Utilice el nombre de su interfaz real e ignore los corchetes angulares, ya que son solo marcadores de posición. Si no está seguro de cómo se llama su interfaz, puede verificar con el siguiente comando ip link show.

sudo nethogs 

En la mayoría de los servidores y máquinas virtuales, esta interfaz suele estar eth0por lo que normalmente se ve así:

sudo nethogs eth0

Cuando se ejecute, verá un resultado como este:

NetHogs version 0.8.7

    PID USER     PROGRAM                      DEV        SENT      RECEIVED
  14823 root     /usr/bin/rsync               eth0       12.847     0.143 KB/sec
   9301 www-data /usr/sbin/apache2            eth0        0.734     4.211 KB/sec
   1204 root     sshd: ravi@pts/0             eth0        0.012     0.008 KB/sec
      0 root     unknown TCP                  eth0        0.000     0.000 KB/sec

  TOTAL                                                  13.593     4.362 KB/sec

Esta es la parte útil. puedes ver inmediatamente rsync envía la mayor cantidad de datos. Si no inicia copias de seguridad ni sincroniza archivos, es posible que esté experimentando picos de ancho de banda. El PID de la izquierda (p. ej. 14823) es lo que utilizará más adelante cuando desee examinar más a fondo el proceso o detenerlo.

de acuerdo a q Salga de los nethogs.

pista: de acuerdo a m Es posible cambiar entre los modos de visualización KB/seg, KB y MB dentro de nethogs. En un servidor ocupado, MB hace que los números sean más fáciles de leer de un vistazo.

Si esto te ahorra 20 minutos de adivinanzas, Que sigue mirando el mismo pico de tráfico misterioso.

2. Utilice iftop para monitorear conexiones de red activas en Linux

entonces nethogs le dice qué programa está usando ancho de banda, pero iftop Vaya un paso más allá y muestre con quién se comunica realmente el programa en la red. En otras palabras, desglosa el tráfico por conexión y dirección IP remota.

Cuando combinas estas dos herramientas, resulta más fácil entender lo que está pasando porque nethogs le da el nombre del proceso, y iftop Muestra el destino de este tráfico.

sudo iftop -i eth0

Verá una vista instantánea como esta:

191Mb                   382Mb                   573Mb            764Mb           955Mb
└───────────────────────────────────────────────────────────────────────────────────────────────────────
 your-server.example.com          => 203.0.113.45.storage.net             4.92Mb  4.98Mb  4.76Mb
                                   198.51.100.22.cdn.net                 1.23Mb  1.18Mb  1.20Mb
                                  

The key thing to read here is the direction arrows. The => line shows traffic going out from your server to a remote system, while the line shows traffic coming back in.

In this example, you can see the server is sending a lot of data to 203.0.113.45, which strongly suggests something like a backup job or file sync running in the background. If you did not expect that traffic, that is your first thing to investigate.

Inside iftop, you can press p to toggle port display, which helps you figure out which service is responsible for a connection, especially when multiple services talk to the same host.

Note: iftop shows you connections and addresses, while nethogs shows you the program. Keep both open side by side, and you’ll see the full picture, what’s running, and where it’s sending data.

If iftop’s arrows finally made network traffic click for you, who’s still confused about upload versus download.

3. Check Open Network Connections by Process Using ss

Once nethogs points you to a suspicious PID, ss helps you dig into exactly what that process is doing at the socket level. It shows active network connections and, with the right flags, maps them back to the program name and PID.

sudo ss -tnp

Los significados de estas banderas son los siguientes:

  • -t Muestra conexiones TCP, cubriendo el tráfico más común.
  • -n Omite las búsquedas de DNS y muestra la dirección IP original (más rápida y clara).
  • -p Muestra el nombre del proceso y el PID adjunto a cada conexión.

Cuando lo ejecutes, obtendrás un resultado como este:

State    Recv-Q Send-Q Local Address:Port  Peer Address:Port  Process
ESTAB    0      0      10.0.2.15:22        192.168.1.5:54322  users:(("sshd",pid=1204,fd=4))
ESTAB    0      52608  10.0.2.15:443       203.0.113.45:9000  users:(("rsync",pid=14823,fd=3))
ESTAB    0      0      10.0.2.15:80        198.51.100.22:62104 users:(("apache2",pid=9301,fd=12))

Las columnas importantes aquí son Send-Qque muestra cuántos datos hay actualmente en cola y esperando ser enviados. En este ejemplo, rsync La conexión tiene un tiempo de espera de aproximadamente 52 KB, lo que significa que está enviando datos activamente a 203.0.113.45.

Ahora tiene la imagen completa en un solo lugar: nombre del proceso, PID, direcciones locales y remotas, y puertos. Esto suele ser suficiente para decidir si el tráfico es el esperado (como una copia de seguridad o una implementación) o si debe detenerlo inmediatamente e investigar.

Si quieres saber más profundamente ss y leer la conexión de red, Curso SSH en Pro TecMint Cubre la verificación de sockets en el contexto de túneles SSH y reenvío de puertos.

4. Utilice /proc para encontrar actividad de red a través de PID en Linux

A veces no tienes la oportunidad de instalar herramientas como nethogs o iftopespecialmente en entornos mínimos como contenedores, shells de rescate o máquinas virtuales delgadas. En estos casos, Linux aún le proporciona métodos integrados para rastrear lo que está haciendo el proceso. /proc.

/proc es el sistema de archivos virtual de Linux almacenado en la memoria. Expone detalles inmediatos sobre cada proceso en ejecución, incluidos los descriptores de archivos abiertos. Las conexiones de red también se muestran aquí como archivos de «socket» debajo de cada ID de proceso.

sudo ls -la /proc//fd | grep socket

reemplazar Utilice el ID de proceso que encontró anteriormente (por ejemplo, de nethogs).

por lo mismo rsync Por ejemplo, se ve así:

sudo ls -la /proc/14823/fd | grep socket

Obtendrá un resultado como este:

lrwxrwxrwx 1 root root 64 Jun 15 11:22 3 -> socket:[1048576]
lrwxrwxrwx 1 root root 64 Jun 15 11:22 4 -> socket:[1048602]

cada socket:[number] La entrada representa una conexión de red activa que el proceso mantiene abierta. El número entre paréntesis es la referencia interna principal del socket.

Para profundizar más, puede comparar ese número de enchufe con /proc/net/tcp (o /proc/net/tcp6 para IPv6). El archivo contiene una tabla de conexiones con direcciones IP, puertos y estados locales y remotos.

No es tan rápido ni tan legible como los nethogs, pero la ventaja es simple: siempre está disponible. Incluso en un sistema mínimo sin paquetes adicionales instalados, /proc Aún le permite rastrear exactamente a qué está conectado el proceso.

Si esto te ayuda a encontrar finalmente tu tráfico misterioso, porque alguien en tu Slack está luchando contra lo mismo.

referencia rápida

herramienta¿Qué muestra?más adecuado
cerdo de internetAncho de banda por actuación (transmisión en directo)Encuentre rápidamente el programa detrás del tráfico
si arribaAncho de banda por conexión (tiempo real)Compruebe qué hosts remotos están involucrados
SS-tnpAbrir conexión a PIDConfirmar la conexión activa del programa.
/proceso//fdarchivo de conexión originalSistema mínimo sin nada instalado.
en conclusión

Ahora puede utilizar cuatro métodos prácticos para comprender el uso del ancho de banda en su servidor Linux. nethogs le brinda una vista rápida por proceso, iftop Mostrar qué sistemas remotos están involucrados, ss Le ayuda a conectar el tráfico nuevamente a un PID específico y /proc Le ofrece una opción de último recurso cuando no se puede instalar nada.

En la mayoría de situaciones de la vida real no necesitas los cuatro porque nethogs Utilizado solo suele ser suficiente para detectar problemas en un minuto, especialmente en servidores ocupados.

La próxima vez que vea un pico repentino en la red, esto es lo que debe comenzar:

sudo nethogs eth0

En muchos casos obtendrá un PID Casi de inmediato. A partir de ahí, puedes usar ss Verifique la conexión, iftop Vea hacia dónde se dirige el tráfico o simplemente detenga el proceso si no debería estar ejecutándose. A menudo, la causa raíz es simple, como una tarea de respaldo que se ejecuta dos veces, una tarea cron que falla o la aplicación se atasca en un ciclo de reintento.

Entonces, el flujo de trabajo es bastante simple una vez que lo comprende: identifique el proceso, confirme la conexión y determine si es el comportamiento esperado o si es necesario cerrarlo o arreglarlo.

Cuando algo consume ancho de banda, ¿cuál es la primera herramienta que utilizas? Deja tu respuesta en los comentarios, especialmente si tienes un método más rápido que los nethogs..

Si este artículo fue útil, Con alguien de tu equipo.

Boletín semanal de TechMint

conseguir Aprenda el curso intensivo de 7 días de Linux Únase a más de 34.000 profesionales de Linux que leen gratis todos los jueves.

Revise su correo electrónico para ver el enlace mágico para comenzar.

Algo salió mal. Por favor inténtalo de nuevo.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba