GNU/Linux >> Tutoriales Linux >  >> Linux

Lea /proc para saber si un proceso ha abierto un puerto

Puedo leer el archivo /proc/$PID/net/tcp, por ejemplo, y obtener información sobre los puertos TCP abiertos por el proceso.

Ese archivo no es una lista de puertos tcp abiertos por el proceso . Es una lista de todos los puertos tcp abiertos en el espacio de nombres de red actual, y para los procesos que se ejecutan en el mismo espacio de nombres de red es idéntico al contenido de /proc/net/tcp .

Para encontrar puertos abiertos por su proceso, necesitaría obtener una lista de descriptores de socket de /proc/<pid>/fd y luego haga coincidir esos descriptores con el inode campo de /proc/net/tcp .


Por favor

cat /proc/$PID/net/tcp

y obtendrá un resultado como este

  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
  0: 00000000:01BB 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 2891985097 1 0000000000000000 100 0 0 10 0

La segunda columna (dirección_local) de la salida muestra el puerto en hexadecimal. Usa tu calculadora de programación para convertir el código hexadecimal a decimal.

Por ejemplo aquí, el puerto:01BB (en hexadecimal) es igual a 433 (en decimal), que es el puerto predeterminado de HTTPS.


Linux
  1. Archivos importantes del sistema de archivos Linux /proc que debe conocer

  2. Linux:¿cómo leer desde /proc/$pid/mem en Linux?

  3. ¿Cuáles son los puertos necesarios para abrir en el cortafuegos?

  4. ¿Cómo sé cuál /dev/ttyS* es mi puerto serie?

  5. ¿Cómo saber desde qué carpeta se está ejecutando un proceso?

Una guía para el sistema de archivos '/proc' en Linux

Archivos /proc/cpuinfo y /proc/meminfo en Linux

Comprender los archivos /proc/mounts, /etc/mtab y /proc/partitions

/proc/[pid]/pagemaps y /proc/[pid]/maps | linux

¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

¿Qué archivo en /proc lee el kernel durante el proceso de arranque?