Vous vous demandez comment vérifier la connectivité entre deux points d’extrémité du réseau ?

L’une des tâches courantes de l’administrateur système est de vérifier la connectivité pour résoudre les problèmes de réseau. Il peut s’agir par exemple d’une application qui ne peut pas se connecter à un service backend, d’une impossibilité de récupérer des données à partir d’une URL externe, d’une vérification de l’ouverture du flux, etc.

Quel que soit le problème, les utilitaires/commandes suivants peuvent vous aider. Ils ont été testés sur CentOS, et je ne vois aucune raison pour qu’ils ne fonctionnent pas sur une autre distribution Linux.

Explorons…

telnet

L’une des commandes les plus utilisées pour tester la connectivité essentielle entre les serveurs, le serveur et l’IP d’un autre périphérique réseau. La syntaxe de cette commande est simple.

telnet $destinationIP $PORT

Supposons que vous souhaitiez tester si vous pouvez vous connecter au port 8080 sur l’adresse IP 10.0.0.1 ; la commande serait alors la suivante.

telnet 10.0.0.1 8080

S’il n’y a pas de problème de connexion, vous devriez voir le message “connected”.

Essayer 10.0.0.1...
Connecté à 10.0.0.1.
Le caractère d'échappement est '^]'.

Note : si vous obtenez une commande non trouvée lors de l’exécution de telnet, alors vous devez installer telnet comme je l’ai expliqué ici.

Dans la plupart des cas, telnet devrait vous aider. Cependant, si vous avez besoin d’une autre option, voici quelques alternatives à telnet.

ncat ou nc

Ncat (alias nc) est un puissant utilitaire réseau doté de nombreuses fonctionnalités telles que l’établissement et l’acceptation d’une connexion, l’exécution de commandes à distance, l’écriture et la lecture de données, etc. Il fonctionne sur IPv4 et IPv6.

Pour effectuer un simple test afin de vérifier si le port est ouvert ou non, vous devez exécuter ce qui suit.

nc -vz $HOSTNAME $PORT

Prenons l’exemple du test du port 443 sur geekflare.com/fr.

[root@geekflare-lab ~]# nc -vz geekflare.com/fr 443
Ncat : Version 7.50 ( https://nmap.org/ncat )
Ncat : Connecté à 104.25.133.107:443.
Ncat : 0 octets envoyés, 0 octets reçus en 0.02 secondes.
[root@geekflare-lab ~]#

Comme mentionné, vous pouvez également utiliser nc pour lier la connexion à l‘écoute sur un port particulier. Cela peut être pratique lorsque vous n’avez pas de services en cours d’exécution mais que vous voulez vous assurer que la connectivité existe.

Pour commencer à écouter sur un port :

nc -l $PORTNUMBER

Le port sera lié à un numéro donné.

Si ncat n’est pas installé, vous pouvez le faire avec yum install nc sur les serveurs CentOS/RHEL.

wget

wget est une commande utile pour télécharger/tester les protocoles HTTP, HTTPS et FTP. Si vous travaillez en tant qu’ingénieur web ou si vous êtes souvent confronté à des problèmes liés au web, wget est votre ami. Les tests effectués à l’aide de wget sont simples.

wget $URL

Voici un exemple de test sur tools.geekflare.com/fr

[root@geekflare-lab ~]# wget tools.geekflare.com/fr
--2019-05-09 20:40:01-- http://tools.geekflare.com/fr/
Résolution de tools.geekflare.com/fr (tools.geekflare.com/fr)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ...
Connexion à tools.geekflare.com/fr (tools.geekflare.com/fr)|104.25.134.107|:80... connecté.
Requête HTTP envoyée, en attente de réponse... 301 Déplacé de façon permanente
Emplacement : https://tools.geekflare.com/fr/ [suivant]
--2019-05-09 20:40:01-- https://tools.geekflare.com/fr/
Connexion à tools.geekflare.com/fr (tools.geekflare.com/fr)|104.25.134.107|:443... connecté.
Requête HTTP envoyée, en attente de réponse... 200 OK
Longueur : non spécifiée [text/html]
Sauvegarde dans : 'index.html.2'

    [ <=> ] 15 139 --.-K/s en 0.001s  

2019-05-09 20:40:02 (12.8 MB/s) - 'index.html.2' sauvegardé [15139]

[root@geekflare-lab ~]#

Si vous voyez qu’il est connecté, cela signifie qu’il n’y a pas de problème de connectivité.

Consultez cette page pour voir quelques exemples de commandes wget fréquemment utilisées.

curl

Curl est un outil polyvalent.

Savez-vous que vous pouvez vous connecter à un port à l’aide de curl ?

Eh bien, maintenant vous le savez.

curl -v telnet://$IP:$PORT

Voici un exemple qui fonctionne.

[root@geekflare-lab ~]# curl -v telnet://chandan.io:443
* Sur le point de se connecter() au port 443 de chandan.io (#0)
*   Essai sur 104.31.68.106...
* Connecté à chandan.io (104.31.68.106) port 443 (#0)

Et, lorsqu’il n’y a pas de port d’écoute ou de problème de pare-feu, vous verrez alors essayer…

[root@geekflare-lab ~]# curl -v telnet://chandan.io:4434
* Sur le point de se connecter() au port 4434 de chandan.io (#0)
*   Essai sur 104.31.68.106...

Vous pouvez également utiliser curl pour télécharger les données. Il prend en charge de nombreux protocoles – HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER, etc.

nmap

Un outil populaire avec des centaines de fonctionnalités. Souvent considéré comme un outil de sécurité, nmap vous permet de tester une seule IP/port ou une plage d’IP/port.

Pour tester un seul port

nmap -p $PORT $IP

Exemple de test du port 443 sur siterelic.com

[root@geekflare-lab ~]# nmap -p 443 siterelic.com
Démarrage de Nmap 7.70 ( https://nmap.org ) à 2019-05-10 06:55 UTC
Rapport de scan Nmap pour siterelic.com (104.27.174.50)
L'hôte est en ligne (0.0079s latence).
Autres adresses pour siterelic.com (non scannées) : 104.27.175.50 2606:4700:30::681b:ae32 2606:4700:30::681b:af32

ÉTAT DU PORT SERVICE
443/tcp ouvert https

Nmap terminé : 1 adresse IP (1 host up) scannée en 0.13 secondes
[root@geekflare-lab ~]#

Regardez la colonne state. Si vous voyez open, cela signifie que la connexion est correcte. Et si l’état est filtré, cela signifie que la connectivité n’existe pas.

Ping

L’une des commandes les plus utilisées consiste à vérifier si un hôte distant répond ou non à la requête ICMP ECHO_REQUEST. Gardez à l’esprit que cette commande peut ne pas vous donner des résultats précis si ICMP est bloqué au niveau du pare-feu du réseau distant. Si ce n’est pas le cas, vous pouvez effectuer un ping vers un point d’extrémité IPv4 ou IPv4 du réseau comme indiqué ci-dessous.

ping $ipaddress
ping $url

Par exemple, le résultat du ping de geekflare.com/fr est le suivant

chandan@192 ~ % ping geekflare.com/fr
PING geekflare.com/fr (104.27.119.115) : 56 octets de données
64 octets en provenance de 104.27.119.115 : icmp_seq=0 ttl=53 time=7.944 ms
64 octets en provenance de 104.27.119.115 : icmp_seq=1 ttl=53 time=8.870 ms

Par exemple, le résultat de l’échec de l’IP interne.

chandan@192 ~ % ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) : 56 octets de données
Délai d'attente pour icmp_seq 0
Délai d'attente pour icmp_seq 1

Si le terminal prend en charge IPv6, vous pouvez utiliser la commande ping6 comme suit.

chandan@192 ~ % ping6 geekflare.com/fr
PING6(56=40 8 8 bytes) 2a01:4b00:88e4:8700:d8ca:bf50:159c:2a1d -->

 2606:4700:20::681b:7673
16 octets en provenance de 2606:4700:20::681b:7673, icmp_seq=0 hlim=250 time=8.650 ms
16 octets en provenance de 2606:4700:20::681b:7673, icmp_seq=1 hlim=250 time=8.738 ms

Si vous devez effectuer un ping à distance sur Internet, vous pouvez utiliser l‘outil de ping en ligne.

Conclusion

telnet disparaît progressivement dans les dernières versions de Linux. Merci aux alternatives telnet ci-dessus.

Si vous êtes nouveau sous Linux et que vous cherchez à apprendre, consultez ce cours Udemy.