Einführung
Ein Hafen ist ein Kommunikationsendpunkt. Auf der Softwareebene innerhalb eines Betriebssystems ist ein Port ein logisches Konstrukt, das einen bestimmten Prozess oder eine Art von Netzwerkdienst identifiziert. Ein Port wird für jede Kombination aus Transportprotokoll und Adresse durch eine vorzeichenlose 16-Bit-Zahl identifiziert, die als Portnummer bezeichnet wird . Die gängigsten Transportprotokolle, die Portnummern verwenden, sind das Transmission Control Protocol (TCP) und das User Datagram Protocol (UDP).
Auch Port ist eine logische Entität, die einen Endpunkt der Kommunikation darstellt und einem bestimmten Prozess oder Dienst in einem Betriebssystem zugeordnet ist. In früheren Artikeln haben wir erklärt, wie man die Liste aller offenen Ports in Linux herausfindet und wie man mit dem Netcat-Befehl prüft, ob entfernte Ports erreichbar sind.
1. Verwendung des lsof-Befehls
lsof Befehl (List Open Files) wird verwendet, um alle geöffneten Dateien auf einem Linux
aufzulistenUm es auf Ihrem System zu installieren, führen Sie
aus$ sudo apt-get install lsof #for Debian, Ubuntu and Mint
$ sudo yum install lsof #for RHEL/CentOS/Fedora and Rocky Linux
$ sudo emerge -a sys-apps/lsof #for Gentoo Linux
$ sudo pacman -S lsof #for Arch Linux
$ sudo zypper install lsof #for OpenSUSE
Um den Prozess/Dienst zu finden, der einen bestimmten Port überwacht, führen Sie den folgenden Befehl aus:
[root@unixcop ~]# lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 12289 root 4u IPv6 70310 0t0 TCP *:http (LISTEN)
httpd 24040 apache 4u IPv6 70310 0t0 TCP *:http (LISTEN)
httpd 24041 apache 4u IPv6 70310 0t0 TCP *:http (LISTEN)
httpd 24042 apache 4u IPv6 70310 0t0 TCP *:http (LISTEN)
[root@unixcop ~]#
2. Verwenden des netstat-Befehls
Also netstat Der Befehl bezieht sich auf (Netzwerkstatistiken), die verwendet werden, um Informationen wie Netzwerkverbindungen, Routing-Tabellen und Schnittstellenstatistiken anzuzeigen.
So installieren Sie netstat:
$ sudo apt-get install net-tools #for Debian/Ubuntu & Mint
$ sudo dnf install net-tools #for CentOS/RHEL/Fedora and Rocky Linux
$ pacman -S netstat-nat #for Arch Linux
$ emerge sys-apps/net-tools #for Gentoo
$ sudo dnf install net-tools #for Fedora
$ sudo zypper install net-tools #for openSUSE
Sie können es mit grep verwenden Befehl, um den Prozess oder Dienst zu finden, der auf einem bestimmten Port in Linux lauscht, wie mit dem folgenden Befehl:
$ netstat -ultnp | grep -w ':80'
Im obigen Befehl sind die flags.
l
– weist netstat an, nur lauschende Sockets anzuzeigen.p
– ermöglicht die Anzeige der Prozess-ID und des Prozessnamens.n
– weist es an, numerische Adressen anzuzeigen.t
– weist es an, TCP-Verbindungen anzuzeigen.grep -w
– zeigt die Übereinstimmung der exakten Zeichenfolge (:80).
3. Fixierer-Befehl verwenden
Fixierer Befehl zeigt die PIDs von Prozessen, die die angegebenen Dateien oder Dateisysteme verwenden .
Sie können es installieren mit:
$ sudo apt-get install psmisc #for Debian, Ubuntu and Mint
$ sudo yum install psmisc #for RHEL/CentOS/Fedora and Rocky Linux
$ sudo emerge -a sys-apps/psmisc #for Gentoo Linux
$ sudo pacman -S psmisc #for Arch Linux
$ sudo zypper install psmisc #for OpenSUSE
Sie können den Prozess/Dienst finden, der auf einem bestimmten Port lauscht, indem Sie den folgenden Befehl ausführen:
[root@unixcop ~]# fuser 80/tcp
80/tcp: 12289 24040 24041 24042
[root@unixcop ~]#
So finden Sie den Prozessnamen mithilfe der PID-Nummer mit dem ps-Befehl :
$ ps -p 2053 -o comm=
$ ps -p 2381 -o comm=
[root@unixcop ~]# fuser 80/tcp
80/tcp: 12289 24040 24041 24042
[root@unixcop ~]# ps -p 12289 -o comm=
httpd
[root@unixcop ~]# ps -p 24040 -o comm=
httpd
[root@unixcop ~]
Schlussfolgerung
In dieser Anleitung kennen Sie die besten Wege, um den Prozess/Dienst zu finden, der einen bestimmten Port in Linux überwacht.