GNU/Linux >> Znalost Linux >  >> Linux

Přečtěte si /proc, abyste zjistili, zda proces otevřel port

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.


Linux
  1. /proc/[pid]/pagemaps a /proc/[pid]/maps | linux

  2. Jak zjistím, který /dev/ttyS* je můj sériový port?

  3. Který soubor v /proc čte jádro během procesu spouštění?

  1. změnit /proc/PID/environ po spuštění procesu

  2. Jak zjistím, zda byl můj server Linux napaden hackery?

  3. Měly by weby žít ve /var/ nebo /usr/ podle doporučeného použití?

  1. 14 běžných síťových portů, které byste měli znát

  2. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  3. Linux – propojení /proc/mnt s /proc/mounts?