Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Was ist der Befehl zum Anzeigen des Prozessports unter Linux?

Was ist der Befehl zum Anzeigen des Prozessports unter Linux?

青灯夜游
青灯夜游Original
2022-06-17 14:30:3933852Durchsuche

View-Befehle umfassen: 1. ss-Befehl, der die Belegung von Prozessports überprüfen kann, die Syntax lautet „ss -tnlp | grep „Portnummer““; 2. netstat-Befehl, der verwandte Informationen wie Ports und Prozesse anzeigen kann , die Syntax lautet „netstat - tnlp | grep „Portnummer““; 3. lsof-Befehl, Sie können die Portbelegung überprüfen, die Syntax ist „lsof -i tcp:port number“; 4. Fuser-Befehl, Sie können die überprüfen Portbelegung, die Syntax „fuser -v port number/ tcp“.

Was ist der Befehl zum Anzeigen des Prozessports unter Linux?

Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.

Port ist die Kennung der logischen Verbindung zwischen bestimmten Prozessen auf dem Linux-System, einschließlich physischer Ports und Software-Ports. Da es sich beim Linux-Betriebssystem um eine Software handelt, geht es in diesem Artikel nur um Software-Ports. Software-Ports sind immer mit der IP-Adresse eines Hosts und dem zugehörigen Kommunikationsprotokoll verknüpft, daher werden Ports häufig zur Unterscheidung von Anwendungen verwendet. Die meisten Dienste, die Netzwerke beinhalten, müssen einen Socket öffnen, um auf eingehende Netzwerkanforderungen zu warten, und jeder Dienst verwendet einen separaten Socket.

Socket wird in Kombination mit IP-Adresse, Software-Port und Protokoll verwendet. Die Portnummer gilt sowohl für die Protokolle Transmission Control Protocol (TCP) als auch für User Datagram Protocol (UDP). Sowohl TCP als auch UDP können Portnummern verwenden mit zu kommunizieren.

Die folgenden Portzuordnungskategorien sind:

  • 0 – 1023: Gemeinsame Ports und Systemports

  • 1024 – 49151: Von der Software registrierter Port

  • 49152 – 65535: Dynamischer Port oder privater Port

Sie können die folgenden sechs Methoden verwenden, um die Portinformationen eines Prozesses anzuzeigen.

  • ss: Kann zum Dump von Socket-Statistiken verwendet werden.

  • netstat: Kann die Liste der offenen Sockets anzeigen.

  • lsof: Kann geöffnete Dateien auflisten.

  • fuser: Listet die Prozess-IDs von Prozessen auf, bei denen Dateien geöffnet sind.

  • nmap: ist ein Netzwerkerkennungstool und Portscanner.

  • systemctl: Es ist der Kontrollmanager und Servicemanager des systemd-Systems.

Nachfolgend erfahren Sie die vom SSHD-Daemon verwendete Portnummer.

Methode 1: Verwenden Sie den Befehl ss

ss wird im Allgemeinen zum Speichern von Socket-Statistiken verwendet. Es kann ähnliche Informationen wie Netstat ausgeben, kann jedoch mehr TCP-Informationen und Statusinformationen anzeigen als andere Tools.

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

# ss -tnlp | grep ssh

Was ist der Befehl zum Anzeigen des Prozessports unter Linux?

Sie können dies auch anhand der Portnummer überprüfen.

# ss -tnlp | grep ":22"

Was ist der Befehl zum Anzeigen des Prozessports unter Linux?

Methode 2: Verwenden Sie den Befehl netstat

netstat kann Netzwerkverbindungen, Routing-Tabellen, Schnittstellenstatistiken, maskierte Verbindungen und Multicast-Mitglieder anzeigen.

Standardmäßig listet Netstat offene Sockets auf. Wenn keine Adressfamilie angegeben ist, werden aktive Sockets für alle konfigurierten Adressfamilien angezeigt. Netstat ist jedoch veraltet und stattdessen wird im Allgemeinen SS verwendet.

# netstat -tnlp | grep ssh

Was ist der Befehl zum Anzeigen des Prozessports unter Linux?

Sie können dies auch anhand der Portnummer überprüfen.

# netstat -tnlp | grep ":22"

Was ist der Befehl zum Anzeigen des Prozessports unter Linux?

Methode 3: Verwenden Sie den Befehl lsof

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

# lsof -i -P | grep ssh

Was ist der Befehl zum Anzeigen des Prozessports unter Linux?

Sie können dies auch anhand der Portnummer überprüfen.

# lsof -i tcp:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1208 root 3u IPv4 20919 0t0 TCP *:ssh (LISTEN)
sshd 1208 root 4u IPv6 20921 0t0 TCP *:ssh (LISTEN)
sshd 11592 root 3u IPv4 27744 0t0 TCP vps.2daygeek.com:ssh->103.5.134.167:49902 (ESTABLISHED)

Methode 4: Verwenden Sie den Befehl „fuser“

Das Tool „fuser“ zeigt in der Standardausgabe die Prozess-ID des Prozesses an, bei dem die Datei auf dem lokalen System geöffnet ist.

# fuser -v 22/tcp

Was ist der Befehl zum Anzeigen des Prozessports unter Linux?

Methode 5: Verwenden Sie den nmap-Befehl

nmap („Network Mapper“) ist ein Open-Source-Tool zur Netzwerkerkennung und Sicherheitsüberprüfung. Es wurde ursprünglich für das schnelle Scannen 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, ihre Dienste (einschließlich Anwendungsnamen und -versionen), das Betriebssystem, das der Host ausführt (einschließlich Informationen wie die Betriebssystemversion), und die verwendeten Paketfilter zu ermitteln die Art der Firewall, neben vielen anderen Informationen.

# nmap -sV -p 22 localhost

Was ist der Befehl zum Anzeigen des Prozessports unter Linux?

Methode 6: Verwenden Sie den Befehl systemctl

systemctl 是 systemd 系统的控制管理器和服务管理器。它取代了旧的 SysV 初始化系统管理,目前大多数现代 Linux 操作系统都采用了 systemd。

# systemctl status sshd
● sshd.service - OpenSSH server daemon
 Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
 Active: active (running) since Sun 2018-09-23 02:08:56 EDT; 6h 11min ago
 Docs: man:sshd(8)
 man:sshd_config(5)
 Main PID: 11584 (sshd)
 CGroup: /system.slice/sshd.service
 └─11584 /usr/sbin/sshd -D

Sep 23 02:08:56 vps.2daygeek.com systemd[1]: Starting OpenSSH server daemon...
Sep 23 02:08:56 vps.2daygeek.com sshd[11584]: Server listening on 0.0.0.0 port 22.
Sep 23 02:08:56 vps.2daygeek.com sshd[11584]: Server listening on :: port 22.
Sep 23 02:08:56 vps.2daygeek.com systemd[1]: Started OpenSSH server daemon.
Sep 23 02:09:15 vps.2daygeek.com sshd[11589]: Connection closed by 103.5.134.167 port 49899 [preauth]
Sep 23 02:09:41 vps.2daygeek.com sshd[11592]: Accepted password for root from 103.5.134.167 port 49902 ssh2

以上输出的内容显示了最近一次启动 sshd 服务时 ssh 服务的监听端口。但它不会将最新日志更新到输出中。

# systemctl status sshd
● sshd.service - OpenSSH server daemon
 Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
 Active: active (running) since Thu 2018-09-06 07:40:59 IST; 2 weeks 3 days ago
 Docs: man:sshd(8)
 man:sshd_config(5)
 Main PID: 1208 (sshd)
 CGroup: /system.slice/sshd.service
 ├─ 1208 /usr/sbin/sshd -D
 ├─23951 sshd: [accepted]
 └─23952 sshd: [net]

Sep 23 12:50:36 vps.2daygeek.com sshd[23909]: Invalid user pi from 95.210.113.142 port 51666
Sep 23 12:50:36 vps.2daygeek.com sshd[23909]: input_userauth_request: invalid user pi [preauth]
Sep 23 12:50:37 vps.2daygeek.com sshd[23911]: pam_unix(sshd:auth): check pass; user unknown
Sep 23 12:50:37 vps.2daygeek.com sshd[23911]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=95.210.113.142
Sep 23 12:50:37 vps.2daygeek.com sshd[23909]: pam_unix(sshd:auth): check pass; user unknown
Sep 23 12:50:37 vps.2daygeek.com sshd[23909]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=95.210.113.142
Sep 23 12:50:39 vps.2daygeek.com sshd[23911]: Failed password for invalid user pi from 95.210.113.142 port 51670 ssh2
Sep 23 12:50:39 vps.2daygeek.com sshd[23909]: Failed password for invalid user pi from 95.210.113.142 port 51666 ssh2
Sep 23 12:50:40 vps.2daygeek.com sshd[23911]: Connection closed by 95.210.113.142 port 51670 [preauth]
Sep 23 12:50:40 vps.2daygeek.com sshd[23909]: Connection closed by 95.210.113.142 port 51666 [preauth]

大部分情况下,以上的输出不会显示进程的实际端口号。这时更建议使用以下这个 journalctl 命令检查日志文件中的详细信息。

# journalctl | grep -i "openssh\|sshd"

Was ist der Befehl zum Anzeigen des Prozessports unter Linux?

相关推荐:《Linux视频教程

Das obige ist der detaillierte Inhalt vonWas ist der Befehl zum Anzeigen des Prozessports unter Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn