Mohu si například přečíst soubor /proc/$PID/net/tcp a získat informace o portech TCP otevřených procesem.
Tento soubor není seznamem tcp portů otevřených procesem . Je to seznam všech otevřených tcp portů v aktuálním síťovém jmenném prostoru a pro procesy běžící ve stejném síťovém jmenném prostoru je identický na obsah /proc/net/tcp
.
Chcete-li najít porty otevřené vaším procesem, musíte získat seznam deskriptorů soketů z /proc/<pid>/fd
a poté tyto deskriptory přiřaďte k inode
pole /proc/net/tcp
.
Prosím
cat /proc/$PID/net/tcp
a dostanete výstup takto
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
Druhý sloupec (místní_adresa) výstupu zobrazuje port v šestnáctkové soustavě. Pomocí programovací kalkulačky převeďte hexadecimální kód na desítkové.
Například zde se port :01BB (v hex) rovná 433 (v desítkové soustavě), což je výchozí port HTTPS.