Zeigen Sie die vom Prozess in Linux belegte Portnummer an

Zeigen Sie die vom Prozess in Linux belegte Portnummer an

Für Linux-Systemadministratoren ist es von entscheidender Bedeutung zu wissen, ob ein Dienst korrekt an einen Port gebunden ist oder auf diesem lauscht. Wenn Sie sich mit Port-bezogenen Problemen befassen müssen, könnte dieser Artikel für Sie hilfreich sein.

Ein Port ist ein Bezeichner einer logischen Verbindung zwischen bestimmten Prozessen auf einem Linux-System, einschließlich physischer und Software-Ports. Da es sich beim Linux-Betriebssystem um eine Software handelt, werden in diesem Artikel nur Software-Ports behandelt. Software-Ports sind immer mit der IP-Adresse des Hosts und dem entsprechenden Kommunikationsprotokoll verknüpft und werden daher häufig zur Unterscheidung zwischen Anwendungen verwendet. Die meisten Dienste, an denen das Netzwerk beteiligt ist, müssen einen Socket öffnen, um auf eingehende Netzwerkanforderungen zu warten, und jeder Dienst verwendet einen separaten Socket.

Sockets werden in Kombination mit IP-Adressen, Software-Ports und Protokollen verwendet. Portnummern gelten sowohl für das Transmission Control Protocol (TCP) als auch für das User Datagram Protocol (UDP). Sowohl TCP als auch UDP können für die Kommunikation Portnummern zwischen 0 und 65535 verwenden.

Die Portzuweisungskategorien lauten wie folgt:

  • 0 - 1023: Gemeinsame Ports und Systemports
  • 1024 - 49151: Software-Registrierungsport
  • 49152 - 65535: Dynamische Ports oder private Ports

Weitere Informationen zu reservierten Ports finden Sie in der Datei /etc/services unter Linux.

# weniger /etc/services
# /etc/services:
# $Id: Dienste,v 1.55 2013/04/14 ovasik Exp $
# Netzwerkdienste im Internet-Stil
# IANA-Diensteversion: zuletzt aktualisiert am 10.04.2013
# Beachten Sie, dass es derzeit die Richtlinie der IANA ist, einen einzigen bekannten
# Portnummer für TCP und UDP; daher haben die meisten Einträge hier zwei
# auch wenn das Protokoll keine UDP-Operationen unterstützt.
# Aktualisiert von RFC 1700, „Assigned Numbers“ (Oktober 1994). Nicht alle Ports
# sind enthalten, nur die gebräuchlichsten.
# Die aktuellsten IANA-Portzuweisungen erhalten Sie unter
# http://www.iana.org/assignments/port-numbers
# Die bekannten Ports sind jene von 0 bis 1023.
# Die registrierten Ports sind die von 1024 bis 49151
# Die dynamischen und/oder privaten Ports sind die von 49152 bis 65535
# Jede Zeile beschreibt einen Dienst und hat die Form:
# Dienstname Port/Protokoll [Aliase ...] [# Kommentar]
tcpmux 1/tcp # TCP-Port-Dienst-Multiplexer
tcpmux 1/udp # TCP-Port-Dienst-Multiplexer
rje 5/tcp # Remote-Job-Eintrag
rje 5/udp # Remote-Jobeintrag
Echo 7/TCP
echo 7/udp
verwerfen 9/tcp sink null
verwerfen 9/udp sink null
systat 11/tcp-Benutzer
systat 11/udp-Benutzer
tagsüber 13/tcp
tagsüber 13/udp
qotd 17/tcp Zitat
Zitat vom 17. Tag/UDP
msp 18/tcp # Nachrichtensendeprotokoll (historisch)
msp 18/udp # Nachrichtensendeprotokoll (historisch)
Chargen 19/TCP TTTYTST-Quelle
Chargen 19/udp ttytst Quelle
ftp-daten 20/tcp
ftp-daten 20/udp
# 21 ist für FTP registriert, wird aber auch von FSP verwendet
ftp 21/tcp
ftp 21/udp fsp fspd
ssh 22/tcp # Das Secure Shell (SSH)-Protokoll
ssh 22/udp # Das Secure Shell (SSH)-Protokoll
Telnet 23/TCP
Telnet 23/udp
# 24 - privates Mailsystem
lmtp 24/tcp # LMTP-Mail-Zustellung
lmtp 24/udp # LMTP-Mail-Zustellung

Zum Anzeigen von Portinformationen können Sie die folgenden sechs Methoden verwenden.

  • ss: kann zum Ausgeben von Socket-Statistiken verwendet werden.
  • netstat: kann eine Liste offener Sockets anzeigen.
  • lsof: kann geöffnete Dateien auflisten.
  • fuser: kann die Prozess-IDs von Prozessen auflisten, die Dateien geöffnet haben.
  • nmap: ist ein Netzwerkerkennungstool und Portscanner.
  • systemctl: ist der Kontrollmanager und Servicemanager des systemd-Systems.

Als nächstes finden wir die vom SSHD-Daemon verwendete Portnummer heraus.

Methode 1: Verwenden des SS-Befehls

ss wird im Allgemeinen zum Ausgeben von Socket-Statistiken verwendet. Es erzeugt eine ähnliche Ausgabe wie netstat, zeigt jedoch mehr TCP- und Statusinformationen an als andere Tools.

Es kann auch alle Arten von Socket-Statistiken anzeigen, einschließlich PACKET, TCP, UDP, DCCP, RAW, Unix-Domäne usw.

# ss -tnlp | grep ssh
LISTEN 0 128 *:22 *:* Benutzer:(("sshd",pid=997,fd=3))
LISTEN 0 128 :::22 :::* Benutzer:(("sshd",pid=997,fd=4))

Eine Überprüfung kann auch anhand der Portnummer erfolgen.

grep ":22"
LISTEN 0 128 *:22 *:* Benutzer:(("sshd",pid=997,fd=3))
LISTEN 0 128 :::22 :::* Benutzer:(("sshd",pid=997,fd=4))

Methode 2: Verwenden Sie den Befehl netstat

netstat kann Netzwerkverbindungen, Routing-Tabellen, Schnittstellenstatistiken, Masquerade-Verbindungen und Multicast-Mitgliedschaften anzeigen.

Standardmäßig listet netstat offene Sockets auf. Wenn Sie keine Adressfamilie angeben, werden aktive Sockets für alle konfigurierten Adressfamilien angezeigt. Aber netstat ist veraltet und stattdessen wird im Allgemeinen ss verwendet.

# netstat -tnlp | grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 997/sshd
tcp6 0 0 :::22 :::* LISTEN 997/sshd

Eine Überprüfung kann auch anhand der Portnummer erfolgen.

# netstat -tnlp | grep ":22"
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1208/sshd
tcp6 0 0 :::22 :::* LISTEN 1208/sshd

Methode 3: Verwenden des Befehls lsof

lsof kann geöffnete Dateien auflisten und Informationen zu Dateien auflisten, die von Prozessen im System geöffnet wurden.

# lsof -i -P | grep ssh
BEFEHL PID BENUTZER FD TYP GERÄTEGRÖSSE/AUS KNOTENNAME
sshd 11584 root 3u IPv4 27625 0t0 TCP *:22 (HÖREN)
sshd 11584 root 4u IPv6 27627 0t0 TCP *:22 (HÖREN)
sshd 11592 root 3u IPv4 27744 0t0 TCP vps.2daygeek.com:ssh->103.5.134.167:49902 (HERGESTELLT)

Eine Überprüfung kann auch anhand der Portnummer erfolgen.

# lsof -i tcp:22
BEFEHL PID BENUTZER FD TYP GERÄTEGRÖSSE/AUS KNOTENNAME
sshd 1208 root 3u IPv4 20919 0t0 TCP *:ssh (HÖREN)
sshd 1208 root 4u IPv6 20921 0t0 TCP *:ssh (HÖREN)
sshd 11592 root 3u IPv4 27744 0t0 TCP vps.2daygeek.com:ssh->103.5.134.167:49902 (HERGESTELLT)

Methode 4: Verwenden des Fuser-Befehls

Das Fuser-Tool zeigt in der Standardausgabe die Prozess-IDs von Prozessen auf dem lokalen System an, die Dateien geöffnet haben.

# fuser -v 22/tcp
BENUTZER-PID-ZUGRIFFSBEFEHLEN
22/tcp: root 1208 F….sshd
root 12388 F….sshd
root 49339 F….sshd

Methode 5: Verwenden des Befehls nmap

nmap („Network Mapper“) ist ein Open-Source-Tool zur Netzwerkerkennung und Sicherheitsprüfung. Es wurde ursprünglich für schnelle Scans großer Netzwerke entwickelt, eignet sich aber auch gut zum Scannen einzelner Hosts.

nmap verwendet Roh-IP-Pakete, um die im Netzwerk verfügbaren Hosts, die Dienste dieser Hosts (einschließlich Anwendungsname und -version), das auf dem Host ausgeführte Betriebssystem (einschließlich Informationen wie der Betriebssystemversion), die Art der verwendeten Paketfilter oder Firewalls und viele andere Informationen zu bestimmen.

# nmap -sV -p 22 localhost
Start von Nmap 6.40 ( http://nmap.org ) am 23.09.2018 12:36 IST
Nmap-Scanbericht für localhost (127.0.0.1)
Host ist aktiv (0,000089 s Latenz).
Andere Adressen für localhost (nicht gescannt): 127.0.0.1
VERSION DES HAFENSTAATSDIENSTES
22/tcp open ssh OpenSSH 7.4 (Protokoll 2.0)
Diensterkennung durchgeführt. Bitte melden Sie falsche Ergebnisse unter http://nmap.org/submit/.
Nmap fertig: 1 IP-Adresse (1 Host aktiv) in 0,44 Sekunden gescannt

Methode 6: Verwenden des Befehls systemctl

systemctl ist der Kontrollmanager und Dienstmanager für das systemd-System. Es ersetzt die alte SysV-Init-Systemverwaltung und wird derzeit von den meisten modernen Linux-Betriebssystemen verwendet.

# systemctl status sshd
● sshd.service – OpenSSH-Server-Daemon
Geladen: geladen (/usr/lib/systemd/system/sshd.service; aktiviert; Vendor-Vorgabe: aktiviert)
Aktiv: aktiv (läuft) seit Sonntag, 23.09.2018, 02:08:56 EDT; vor 6 h 11 min
Dokumentation: man:sshd(8)
man:sshd_config(5)
Haupt-PID: 11584 (sshd)
CGroup: /system.slice/sshd.service
└─11584 /usr/sbin/sshd -D
23. Sept. 02:08:56 vps.2daygeek.com systemd[1]: OpenSSH-Server-Daemon wird gestartet...
23. September 02:08:56 vps.2daygeek.com sshd[11584]: Server lauscht auf 0.0.0.0 Port 22.
23. September 02:08:56 vps.2daygeek.com sshd[11584]: Server lauscht auf :: Port 22.
23. Sept 02:08:56 vps.2daygeek.com systemd[1]: OpenSSH-Server-Daemon gestartet.
23. September 02:09:15 vps.2daygeek.com sshd[11589]: Verbindung geschlossen durch 103.5.134.167 Port 49899 [Preauth]
23. September 02:09:41 vps.2daygeek.com sshd[11592]: Akzeptiertes Passwort für Root von 103.5.134.167 Port 49902 ssh2

Die obige Ausgabe zeigt den Abhörport des SSH-Dienstes, als der SSHD-Dienst das letzte Mal gestartet wurde. Das neueste Protokoll wird jedoch nicht in der Ausgabe aktualisiert.

# systemctl status sshd
● sshd.service – OpenSSH-Server-Daemon
Geladen: geladen (/usr/lib/systemd/system/sshd.service; aktiviert; Vendor-Vorgabe: aktiviert)
Aktiv: aktiv (läuft) seit Do 2018-09-06 07:40:59 IST; vor 2 Wochen 3 Tagen
Dokumentation: man:sshd(8)
man:sshd_config(5)
Haupt-PID: 1208 (sshd)
CGroup: /system.slice/sshd.service
├─ 1208 /usr/sbin/sshd -D
├─23951 sshd: [akzeptiert]
└─23952 sshd: [net]
23. Sep 12:50:36 vps.2daygeek.com sshd[23909]: Ungültiger Benutzer pi von 95.210.113.142 Port 51666
23. Sep 12:50:36 vps.2daygeek.com sshd[23909]: input_userauth_request: ungültiger Benutzer pi [preauth]
23. Sept. 12:50:37 vps.2daygeek.com sshd[23911]: pam_unix(sshd:auth): Pass prüfen; Benutzer unbekannt
23. September 12:50:37 vps.2daygeek.com sshd[23911]: pam_unix(sshd:auth): Authentifizierungsfehler; logname= uid=0 euid=0 tty=ssh ruser= rhost=95.210.113.142
23. Sept. 12:50:37 vps.2daygeek.com sshd[23909]: pam_unix(sshd:auth): Pass prüfen; Benutzer unbekannt
23. September 12:50:37 vps.2daygeek.com sshd[23909]: pam_unix(sshd:auth): Authentifizierungsfehler; logname= uid=0 euid=0 tty=ssh ruser= rhost=95.210.113.142
23. September 12:50:39 vps.2daygeek.com sshd[23911]: Fehlgeschlagenes Passwort für ungültigen Benutzer pi von 95.210.113.142 Port 51670 ssh2
23. September 12:50:39 vps.2daygeek.com sshd[23909]: Fehlgeschlagenes Passwort für ungültigen Benutzer pi von 95.210.113.142 Port 51666 ssh2
23. September 12:50:40 vps.2daygeek.com sshd[23911]: Verbindung geschlossen durch 95.210.113.142 Port 51670 [Preauth]
23. September 12:50:40 vps.2daygeek.com sshd[23909]: Verbindung geschlossen durch 95.210.113.142 Port 51666 [Preauth]

In den meisten Fällen zeigt die obige Ausgabe nicht die tatsächliche Portnummer des Prozesses. Zu diesem Zeitpunkt wird empfohlen, den folgenden Journalctl-Befehl zu verwenden, um die detaillierten Informationen in der Protokolldatei zu überprüfen.

grep -i "openssh|sshd"
23. Sep 02:08:56 vps138235.vps.ovh.ca sshd[997]: Signal 15 empfangen; wird beendet.
23. Sept. 02:08:56 vps138235.vps.ovh.ca systemd[1]: OpenSSH-Server-Daemon wird gestoppt...
23. Sept 02:08:56 vps138235.vps.ovh.ca systemd[1]: OpenSSH-Server-Daemon wird gestartet...
23. September 02:08:56 vps138235.vps.ovh.ca sshd[11584]: Server lauscht auf 0.0.0.0 Port 22.
23. September 02:08:56 vps138235.vps.ovh.ca sshd[11584]: Server lauscht auf :: Port 22.
23. Sept 02:08:56 vps138235.vps.ovh.ca systemd[1]: OpenSSH-Server-Daemon gestartet.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Linux-Methodenbeispiel zum Anzeigen aller Informationen des Prozesses
  • So zeigen Sie Prozessstapelinformationen in Linux an
  • So zeigen Sie die Anzahl der von einem Prozess geöffneten Dateihandles an und ändern sie in Linux
  • Detailliertes Verständnis der Anzeige der Prozessspeichernutzung unter Linux
  • 4 Möglichkeiten zum Anzeigen von Prozessen in LINUX (Zusammenfassung)

<<:  Schritte zum Verpacken und Bereitstellen des Vue-Projekts auf dem Apache-Server

>>:  Automatische Sicherung der MySQL-Datenbank per Shell-Skript

Artikel empfehlen

Ein kurzer Überblick über CSS3-Pseudoklassenselektoren

Vorwort Wenn CSS die Grundfertigkeit der Front-En...

Detaillierte Erklärung der Vue-Optionen

Inhaltsverzeichnis 1. Was sind Optionen? 2. Welch...

Analyse des Parameterübertragungsprozesses des Treibermoduls in Linux

Deklarieren Sie den Parameternamen, den Typ und d...

So verwenden Sie den Linux-Befehl tr

01. Befehlsübersicht Der Befehl tr kann Zeichen a...

Lösung zum Vergessen des Root-Passworts der MySQL 5.7- und 8.0-Datenbank

Hinweis: Um das Root-Passwort in MySQL 5.7 zu kna...

Manuelles Implementieren des Eingabefelds für den js-SMS-Bestätigungscode

Vorwort Dieser Artikel beschreibt eine allgemeine...