Introducción
Hola Fronters 👋
Llegamos a la tercera entrega de nuestra serie sobre monitorización de hardware en Linux. Después de explorar la CPU y la memoria RAM, hoy toca el turno de la red. El monitoreo de red es fundamental para diagnosticar problemas de conectividad, detectar cuellos de botella, identificar puertos abiertos y analizar el tráfico en tiempo real.
Vamos a cubrir desde los comandos clásicos hasta herramientas modernas que todo administrador de sistemas debe conocer.
1. ifconfig e ip — Configuración de interfaces
Aunque ifconfig está en desuso, aún lo verás en muchos sistemas legacy. La herramienta moderna es ip del paquete iproute2:
$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:1a:2b:3c:4d:5e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
Con ip también puedes gestionar rutas y estadísticas:
$ ip route show
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100
$ ip -s link show eth0
RX: bytes packets errors dropped missed mcast
1254892345 1234567 0 0 0 0
TX: bytes packets errors dropped carrier collsns
987654321 987654 0 0 0 0
2. netstat y ss — Conexiones activas y puertos
netstat es el clásico; ss es su reemplazo moderno y más rápido:
$ ss -tuln
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:80 [::]:*
LISTEN 0 128 [::]:443 [::]:*
Explicación de flags:
-t: TCP-u: UDP-l: Solo sockets en escucha-n: Sin resolución DNS (más rápido)-p: Muestra el proceso asociado (requiere sudo)
Para ver conexiones activas:
$ ss -tna | head -10
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 192.168.1.100:22 10.0.0.50:54321
ESTAB 0 0 192.168.1.100:443 203.0.113.5:45678
TIME-WAIT 0 0 192.168.1.100:80 198.51.100.20:37281
3. tcpdump — Captura de paquetes
Cuando necesitas ver el tráfico a nivel de paquete, tcpdump es insuperable:
$ sudo tcpdump -i eth0 -n port 80
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
04:30:00.123456 IP 203.0.113.5.45678 > 192.168.1.100.80: Flags [S], seq 123456789, win 65535, length 0
04:30:00.123789 IP 192.168.1.100.80 > 203.0.113.5.45678: Flags [S.], seq 987654321, ack 123456790, win 65535, length 0
Usos comunes:
tcpdump -i eth0 port 22→ tráfico SSHtcpdump -i eth0 host 10.0.0.50→ tráfico hacia/desde una IPtcpdump -i eth0 -w captura.pcap→ guardar a archivo para análisis posteriortcpdump -i eth0 -c 100→ capturar solo 100 paquetes
Tip: Combínalo con Wireshark para análisis visual de los archivos .pcap.
4. nethogs — Ancho de banda por proceso
¿Qué proceso está consumiendo todo el ancho de banda? nethogs te lo dice al instante:
$ sudo nethogs eth0
NetHogs version 0.8.7
PID USER PROGRAM DEV SENT RECEIVED
2345 www-data /usr/sbin/apache2 eth0 1.234 MB/s 5.678 MB/s
1234 mysql /usr/sbin/mysqld eth0 0.234 MB/s 0.567 MB/s
3456 root /usr/bin/ssh eth0 0.012 MB/s 0.034 MB/s
------------------------------------------------------
5. iftop — Tráfico por conexión
Mientras que nethogs muestra por proceso, iftop muestra por conexión:
$ sudo iftop -i eth0 -n
12.5Kb 25.0Kb 37.5Kb 50.0Kb
└──────────────────┴───────────────┴───────────────┴───────────────┴─────────────
203.0.113.5:45678 ─╮ 3.45Kb 5.67Kb 7.89Kb
192.168.1.100:443 ─╯
10.0.0.50:54321 ─╮ 1.23Kb 2.34Kb 3.45Kb
192.168.1.100:22 ─╯
─────────────────────────────────────────────────────────────────────────────────
6. nload — Ancho de banda total
Una herramienta simple y visual para ver el throughput de entrada y salida:
$ nload eth0
Device eth0 (1 Gbit/s):
Incoming: Outgoing:
Curr: 2.34 MB/s Curr: 1.23 MB/s
Avg: 3.45 MB/s Avg: 2.10 MB/s
Min: 0.12 MB/s Min: 0.08 MB/s
Max: 8.90 MB/s Max: 6.78 MB/s
Ttl: 1.23 GB Ttl: 0.89 GB
7. bmon — Monitor bandwidth
bmon ofrece una vista consolidada con gráficos en tiempo real y estadísticas detalladas:
$ bmon -p eth0
eth0 RX TX
bits/s 2.34 MiB/s 1.10 MiB/s
packets/s 3456 p/s 1678 p/s
errors/s 0 p/s 0 p/s
total received 1.23 GiB
total transmitted 0.89 GiB
8. iperf3 — Pruebas de throughput
Para medir el ancho de banda real entre dos máquinas, iperf3 es la herramienta definitiva:
En el servidor:
$ iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
En el cliente:
$ iperf3 -c 192.168.1.100 -t 10 -P 4
[ 4] local 192.168.1.50 port 45678 connected to 192.168.1.100 port 5201
[ 6] local 192.168.1.50 port 45679 connected to 192.168.1.100 port 5201
[ 8] local 192.168.1.50 port 45680 connected to 192.168.1.100 port 5201
[ 10] local 192.168.1.50 port 45681 connected to 192.168.1.100 port 5201
[ ID] Interval Transfer Bitrate Retr
[ 4] 0.00-10.00 sec 112 MBytes 94.0 Mbits/sec 0
[ 6] 0.00-10.00 sec 110 MBytes 92.0 Mbits/sec 0
[ 8] 0.00-10.00 sec 108 MBytes 91.0 Mbits/sec 1
[ 10] 0.00-10.00 sec 111 MBytes 93.5 Mbits/sec 0
[SUM] 0.00-10.00 sec 441 MBytes 370 Mbits/sec 1
Tip: Usa -P 4 (4 hilos paralelos) para saturar el enlace y medir el máximo real.
9. nmap — Escaneo básico
Si bien nmap es una herramienta de seguridad, su uso para diagnóstico de red es invaluable:
$ nmap -sn 192.168.1.0/24
Starting Nmap 7.80 ( https://nmap.org ) at 2026-05-16 10:00 -04
Nmap scan report for 192.168.1.1
Host is up (0.0010s latency).
Nmap scan report for 192.168.1.100
Host is up (0.0005s latency).
Nmap scan report for 192.168.1.150
Host is up (0.0020s latency).
Nmap done: 256 IP addresses (3 hosts up) scanned in 3.45 seconds
Y para ver puertos abiertos en un servidor:
$ nmap -sT -p 1-1000 192.168.1.100
Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for 192.168.1.100
Host is up (0.0005s latency).
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
3306/tcp filtered mysql
10. /proc/net/dev — Estadísticas desde el kernel
Como todo en Linux, la información de red también está disponible en /proc:
$ cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 12345678 123456 0 0 0 0 0 0 12345678 123456 0 0 0 0 0 0
eth0: 987654321 987654 0 0 0 0 0 0 456789012 456789 0 0 0 0 0 0
Útil para scripting — puedes hacer watch -n 1 'cat /proc/net/dev' para monitoreo continuo y parsear los valores con awk o python.
Conclusión
La monitorización de red en Linux es una habilidad esencial para cualquier sysadmin o DevOps. Hemos cubierto:
- Configuración básica con
ipy diagnóstico de interfaces - Conexiones y puertos con
ss - Captura de paquetes con
tcpdump - Ancho de banda por proceso (
nethogs) y por conexión (iftop) - Throughput total (
nload,bmon) - Pruebas de rendimiento con
iperf3 - Escaneo de dispositivos y puertos con
nmap - Acceso directo a estadísticas del kernel via
/proc/net/dev
En el próximo y último artículo de esta serie (Parte IV), veremos cómo monitorizar el almacenamiento en Linux. ¡No te lo pierdas!
Déjanos tus comentarios y comparte si te fue útil 🚀