GNU/Linux >> Linux Esercitazione >  >> Linux

Leggi /proc per sapere se un processo ha aperto una porta

Posso leggere il file /proc/$PID/net/tcp per esempio e ottenere informazioni sulle porte TCP aperte dal processo.

Quel file non è un elenco di porte tcp aperte dal processo . È un elenco di tutte le porte tcp aperte nello spazio dei nomi di rete corrente e per i processi in esecuzione nello stesso spazio dei nomi di rete è identico al contenuto di /proc/net/tcp .

Per trovare le porte aperte dal tuo processo, dovresti ottenere un elenco di descrittori di socket da /proc/<pid>/fd , quindi abbina questi descrittori a inode campo di /proc/net/tcp .


Per favore

cat /proc/$PID/net/tcp

e otterrai un output come questo

  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 seconda colonna (local_address) dell'output mostra la porta in formato esadecimale. Usa la tua calcolatrice di programmazione per convertire il codice esadecimale in decimale.

Ad esempio qui, la porta:01BB (in esadecimale) è uguale a 433 (in decimale) che è la porta predefinita HTTPS.


Linux
  1. 14 porte di rete comuni che dovresti conoscere

  2. Linux:come leggere da /proc/$pid/mem sotto Linux?

  3. Linux – Collegamento di /proc/mnt a /proc/mounts?

  4. Come ottengo il percorso di un processo in Unix/Linux

  5. Quando dovrei usare /dev/shm/ e quando dovrei usare /tmp/?

Una guida al file system '/proc' in Linux

/proc/cpuinfo e /proc/meminfo in Linux

Comprendere i file /proc/mounts, /etc/mtab e /proc/partitions

Come faccio a sapere quale /dev/ttyS* è la mia porta seriale?

Come scoprire da quale cartella è in esecuzione un processo?

Come posso leggere da /proc/$pid/mem sotto Linux?