GNU/Linux >> Znalost Linux >  >> Debian

Debian:Zjistěte, na kterém čísle portu proces poslouchá

Jak všichni víme, port je používán pouze jedním procesem nebo službou současně. Port identifikuje konkrétní službu nebo proces běžící v systému. Někdy při odstraňování problémů potřebujeme vědět, které číslo portu určitý proces naslouchá. Všechny procesy běžící v systému jsou spojeny s identifikačním číslem procesu (PID) a číslem portu. Abychom zjistili, na kterém čísle portu konkrétní proces naslouchá, existuje několik způsobů, o kterých budeme hovořit v tomto článku.

Než přejdete k článku, ujistěte se, že máte práva root. Pomůže vám získat komplexní informace o procesech běžících ve vašem systému.

Všimněte si, že pro spouštění příkazů a procedur uvedených v tomto článku jsme použili Debian 10.

Metoda 1:Použití příkazu netstat

Netstat je nejběžněji používaný nástroj příkazového řádku, který lze použít k zobrazení informací o síťových připojeních, statistikách rozhraní a směrovacích tabulkách. Lze jej také použít ke zjištění, které číslo portu používá určitý proces. Nemusíte jej instalovat, protože je již nainstalován v repozitářích všech distribucí Linuxu. Pokud však ve vašem systému ještě není nainstalován, použijte k jeho instalaci následující příkaz:

$ sudo apt install net-tools

Chcete-li najít čísla portů, na kterých procesy naslouchají, spusťte v Terminálu následující příkaz:

$ sudo netstat -ltnp

Následující výstup ukazuje čísla portů, která používají určité procesy, spolu s jejich ID procesů (PID).

Pokud nemáte oprávnění sudo a spustíte výše uvedený příkaz bez sudo, nezobrazí se název programu a PID, jak je vidět na následujícím výstupu.

Nyní se podívejme, co je ltnp ve výše uvedeném příkazu znamená:

l – zobrazit zásuvky pro poslech

t – zobrazit připojení TCP

n – zobrazit IP adresy a čísla portů v číselné podobě

p – zobrazit PID/název programu

Pokud se podíváme na výstup $ sudo netstat -ltnp , čtvrtý sloupec je přesně to, co hledáme:číslo portu, na kterém proces naslouchá.

Chcete-li získat informace o portu jednoho procesu, můžete výstup netstat jednoduše zpracovat pomocí příkazu grep.

Chcete-li například najít číslo portu proti „sshd“, použijte následující příkaz:

$ sudo netstat –ltnp | grep ‘sshd’

Podobně, pokud chcete zjistit název procesu, který naslouchá na konkrétním portu, řekněme portu 21, použije se následující příkaz:

$ sudo netstat -ltnp | grep -w ':21'

Metoda 2:Použití příkazu lsof

Pomocí příkazu lsof můžete zobrazit seznam všech souborů otevřených procesy běžícími ve vašem systému. Lsof může fungovat jako jediný zdroj pro získávání informací, který jinak zahrnuje velkou sadu nástrojů pro správu. Podobně jako u příkazu netstat budete k získání podrobných informací vyžadovat oprávnění sudo.

Pokud lsof ještě není ve vašem systému nainstalován, nainstalujte jej pomocí následujícího příkazu v Terminálu:

$ sudo apt install lsof

Po instalaci můžete použít nástroj lsof k vyhledání procesů běžících na konkrétních portech. Pokud spustíte obslužný program lsof bez jakýchkoli parametrů, vrátí spoustu informací, kterým budete těžko rozumět. Použití parametrů s lsof vám však může pomoci odfiltrovat a soustředit se na požadovaný výstup.

Nyní, abyste našli proces naslouchající na konkrétním portu, řekněme portu 22, použijte následující příkaz:

$ sudo lsof -i :22

Tento příkaz vrátí všechny procesy běžící na portu 22.

Metoda 3:Použití příkazu fixační jednotka

Fixační jednotka je příkaz Linuxu, který se používá ke zjištění, které ID procesu používá soubor, adresář nebo souborový systém. Tento příkaz můžeme použít k nalezení procesu běžícího na konkrétním portu.

Pro použití příkazu fuser budete potřebovat obslužný program psmisc. Pokud ještě není ve vašem systému nainstalován, spusťte následující příkaz a nainstalujte jej:

$ sudo apt install psmisc

Chcete-li zobrazit procesy běžící na libovolném portu, řekněme TCP portu 22, spusťte v Terminálu následující příkaz:

$ sudo fuser 22/tcp

Výše uvedený příkaz vrátil proces naslouchající na portu číslo 22. Chcete-li nyní zobrazit název procesu proti libovolnému ID procesu, použijte následující syntaxi příkazu:

$ ps -p [processID] -o comm=

V našem případě by to bylo

$ ps -p [5859] -o comm=

Z výše uvedeného výstupu jsme zjistili název procesu sshd proti procesu ID 5859. To znamená, že sshd s ID procesu 5859 naslouchá na portu 22.

V tomto článku jsme se naučili některé nástroje příkazového řádku, které můžete použít k zobrazení, na kterých portech konkrétní proces naslouchá.


Debian
  1. Jak najít svou privátní IP adresu v Debianu 10

  2. Jak zjistit, který proces používá soubor v Linuxu?

  3. Jaký je unixový příkaz ke zjištění, jaký spustitelný soubor odpovídá danému příkazu?

  1. 4 způsoby, jak zjistit jádro CPU, na kterém běží konkrétní proces v Linuxu

  2. Zjistit číslo portu pro poslech Rsyslog?

  3. Debian – Nalezení balíčku, který poskytuje daný příkaz?

  1. Debian – Jak zjistit, jak se nainstaloval konkrétní balíček?

  2. Co je to příkaz k nalezení priority procesu v Linuxu?

  3. Zjistěte, který proces upravuje soubor