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.