GNU/Linux >> Tutoriales Linux >  >> Debian

Debian:averigüe en qué número de puerto está escuchando un proceso

Como todos sabemos, un puerto solo lo utiliza un proceso o servicio a la vez. El puerto identifica un servicio en particular o un proceso que se ejecuta en el sistema. A veces, durante la resolución de problemas, necesitamos saber qué número de puerto está escuchando un determinado proceso. Todos los procesos que se ejecutan en un sistema están asociados con un número de identificación de proceso (PID) y un número de puerto. Para encontrar qué número de puerto está escuchando un proceso en particular, hay algunas formas de las que hablaremos en este artículo.

Antes de continuar con el artículo, asegúrese de tener privilegios de root. Le ayudará a obtener información completa sobre los procesos que se ejecutan en su sistema.

Tenga en cuenta que hemos utilizado Debian 10 para ejecutar los comandos y procedimientos mencionados en este artículo.

Método 1:usar el comando netstat

Netstat es una utilidad de línea de comandos más utilizada que se puede usar para mostrar información sobre conexiones de red, estadísticas de interfaz y tablas de enrutamiento. También se puede utilizar para encontrar qué número de puerto utiliza un determinado proceso. No tienes que instalarlo ya que ya está instalado en los repositorios de todas las distribuciones de Linux. Sin embargo, en caso de que aún no esté instalado en su sistema, use el siguiente comando para instalarlo:

$ sudo apt install net-tools

Para encontrar los números de puerto que están siendo escuchados por los procesos, ejecute el siguiente comando en la Terminal:

$ sudo netstat -ltnp

El siguiente resultado muestra los números de puerto que utilizan ciertos procesos junto con sus ID de proceso (PID).

Si no tiene privilegios de sudo y ejecuta el comando anterior sin sudo, no mostrará el nombre del programa y el PID como se ve en el siguiente resultado.

Ahora veamos qué significa ltnp en el comando anterior significa:

l – mostrar tomas de escucha

t – mostrar conexiones TCP

n- mostrar direcciones IP y números de puerto en forma numérica

p – mostrar PID/nombre del programa

Si observamos la salida de $ sudo netstat -ltnp , la cuarta columna es exactamente lo que estamos buscando:el número de puerto en el que está escuchando un proceso.

Para obtener información de puerto de un solo proceso, simplemente puede canalizar la salida de netstat con el comando grep.

Por ejemplo, para encontrar el número de puerto contra "sshd", use el siguiente comando:

$ sudo netstat –ltnp | grep ‘sshd’

De manera similar, si desea averiguar el nombre del proceso que está escuchando en un puerto específico, digamos el puerto 21, se utilizará el siguiente comando:

$ sudo netstat -ltnp | grep -w ':21'

Método 2:Usar el comando lsof

Con el comando lsof, puede ver la lista de todos los archivos abiertos por los procesos que se ejecutan en su sistema. Lsof puede actuar como una fuente única para obtener información que, de otro modo, implicaría un gran conjunto de herramientas de administración. Similar al comando netstat, necesitará privilegios sudo para obtener información detallada.

Si lsof aún no está instalado en su sistema, use el siguiente comando en Terminal para instalarlo:

$ sudo apt install lsof

Una vez instalado, puede usar la utilidad lsof para encontrar procesos que se ejecutan en puertos específicos. Si ejecuta la utilidad lsof sin ningún parámetro, devolverá mucha información que le resultará difícil de entender. Sin embargo, el uso de parámetros con lsof puede ayudarlo a filtrar y concentrarse en la salida deseada.

Ahora, para encontrar el proceso escuchando en un puerto específico, digamos el puerto 22, use el siguiente comando:

$ sudo lsof -i :22

Este comando devolverá todos los procesos que se ejecutan en el puerto 22.

Método 3:Usar el comando fuser

El fusor es un comando de Linux que se usa para encontrar qué ID de proceso está usando un archivo, directorio o sistema de archivos. Podemos usar este comando para encontrar el proceso que se ejecuta en un puerto específico.

Necesitará la utilidad pmisc para usar el comando fuser. Si aún no está instalado en su sistema, ejecute el siguiente comando para instalarlo:

$ sudo apt install psmisc

Para ver los procesos que se ejecutan en cualquier puerto, digamos el puerto TCP 22, ejecute el siguiente comando en la Terminal:

$ sudo fuser 22/tcp

El comando anterior ha devuelto el proceso escuchando en el puerto número 22. Ahora, para ver el nombre del proceso con cualquier ID de proceso, use la siguiente sintaxis de comando:

$ ps -p [processID] -o comm=

En nuestro caso sería

$ ps -p [5859] -o comm=

Del resultado anterior, podemos haber encontrado el nombre de proceso sshd contra el ID de proceso 5859. Esto implica que el sshd con el ID de proceso 5859 está escuchando en el puerto 22.

En este artículo, hemos aprendido algunas utilidades de línea de comandos que puede usar para ver en qué puertos está escuchando un proceso en particular.


Debian
  1. ¿Averiguar el número de puerto de escucha de Rsyslog?

  2. Debian:¿cómo averiguar cómo se instaló un paquete en particular?

  3. ¿Cuál es el comando de Unix para averiguar qué archivo ejecutable corresponde a un comando determinado?

  4. Encuentra qué proceso está modificando un archivo

  5. Averigüe qué proceso está cambiando un archivo

Averigüe qué procesos están escuchando en un puerto particular en Linux

3 formas de encontrar su dirección IP local en Debian 10

Las mejores formas de saber qué proceso está escuchando en un puerto específico

¿Cómo saber qué programa está usando Internet y cuánto?

Linux:averigüe en qué número de puerto está escuchando un proceso

¿Existe un comando en Linux para saber el número de procesador en el que se carga un proceso?