Cómo ver puertos abiertos en Linux

Puertos abiertos en Linux

Cómo ver puertos abiertos en Linux

Cuando administrás un servidor Linux, es muy importante saber qué puertos están abiertos y qué programas los están utilizando. Esto sirve para revisar la seguridad del sistema, diagnosticar problemas de red o verificar si un servicio está funcionando correctamente.

En esta guía vas a aprender cómo ver puertos abiertos en Linux usando comandos simples, con ejemplos fáciles de entender.


Qué es un puerto en Linux

Un puerto de red es un punto de comunicación que usan los programas para enviar y recibir datos.

Por ejemplo:

  • el puerto 80 se usa para sitios web (HTTP)
  • el puerto 443 para sitios seguros (HTTPS)
  • el puerto 22 para conexiones SSH

Cuando un programa está escuchando en un puerto, significa que está esperando conexiones desde la red.


Ver puertos abiertos con ss

El comando más moderno para ver puertos abiertos en Linux es ss.

Para listar todos los puertos abiertos ejecutá:

ss -tuln

Significado de las opciones:

  • t → conexiones TCP
  • u → conexiones UDP
  • l → puertos en escucha
  • n → mostrar números de puerto (sin resolver nombres)

Ejemplo de salida:

Netid  State  Local Address:Port
tcp    LISTEN 0.0.0.0:22
tcp    LISTEN 0.0.0.0:80
tcp    LISTEN 0.0.0.0:443

Esto indica que el sistema tiene abiertos los puertos 22, 80 y 443.


Ver qué proceso usa un puerto

También podés ver qué programa está usando cada puerto.

ss -tulnp

Ejemplo de salida:

tcp LISTEN 0.0.0.0:22 users:(("sshd",pid=732))
tcp LISTEN 0.0.0.0:80 users:(("nginx",pid=1021))

Esto significa:

  • el puerto 22 lo usa sshd
  • el puerto 80 lo usa nginx

Este comando es muy útil para diagnosticar conflictos de puertos.


Ver puertos abiertos con netstat

Otro comando muy conocido es netstat. Aunque es más antiguo, todavía se usa en muchos sistemas.

netstat -tuln

Ejemplo de salida:

Proto Local Address     State
tcp   0.0.0.0:22        LISTEN
tcp   0.0.0.0:80        LISTEN

Opciones utilizadas:

  • t → TCP
  • u → UDP
  • l → puertos abiertos
  • n → mostrar números de puerto

Si querés ver también los procesos:

netstat -tulnp

Ver si un puerto específico está abierto

A veces solo querés saber si un puerto determinado está en uso.

Podés filtrar con grep.

Ejemplo para revisar el puerto 80:

ss -tuln | grep :80

Si aparece una línea, significa que el puerto está activo.


Ver puertos abiertos con lsof

El comando lsof también permite ver puertos de red utilizados por procesos.

lsof -i

Ejemplo de salida:

COMMAND PID USER   TYPE DEVICE NODE NAME
sshd    732 root   IPv4       TCP *:22 (LISTEN)
nginx  1021 www    IPv4       TCP *:80 (LISTEN)

Esto muestra:

  • el programa
  • el puerto
  • el tipo de conexión

Ver puertos abiertos desde otra máquina

Si querés comprobar puertos abiertos desde otro equipo, podés usar una herramienta como nmap.

Ejemplo:

nmap 192.168.1.10

Esto mostrará qué puertos están accesibles desde la red.

Ejemplo de resultado:

PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
443/tcp open https

Esto se utiliza mucho para auditorías de seguridad y diagnóstico de red.

Scroll to Top