
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.
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
iproute2paquete, que se utiliza para inspeccionar el socket y muestra información detallada sobre TCP, UDP, puerto de escucha, conexión y su estado, comonetstat.
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:
-tMuestra conexiones TCP, cubriendo el tráfico más común.-nOmite las búsquedas de DNS y muestra la dirección IP original (más rápida y clara).-pMuestra 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.
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 internet | Ancho de banda por actuación (transmisión en directo) | Encuentre rápidamente el programa detrás del tráfico |
| si arriba | Ancho de banda por conexión (tiempo real) | Compruebe qué hosts remotos están involucrados |
| SS-tnp | Abrir conexión a PID | Confirmar la conexión activa del programa. |
| /proceso/ | archivo de conexión original | Sistema 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.









