Puertos abiertos
Los puertos se abren en un sistema mediante varios servicios en segundo plano como servidor http, servidor de base de datos, servidor smtp, etc.
Si está ejecutando un servidor web e inicia dicho servicio, abrirá un puerto para que otros sistemas en Internet o en la red local puedan conectarse a él.
Después de iniciar un servicio en su sistema, debe verificar si el servicio abre el puerto deseado o no.
Si el puerto no está abierto, es probable que el servicio no haya podido iniciarse o haya dejado de funcionar debido a algún error.
Comprueba los puertos abiertos con Netstat
Una forma muy sencilla de verificar los puertos abiertos en un servidor o sistema Linux es usar los comandos netstat. Aunque el comando netstat está diseñado para verificar las conexiones de red en un sistema, puede verificar e informar puertos abiertos fácilmente.
La sintaxis es muy simple. Debe utilizar las siguientes opciones:
"-l" (for listening connections) "-t" (for tcp connections) "-p" (process name and id that opened the port) "-n" (show port numbers instead of names)
Aquí hay un ejemplo rápido:
$ sudo netstat -ltpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:33060 0.0.0.0:* LISTEN 1294/mysqld tcp 0 0 0.0.0.0:6600 0.0.0.0:* LISTEN 1/init tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1294/mysqld tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1283/apache2 tcp 0 0 0.0.0.0:1716 0.0.0.0:* LISTEN 1748/kdeconnectd tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 735/systemd-resolve tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1471/cupsd
El ejemplo anterior muestra claramente que apache ha abierto el puerto http (80) y mysql ha abierto el puerto 3306.
Si omite la opción "-n", en su lugar se mostrarán los nombres de los puertos.
$ sudo netstat -ltp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:33060 0.0.0.0:* LISTEN 1294/mysqld tcp 0 0 0.0.0.0:6600 0.0.0.0:* LISTEN 1/init tcp 0 0 localhost:mysql 0.0.0.0:* LISTEN 1294/mysqld tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN 1283/apache2 tcp 0 0 0.0.0.0:1716 0.0.0.0:* LISTEN 1748/kdeconnectd tcp 0 0 localhost:domain 0.0.0.0:* LISTEN 735/systemd-resolve tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN 1471/cupsd
Verificar puerto abierto específico
Si desea enumerar un puerto abierto específico, filtre la salida con grep. El siguiente comando filtra el número de puerto que contiene 3306
$ sudo netstat -ltpn | grep "3306" tcp 0 0 0.0.0.0:33060 0.0.0.0:* LISTEN 1294/mysqld tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1294/mysqld
Conclusión
Para obtener más información sobre el comando netstat, consulte nuestro tutorial aquí:
10 ejemplos básicos del comando Linux Netstat
Espero que haya sido útil. Si tiene preguntas o comentarios, háganoslo saber en los comentarios a continuación.