Maison > Article > Opération et maintenance > Quelle est la commande pour afficher le port du processus sous Linux ?
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".
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
Vous pouvez également vérifier en utilisant le numéro de port.
# ss -tnlp | grep ":22"
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
Vous pouvez également vérifier en utilisant le numéro de port.
# netstat -tnlp | grep ":22"
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
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
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
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"
相关推荐:《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!