Tester un port réseau sous Linux sans Telnet

Venant de l'univers Windows, j'avais pour habitude (sans powershell) d'utiliser Telnet qui peut être c... c......s quand le port répond et qu'une connexion s'établie.

Sous Linux, sur une appliance qui n'avait pas telnet, j'ai vu un presta qui a testé si un port TCP était ouvert en utilisant /dev/tcp en adaptant ligne ci-dessous

L'exemple test le port 443 de l'ip 192.168.10.1

echo > /dev/tcp/192.168.10.1/443 && echo "port open"
Lien vers le fichier : cliquez ici Copier le code

Si le port est ouvert, "port open" sera affiché, sinon la commande va se bloquer.

Plus tard j'ai vu un autre presta (décidément) qui utilisait la commande nc du paquet netcat-openbsd. En fait on a 2 grandes options :

  • sur une base Ubuntu / Debian, on peut avoir de base la commande nc du paquet netcat-openbsd
  • sur une base Red Hat on a plus la commande ncat du paquet nmap-ncat. C'est une version moderne et enrichie de netcat.

nc et ncat sont 2 commandes différentes avec des options différentes.

Pour installer nc sur Ubuntu / Debian

sudo apt install netcat-openbsd
Lien vers le fichier : cliquez ici Copier le code

Pour installer ncat sur une base Red Hat

sudo dnf install nmap-ncat
Lien vers le fichier : cliquez ici Copier le code

Exemple d'utilisation de la commande nc sur Ubuntu / Debian
-z : scan sans envoyer de données
-v : mode verbeux

nc -zv 192.168.1.10 80
Lien vers le fichier : cliquez ici Copier le code

Equivalence avec la commande ncat sur une base Red Hat (mais la commande nc passe aussi de ce que je vois)

ncat -zv 192.168.1.10 80
Lien vers le fichier : cliquez ici Copier le code

nc permet aussi d'écouter sur un port donné, cela peut lever un doute sur un port qui écoute mais qui refuse la connexion. postgresSQL peut avoir ce comportement par exemple.

Donc par exemple pour écouter sur le port 8080

nc -l -p 8080
Lien vers le fichier : cliquez ici Copier le code
Publicité