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 consiste à vérifier la connectivité afin de résoudre les problèmes. les questions de mise en réseau. Il peut s'agir de n'importe quoi, comme l'impossibilité pour l'application de se connecter au service backend, l'impossibilité de récupérer des données à partir d'une URL externe, la vérification de l'ouverture du flux, etc.
Quel que soit le problème, les utilitaires/commandes suivants pourraient 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
Disons que vous voulez 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 apparaître le message "Connecté".
Trying 10.0.0.1...
Connected to 10.0.0.1.
Escape character is '^]'.
Note : si vous obtenez une commande non trouvée lors de l'exécution de telnet, vous devez alors 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 test simple 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.
[root@geekflare-lab ~]# nc -vz geekflare.com 443
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 104.25.133.107:443.
Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds.
[root@geekflare-lab ~]#
Comme indiqué, vous pouvez également utiliser nc
pour lier la connexion à écouter 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
Il lie le port à 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, alors wget
est votre ami. Le test à l'aide de wget est simple.
wget $URL
Voici un exemple de test tools.geekflare.com
[root@geekflare-lab ~]# wget tools.geekflare.com
--2019-05-09 20:40:01-- http://tools.geekflare.com/
Resolving tools.geekflare.com (tools.geekflare.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ...
Connecting to tools.geekflare.com (tools.geekflare.com)|104.25.134.107|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://tools.geekflare.com/ [following]
--2019-05-09 20:40:01-- https://tools.geekflare.com/
Connecting to tools.geekflare.com (tools.geekflare.com)|104.25.134.107|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: 'index.html.2'
[ <=> ] 15,139 --.-K/s in 0.001s
2019-05-09 20:40:02 (12.8 MB/s) - 'index.html.2' saved [15139]
[root@geekflare-lab ~]#
S'il apparaît connecté, cela signifie qu'il n'y a pas de problème de connectivité.
Consultez cette page pour voir quelques-uns des outils les plus fréquemment utilisés. Exemples de commandes wget.
boucler
A boucler est un outil polyvalent.
Savez-vous que vous pouvez vous connecter à un port à l'aide de curl ?
Maintenant, vous le savez.
curl -v telnet://$IP:$PORT
Voici un exemple de travail.
[root@geekflare-lab ~]# curl -v telnet://chandan.io:443
* About to connect() to chandan.io port 443 (#0)
* Trying 104.31.68.106...
* Connected to 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
* About to connect() to chandan.io port 4434 (#0)
* Trying 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
Il s'agit d'un outil populaire doté de centaines de fonctionnalités. Il est souvent considéré comme un outil de sécurité, nmap vous permet de tester une seule adresse IP/port ou une plage d'adresses.
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
Starting Nmap 7.70 ( https://nmap.org ) at 2019-05-10 06:55 UTC
Nmap scan report for siterelic.com (104.27.174.50)
Host is up (0.0079s latency).
Other addresses for siterelic.com (not scanned): 104.27.175.50 2606:4700:30::681b:ae32 2606:4700:30::681b:af32
PORT STATE SERVICE
443/tcp open https
Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds
[root@geekflare-lab ~]#
Regardez la colonne état. Si elle est ouverte, cela signifie que la connexion est correcte. 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 exacts si ICMP est bloqué au niveau du réseau distant. pare-feu. Si ce n'est pas le cas, vous pouvez effectuer un ping vers le point d'extrémité du réseau IPv4 ou IPv4 comme indiqué ci-dessous.
ping $ipaddress
ping $url
Par exemple, le résultat du succès de geekflare.com
chandan@192 ~ % ping geekflare.com
PING geekflare.com (104.27.119.115): 56 data bytes
64 bytes from 104.27.119.115: icmp_seq=0 ttl=53 time=7.944 ms
64 bytes from 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 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Si le terminal prend en charge IPv6, vous pouvez utiliser l'option ping6
comme indiqué ci-dessous.
chandan@192 ~ % ping6 geekflare.com
PING6(56=40+8+8 bytes) 2a01:4b00:88e4:8700:d8ca:bf50:159c:2a1d --> 2606:4700:20::681b:7673
16 bytes from 2606:4700:20::681b:7673, icmp_seq=0 hlim=250 time=8.650 ms
16 bytes from 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 la fonction outil de ping en ligne.
Conclusion
telnet disparaît progressivement dans la dernière version de Linux. Merci à l'alternative telnet ci-dessus.
Si vous êtes novice en matière de Linux et que vous cherchez à vous familiariser avec ce système, jetez un coup d'œil à cette page. Cours Udemy.