Port je logická entita, která představuje koncový bod komunikace a je spojena s daným procesem nebo službou v operačním systému. V předchozích článcích jsme vysvětlili, jak zjistit seznam všech otevřených portů v Linuxu a jak zkontrolovat, zda jsou vzdálené porty dosažitelné pomocí příkazu Netcat.
V tomto krátkém průvodci ukážeme různé způsoby, jak najít proces/službu naslouchající na konkrétním portu v Linuxu.
1. Pomocí příkazu netstat
Příkaz netstat (statistika sítě) se používá k zobrazení informací týkajících se síťových připojení, směrovacích tabulek, statistik rozhraní a dalších. Je k dispozici na všech operačních systémech typu Unix včetně Linuxu a také na OS Windows.
V případě, že jej nemáte nainstalovaný ve výchozím nastavení, použijte k jeho instalaci následující příkaz.
$ 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]
Po instalaci jej můžete použít s příkazem grep k nalezení procesu nebo služby, která naslouchá na konkrétním portu v Linuxu, a to následovně (uveďte port).
$ netstat -ltnp | grep -w ':80'
Ve výše uvedeném příkazu jsou příznaky.
l
– řekne netstatu, aby zobrazoval pouze naslouchající zásuvky.t
– říká, že má zobrazit připojení TCP.n
– přikáže mu zobrazit číselné adresy.p
– umožňuje zobrazení ID procesu a názvu procesu.grep -w
– zobrazuje shodu přesného řetězce (:80).
Poznámka :netstat příkaz je v Linuxu zastaralý a nahrazen moderním příkazem ss.
2. Pomocí příkazu lsof
Příkaz lsof (List Open Files) se používá k zobrazení seznamu všech otevřených souborů v systému Linux.
Chcete-li jej nainstalovat do systému, zadejte příkaz níže.
$ 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]
Chcete-li najít proces/službu naslouchající na konkrétním portu, napište (určete port).
$ lsof -i :80
3. Použití příkazu fixační jednotky
příkaz fuser zobrazuje PID procesů používajících zadané soubory nebo systémy souborů v Linuxu.
Můžete jej nainstalovat následovně:
$ 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]
Proces/službu naslouchající na konkrétním portu můžete najít spuštěním příkazu níže (uveďte port).
$ fuser 80/tcp
Poté pomocí příkazu ps vyhledejte název procesu pomocí čísla PID takhle.
$ ps -p 2053 -o comm= $ ps -p 2381 -o comm=
Můžete se také podívat na tyto užitečné průvodce procesy v Linuxu.
- Vše, co potřebujete vědět o procesech v Linuxu [Obsáhlý průvodce]
- Omezte využití procesoru procesu v systému Linux pomocí nástroje CPULimit
- Jak najít a zabít běžící procesy v Linuxu
- Najděte nejběžnější procesy podle nejvyššího využití paměti a CPU v systému Linux
To je vše! Víte o nějakých dalších způsobech, jak najít proces/službu naslouchající na konkrétním portu v Linuxu, dejte nám vědět prostřednictvím formuláře komentáře níže.