Heim > Artikel > Betrieb und Instandhaltung > Was ist der Befehl zum Anzeigen des Prozessports unter Linux?
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“.
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
Sie können dies auch anhand der Portnummer überprüfen.
# ss -tnlp | grep ":22"
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
Sie können dies auch anhand der Portnummer überprüfen.
# netstat -tnlp | grep ":22"
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
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
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
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"
相关推荐:《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!