Maison  >  Article  >  Opération et maintenance  >  Quelle est la commande pour afficher le port du processus sous Linux ?

Quelle est la commande pour afficher le port du processus sous Linux ?

青灯夜游
青灯夜游original
2022-06-17 14:30:3933802parcourir

Les commandes View incluent : 1. la commande ss, qui peut vérifier l'occupation des ports de processus, avec la syntaxe "ss -tnlp | grep "port number"" ; 2. la commande netstat, qui peut afficher des informations associées telles que les ports et les processus. , avec la syntaxe "netstat - tnlp | grep "port number"" ; 3. commande lsof, vous pouvez vérifier l'occupation du port, la syntaxe est "lsof -i tcp:port number" 4. commande fuser, vous pouvez vérifier le occupation du port, la syntaxe "fuser -v numéro de port/tcp".

Quelle est la commande pour afficher le port du processus sous Linux ?

L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.

Le port est l'identifiant de la connexion logique entre des processus spécifiques sur le système Linux, y compris les ports physiques et les ports logiciels. Le système d'exploitation Linux étant un logiciel, cet article traite uniquement des ports logiciels. Les ports logiciels sont toujours associés à l'adresse IP d'un hôte et au protocole de communication associé. Les ports sont donc souvent utilisés pour différencier les applications. La plupart des services impliquant une mise en réseau doivent ouvrir un socket pour écouter les requêtes réseau entrantes, et chaque service utilise un socket distinct.

Socket est utilisé en combinaison avec l'adresse IP, le port logiciel et le protocole, et le numéro de port est applicable aux protocoles Transmission Control Protocol (TCP) et User Datagram Protocol (UDP) peuvent utiliser 0 à 65535 numéros de port. communiquer avec.

Voici les catégories d'attribution de ports :

  • 0 – 1023 : ports communs et ports système

  • 1024 – 49151 : port enregistré du logiciel

  • 49152 – 65535 : port dynamique ou port privé

Vous pouvez utiliser les six méthodes suivantes pour afficher les informations de port d'un processus

  • ss : peut être utilisé pour vider les statistiques de socket.

  • netstat : Peut afficher la liste des sockets ouvertes.

  • lsof : Peut répertorier les fichiers ouverts.

  • fuser : répertorie les ID de processus des processus pour lesquels des fichiers sont ouverts.

  • nmap : C'est un outil de détection de réseau et un scanner de ports.

  • systemctl : C'est le gestionnaire de contrôle et le gestionnaire de service du système systemd.

Ci-dessous, nous découvrirons le numéro de port utilisé par le démon sshd.

Méthode 1 : Utilisez la commande ss

ss est généralement utilisé pour vider les statistiques des sockets. Il peut générer des informations similaires à celles de netstat, mais il peut afficher plus d'informations TCP et d'informations d'état que les autres outils.

Il peut également afficher tous les types de statistiques de socket, notamment les domaines PACKET, TCP, UDP, DCCP, RAW, Unix, etc.

# ss -tnlp | grep ssh

Quelle est la commande pour afficher le port du processus sous Linux ?

Vous pouvez également vérifier en utilisant le numéro de port.

# ss -tnlp | grep ":22"

Quelle est la commande pour afficher le port du processus sous Linux ?

Méthode 2 : utilisez la commande netstat

netstat peut afficher les connexions réseau, les tables de routage, les statistiques d'interface, les connexions masquées et les membres de multidiffusion.

Par défaut, netstat répertorie les sockets ouvertes. Si aucune famille d'adresses n'est spécifiée, les sockets actifs pour toutes les familles d'adresses configurées sont affichées. Mais netstat est obsolète et ss est généralement utilisé à la place.

# netstat -tnlp | grep ssh

Quelle est la commande pour afficher le port du processus sous Linux ?

Vous pouvez également vérifier en utilisant le numéro de port.

# netstat -tnlp | grep ":22"

Quelle est la commande pour afficher le port du processus sous Linux ?

Méthode 3 : Utilisez la commande lsof

lsof peut répertorier les fichiers ouverts et répertorier les informations sur les fichiers ouverts par les processus sur le système.

# lsof -i -P | grep ssh

Quelle est la commande pour afficher le port du processus sous Linux ?

Vous pouvez également vérifier en utilisant le numéro de port.

# 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)

Méthode 4 : Utilisez la commande fuser

L'outil de fusion affichera l'ID du processus sur lequel le fichier est ouvert sur le système local dans la sortie standard.

# fuser -v 22/tcp

Quelle est la commande pour afficher le port du processus sous Linux ?

Méthode 5 : Utilisez la commande nmap

nmap (« Network Mapper ») est un outil open source pour la détection de réseau et l'audit de sécurité. Il a été conçu à l'origine pour une analyse rapide de grands réseaux, mais il fonctionne également bien pour l'analyse d'hôtes individuels.

nmap utilise des paquets IP bruts pour déterminer les hôtes disponibles sur le réseau, leurs services (y compris les noms et versions des applications), le système d'exploitation que l'hôte exécute (y compris des informations telles que la version du système d'exploitation) et les filtres de paquets utilisés ou le type de pare-feu, parmi de nombreuses autres informations.

# nmap -sV -p 22 localhost

Quelle est la commande pour afficher le port du processus sous Linux ?

Méthode 6 : Utilisez la commande 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"

Quelle est la commande pour afficher le port du processus sous Linux ?

相关推荐:《Linux视频教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn