¿Qué está escuchando en cada puerto? ss -ltnp y compañía
El comando que más uso para entender un servidor Linux que no conozco (o que ya no recuerdo). Cómo leer su salida y dos trucos para Docker y Windows.
Cuando entro en un servidor y quiero saber qué hay corriendo, el primer comando que escribo es este:
sudo ss -ltnp
l→ solo lo que está escuchando (listening).t→ conexiones TCP.n→ muestra números de puerto en vez de nombres («22» en vez de «ssh»).p→ qué proceso es el dueño de cada puerto (por eso elsudo).
Cómo leer la salida
Un trozo de lo que me sale en la Raspberry Pi:
0.0.0.0:22 users:(("sshd",pid=775,fd=3))
0.0.0.0:3000 users:(("docker-proxy",pid=1376405,fd=8))
0.0.0.0:8080 users:(("python",pid=3793306,fd=4))
127.0.0.1:8222 users:(("docker-proxy",pid=1397652,fd=8))
127.0.0.1:631 users:(("cupsd",pid=3913005,fd=7))
La columna importante es la de la dirección:
| Dirección | Quién puede conectarse |
|---|---|
0.0.0.0:puerto o [::]:puerto |
Cualquiera que llegue a la máquina (toda la red de casa) |
127.0.0.1:puerto |
Solo la propia máquina |
100.x.x.x:puerto |
Solo por esa interfaz (por ejemplo, la de Tailscale) |
Así de un vistazo compruebo, por ejemplo, que mi gestor de contraseñas (8222) solo escucha en local, como quiero.
Si pone docker-proxy
Cuando el proceso es docker-proxy, el puerto pertenece a un contenedor. Para saber a cuál:
docker ps --format '{{.Names}}\t{{.Ports}}'
Otros usos que me salvan
-
¿Por qué no arranca mi servicio? Si dice «address already in use», busca quién tiene el puerto:
sudo ss -ltnp | grep :8080 -
Conexiones activas (no solo las que escuchan): quita la
l.ss -tnp -
También UDP (DNS, WireGuard…): añade
u.sudo ss -ltunp
En Windows
El equivalente en PowerShell:
Get-NetTCPConnection -State Listen | Sort-Object LocalPort |
Select-Object LocalAddress, LocalPort, OwningProcess
O el clásico netstat -ano | findstr LISTENING, que da el número de proceso para buscarlo en el Administrador de tareas.
Por qué es tan útil
Porque la documentación y tus notas pueden estar desactualizadas, pero lo que escucha en cada puerto es la verdad. Es la forma más rápida de hacer inventario de un servidor, y de descubrir cosas que tienes abiertas sin saberlo.
¿Te has quedado con la idea?
Tres preguntas rápidas. Cada acierto suma 10 XP.