3 moduri de a găsi ce proces Linux ascultă pe un port


Un port este o entitate logică care reprezintă un punct final de comunicare și este asociată cu un anumit proces sau serviciu dintr-un sistem de operare. În articolele anterioare, am explicat cum să aflați lista tuturor porturilor deschise în Linux și cum să verificați dacă porturile de la distanță sunt accesibile folosind comanda Netcat.

În acest scurt ghid, vom arăta diferite moduri de a găsi procesul/serviciul de ascultare pe un anumit port în Linux.

1. Folosind comanda netstat

Comanda netstat (statistici de rețea) este utilizată pentru a afișa informații despre conexiunile de rețea, tabelele de rutare, statisticile interfeței și nu numai. Este disponibil pe toate sistemele de operare asemănătoare Unix, inclusiv Linux și, de asemenea, pe sistemul de operare Windows.

În cazul în care nu îl aveți instalat implicit, utilizați următoarea comandă pentru a-l instala.

sudo apt-get install net-tools    [On Debian/Ubuntu & Mint] 
sudo dnf install net-tools        [On CentOS/RHEL/Fedora and Rocky Linux/AlmaLinux]
pacman -S netstat-nat             [On Arch Linux]
emerge sys-apps/net-tools         [On Gentoo]
sudo dnf install net-tools        [On Fedora]
sudo zypper install net-tools     [On openSUSE]

Odată instalat, îl puteți folosi cu comanda grep pentru a găsi procesul sau serviciul care ascultă pe un anumit port în Linux, după cum urmează (specificați portul).

netstat -ltnp | grep -w ':80' 

În comanda de mai sus, steaguri.

  • l – îi spune netstat să afișeze numai prizele de ascultare.
  • t – îi spune să afișeze conexiunile tcp.
  • n – îi cere să arate adrese numerice.
  • p – permite afișarea ID-ului procesului și a numelui procesului.
  • grep -w – arată potrivirea șirului exact (:80).

Notă: comanda netstat este depreciată și înlocuită cu comanda modernă ss în Linux.

2. Folosind comanda lsof

Comanda lsof (List Open Files) este folosită pentru a lista toate fișierele deschise pe un sistem Linux.

Pentru a-l instala pe sistemul dvs., introduceți comanda de mai jos.

sudo apt-get install lsof     [On Debian, Ubuntu and Mint]
sudo yum install lsof         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/lsof  [On Gentoo Linux]
sudo pacman -S lsof           [On Arch Linux]
sudo zypper install lsof      [On OpenSUSE]    

Pentru a găsi procesul/serviciul care ascultă pe un anumit port, tastați (specificați portul).

lsof -i :80

3. Folosind comanda Fuser

Comanda fuser arată PID-urile proceselor care utilizează fișierele sau sistemele de fișiere specificate în Linux.

Îl puteți instala după cum urmează:

sudo apt-get install psmisc     [On Debian, Ubuntu and Mint]
sudo yum install psmisc         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/psmisc  [On Gentoo Linux]
sudo pacman -S psmisc           [On Arch Linux]
sudo zypper install psmisc      [On OpenSUSE]    

Puteți găsi procesul/serviciul care ascultă pe un anumit port rulând comanda de mai jos (specificați portul).

fuser 80/tcp

Apoi, găsiți numele procesului folosind numărul PID cu comanda ps în felul acesta.

ps -p 2053 -o comm=
ps -p 2381 -o comm=

De asemenea, puteți consulta aceste ghiduri utile despre procesele din Linux.

Asta e tot! Cunoașteți alte modalități de a găsi procesul/serviciul de ascultare pe un anumit port în Linux, anunțați-ne prin formularul de comentarii de mai jos.