GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo encontrar el número de puerto de un servicio en Linux

Es posible que a menudo necesite encontrar los nombres y números de los puertos por algunas razones. Si es así, estás de suerte. Hoy, en este breve tutorial, vamos a ver las formas más fáciles y rápidas de encontrar el número de puerto de un servicio en el sistema operativo Linux. Podría haber muchos métodos para hacerlo, pero solo conozco los siguientes tres métodos en este momento. Sigue leyendo.

Encuentre el número de puerto de un servicio en Linux

Método 1:uso del comando Grep:

Para encontrar el número de puerto predeterminado de un servicio dado en Linux usando el comando grep, simplemente ejecute:

$ grep <port> /etc/services

Por ejemplo, para encontrar el puerto predeterminado de un servicio SSH, simplemente ejecute:

$ grep ssh /etc/services

Es así de simple. Este comando debería funcionar en la mayoría de las distribuciones de Linux. Aquí está el resultado de muestra de mi cuadro de prueba de Arch Linux:

ssh 22/tcp
ssh 22/udp
ssh 22/sctp
sshell 614/tcp
sshell 614/udp
netconf-ssh 830/tcp
netconf-ssh 830/udp
sdo-ssh 3897/tcp
sdo-ssh 3897/udp
netconf-ch-ssh 4334/tcp
snmpssh 5161/tcp
snmpssh-trap 5162/tcp
tl1-ssh 6252/tcp
tl1-ssh 6252/udp
ssh-mgmt 17235/tcp
ssh-mgmt 17235/udp

Como puede ver en el resultado anterior, el número de puerto predeterminado del servicio SSH es 22.

Busquemos el número de puerto del servidor web Apache. Para hacerlo, el comando sería:

$ grep http /etc/services
# http://www.iana.org/assignments/port-numbers
http 80/tcp www www-http # WorldWideWeb HTTP
http 80/udp www www-http # HyperText Transfer Protocol
http 80/sctp # HyperText Transfer Protocol
https 443/tcp # http protocol over TLS/SSL
https 443/udp # http protocol over TLS/SSL
https 443/sctp # http protocol over TLS/SSL
gss-http 488/tcp
gss-http 488/udp
webcache 8080/tcp http-alt # WWW caching service
webcache 8080/udp http-alt # WWW caching service
[...]

¿Qué tal el número de puerto FTP? ¡Eso es fácil!

$ grep ftp /etc/services
ftp-data 20/tcp
ftp-data 20/udp
# 21 is registered to ftp, but also used by fsp
ftp 21/tcp
ftp 21/udp fsp fspd
tftp 69/tcp
[...]

Método 2:usar el comando getent

Como puede ver, los comandos anteriores muestran todos los nombres y números de puerto para el término de búsqueda dado "ssh", "http" y "ftp". Eso significa que obtendrá una salida bastante larga de todos los nombres de puertos que coincidan con el término de búsqueda dado.

Sin embargo, puede reducir el resultado a la salida exacta usando el comando "getent" como se muestra a continuación:

$ getent services ssh
ssh 22/tcp
$ getent services http
http 80/tcp www www-http
$ getent services ftp
ftp 21/tcp

Si no sabe el nombre del puerto pero sí el número del puerto, simplemente reemplace el nombre del puerto con el número como se muestra a continuación:

$ getent services 80
http 80/tcp

Para mostrar todos los nombres y números de puerto, simplemente ejecute:

$ getent services

Lectura sugerida:

  • Cómo cambiar el puerto predeterminado de Apache a un puerto personalizado
  • Cómo cambiar el puerto FTP predeterminado a un puerto personalizado
  • Cómo cambiar el puerto predeterminado de SSH a un puerto personalizado

Método 3:uso de la utilidad Whatportis

El Quéporto es un simple script de python que se usa para encontrar nombres y números de puertos. A diferencia de los comandos anteriores, esta utilidad muestra la salida en un agradable formato de columna tabular.

Asegúrese de haber instalado el administrador de paquetes PIP. Si no, consulte el siguiente enlace.

  • Cómo administrar paquetes de Python usando Pip

Una vez instalado PIP, ejecute el siguiente comando para instalar la utilidad Whatportis.

$ pip install whatportis

Ahora, puede encontrar qué puerto está asociado con un servicio como se muestra a continuación.

$ whatportis ssh
$ whatportis ftp
$ whatportis http

Salida de muestra de mi servidor CentOS 7:

Encuentre el número de puerto de un servicio en Linux

Si no sabe el nombre exacto de un servicio, use --like bandera para mostrar los resultados relevantes.

$ whatportis mysql --like

Los comandos anteriores lo ayudaron a encontrar qué puerto está asociado con un servicio. También puede encontrar qué servicio está asociado con un número de puerto como se muestra a continuación.

$ whatportis 993

Incluso puede mostrar los resultados en JSON formato.

$ whatportis 993 --json

Para obtener más detalles, consulte el repositorio de GitHub.

  • Repositorio Whatportis GitHub

Lectura relacionada:

  • Cómo encontrar qué servicio está escuchando en un puerto en particular

Y, eso es todo por ahora. Ahora sabe cómo encontrar los nombres y números de puerto en Linux usando tres métodos simples. Si conoce otros métodos/comandos, hágamelo saber en la sección de comentarios a continuación. Revisaré y actualizaré esta guía en consecuencia.


Linux
  1. Linux:¿cómo encontrar procesos usando el puerto serie?

  2. Cómo usar el comando find de Linux para buscar archivos

  3. Cómo encontrar todos los archivos dispersos en Linux

  4. Cómo encontrar el tamaño del búfer de socket de Linux

  5. Cómo canalizar los resultados de 'buscar' a mv en Linux

Cómo encontrar la dirección IP en Linux

Cómo encontrar el nombre de host en Linux

Cómo encontrar el tamaño total de un directorio en Linux

Cómo encontrar archivos con el comando fd en Linux

Cómo hacer ping a un número de puerto en Linux

Cómo encontrar la lista de repositorios instalados en Linux