Présentation
Un port est un terminal de communication. Au niveau logiciel, au sein d'un système d'exploitation, un port est une construction logique qui identifie un processus spécifique ou un type de service réseau. Un port est identifié pour chaque combinaison de protocole de transport et d'adresse par un nombre non signé de 16 bits, appelé numéro de port. . Les protocoles de transport les plus courants qui utilisent des numéros de port sont le protocole de contrôle de transmission (TCP) et le protocole de datagramme utilisateur (UDP).
De plus, le port est une entité logique qui représente un point de terminaison de communication et est associée à un processus ou à un service donné dans un système d'exploitation. Dans les articles précédents, nous avons expliqué comment connaître la liste de tous les ports ouverts sous Linux et comment vérifier si les ports distants sont accessibles à l'aide de la commande Netcat.
1. Utilisation de la commande lsof
lsof La commande (List Open Files) est utilisée pour lister tous les fichiers ouverts sur un Linux
Pour l'installer sur votre système, exécutez
$ sudo apt-get install lsof #for Debian, Ubuntu and Mint
$ sudo yum install lsof #for RHEL/CentOS/Fedora and Rocky Linux
$ sudo emerge -a sys-apps/lsof #for Gentoo Linux
$ sudo pacman -S lsof #for Arch Linux
$ sudo zypper install lsof #for OpenSUSE
Pour trouver le processus/service à l'écoute sur un port particulier, exécutez la commande ci-dessous :
[root@unixcop ~]# lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 12289 root 4u IPv6 70310 0t0 TCP *:http (LISTEN)
httpd 24040 apache 4u IPv6 70310 0t0 TCP *:http (LISTEN)
httpd 24041 apache 4u IPv6 70310 0t0 TCP *:http (LISTEN)
httpd 24042 apache 4u IPv6 70310 0t0 TCP *:http (LISTEN)
[root@unixcop ~]#
2. Utilisation de la commande netstat
Alors netstat La commande fait référence aux (statistiques du réseau) utilisées pour afficher des informations telles que les connexions réseau, les tables de routage et les statistiques d'interface.
Pour installer netstat :
$ sudo apt-get install net-tools #for Debian/Ubuntu & Mint
$ sudo dnf install net-tools #for CentOS/RHEL/Fedora and Rocky Linux
$ pacman -S netstat-nat #for Arch Linux
$ emerge sys-apps/net-tools #for Gentoo
$ sudo dnf install net-tools #for Fedora
$ sudo zypper install net-tools #for openSUSE
Vous pouvez l'utiliser avec le grep commande pour trouver le processus ou le service à l'écoute sur un port particulier sous Linux comme avec la commande ci-dessous :
$ netstat -ultnp | grep -w ':80'
Dans la commande ci-dessus, les drapeaux.
l
- indique à netstat de n'afficher que les sockets d'écoute.p
– permet d'afficher l'ID de processus et le nom du processus.n
– lui demande d'afficher les adresses numériques.t
– lui dit d'afficher les connexions tcp.grep -w
– affiche la correspondance de la chaîne exacte (:80).
3. Utilisation de la commande fuser
fuseur La commande affiche les PID des processus utilisant les fichiers ou systèmes de fichiers spécifiés .
Vous pouvez l'installer avec :
$ sudo apt-get install psmisc #for Debian, Ubuntu and Mint
$ sudo yum install psmisc #for RHEL/CentOS/Fedora and Rocky Linux
$ sudo emerge -a sys-apps/psmisc #for Gentoo Linux
$ sudo pacman -S psmisc #for Arch Linux
$ sudo zypper install psmisc #for OpenSUSE
Vous pouvez trouver le processus/service à l'écoute sur un port particulier en exécutant la commande :
[root@unixcop ~]# fuser 80/tcp
80/tcp: 12289 24040 24041 24042
[root@unixcop ~]#
Pour trouver le nom du processus à l'aide du numéro PID avec la commande ps :
$ ps -p 2053 -o comm=
$ ps -p 2381 -o comm=
[root@unixcop ~]# fuser 80/tcp
80/tcp: 12289 24040 24041 24042
[root@unixcop ~]# ps -p 12289 -o comm=
httpd
[root@unixcop ~]# ps -p 24040 -o comm=
httpd
[root@unixcop ~]
Conclusion
Dans ce guide, vous connaissez les meilleurs moyens de trouver le processus/service en écoute sur un port particulier sous Linux.