1. Introducción
Para muchos usuarios que trabajan con Ubuntu, gestionar los puertos es un aspecto crucial para mantener la seguridad del sistema y el rendimiento de la red. En particular, comprobar los puertos abiertos es esencial para prevenir accesos no autorizados al ejecutar servicios o manejar la comunicación de red. Además, la inspección de puertos ayuda a solucionar problemas y a optimizar la configuración de la red.
Este artículo ofrece una explicación detallada de cómo comprobar los puertos en Ubuntu e introduce métodos basados en comandos para hacerlo. Tanto si eres un principiante como un usuario intermedio de Ubuntu, la información aquí será de gran utilidad.
2. ¿Qué son los puertos?
Un número de puerto actúa como una “puerta de enlace” que permite a un ordenador enviar datos a un servicio o proceso específico durante la comunicación. La comunicación en red utiliza principalmente dos tipos de protocolos: TCP y UDP. TCP es un protocolo orientado a la conexión que establece una conexión antes de la comunicación para garantizar la fiabilidad de los datos. UDP, por otro lado, es un protocolo sin conexión que envía datos sin establecer una conexión, proporcionando una transmisión más rápida.
Diferencias entre TCP y UDP
- TCP (Transmission Control Protocol): Un protocolo diseñado para una comunicación fiable que asegura que los datos lleguen correctamente. Se usa habitualmente para servicios como servidores web (HTTP/HTTPS) y SSH.
- UDP (User Datagram Protocol): A diferencia de TCP, no garantiza una comunicación fiable, pero permite una transmisión de datos de baja latencia. Se utiliza para servicios en tiempo real como streaming y VoIP.
Comprender los números de puerto desempeña un papel esencial en la gestión de la seguridad y el rendimiento de la red.
3. Lista de comandos para comprobar puertos en Ubuntu
Ubuntu ofrece varios comandos para verificar los puertos abiertos en ese momento. A continuación se presentan algunos de los comandos más utilizados.
1. Comando netstat
netstat es un comando potente que muestra información sobre conexiones de red, tablas de enrutamiento y estadísticas de interfaces. Puedes usar el siguiente comando para comprobar los puertos en escucha:
sudo netstat -lntu
-l: Mostrar solo puertos en escucha-n: Mostrar direcciones IP y números de puerto en formato numérico-t: Mostrar puertos TCP-u: Mostrar puertos UDP
2. Comando ss
ss se usa ampliamente como sustituto de netstat y puede mostrar los puertos en escucha de forma más eficiente. Utiliza el siguiente comando:
ss -lntu
ss se considera superior a netstat debido a su capacidad para obtener rápidamente información detallada sobre los sockets de red.
3. Comando lsof
lsof enumera los procesos que han abierto archivos, y también puede usarse para comprobar qué procesos están utilizando puertos de red:
sudo lsof -i
4. Comando nmap
nmap es una herramienta conocida en seguridad de redes para escanear puertos abiertos e identificar servicios. El siguiente comando escanea todos los puertos en localhost:
sudo nmap -n -PN -sT -sU -p- localhost

4. Apertura y cierre de puertos
Puedes reforzar la seguridad de tu sistema Ubuntu abriendo o cerrando puertos. Ubuntu incluye una herramienta de firewall sencilla llamada ufw (Uncomplicated Firewall), que permite gestionar los puertos de forma fácil.
Apertura de puertos con ufw
Por ejemplo, para permitir tráfico HTTP en el puerto 80, usa el siguiente comando:
sudo ufw allow 80
Puedes abrir el puerto SSH (22) de la misma manera:
sudo ufw allow 22
Cierre de puertos con ufw
Para cerrar un puerto abierto, utiliza el siguiente comando:
sudo ufw delete allow 80
Esto eliminará la regla que permite el puerto 80.
5. Ejemplo práctico: comprobar un puerto específico
A continuación se muestra un ejemplo práctico de cómo comprobar un puerto específico. Por ejemplo, para verificar si SSH está escuchando en el puerto 22, usa el comando netstat o ss de la siguiente forma:
ss -lnt | grep :22
También puedes comprobarlo usando lsof:
sudo lsof -i :22
Los resultados deberían confirmar que el servicio SSH está escuchando en el puerto 22.
6. Problemas comunes y soluciones
Hay algunos problemas comunes que pueden surgir al comprobar o abrir puertos. A continuación se presentan los problemas típicos y sus soluciones.
El puerto no está abierto
Si un puerto parece no estar abierto, primero verifica que la configuración del cortafuegos sea correcta. Para comprobar el estado de ufw, usa el siguiente comando:
sudo ufw status
Si el cortafuegos no está bloqueando el puerto, entonces confirma que el servicio correspondiente esté ejecutándose correctamente. Por ejemplo, para verificar el funcionamiento de SSH, usa este comando:
sudo systemctl status ssh
7. Conclusión
Este artículo explicó los comandos y métodos esenciales para comprobar puertos en Ubuntu. Inspeccionar los puertos es vital para mantener la seguridad de la red y la estabilidad del sistema. En particular, gestionar los puertos de escucha accesibles desde el exterior es crucial para minimizar vulnerabilidades. Sigue los pasos presentados aquí para administrar y asegurar adecuadamente los puertos de tu sistema en Ubuntu.
