Vous vous demandez comment vérifier la connectivité entre deux points de terminaison du réseau?
L'une des tâches courantes de sysadmin est de vérifier la connectivité pour dépanner problèmes de réseau. Cela peut être quelque chose comme l'application ne peut pas se connecter au service backend, incapable de récupérer des données à partir d'une URL externe, de vérifier si le flux est ouvert, etc.
Quoi qu'il en soit, l'utilitaire/les commandes suivantes pourraient vous aider. Ils sont testés sur CentOS et je ne vois aucune raison de ne pas travailler sur une autre distribution Linux.
Explorons…
telnet
L'une des commandes largement utilisées pour tester la connectivité essentielle entre les serveurs, le serveur vers l'IP d'un autre périphérique réseau. La syntaxe de la commande est simple.
telnet $destinationIP $PORT
Disons que vous voulez tester si vous pouvez vous connecter au port 8080 sur une adresse IP 10.0.0.1; alors la commande serait.
telnet 10.0.0.1 8080
S'il n'y a pas de problème de connexion, vous devriez voir le message connecté.
Trying 10.0.0.1...
Connected to 10.0.0.1.
Escape character is '^]'.
Remarque : si vous obtenez une commande introuvable lors de l'exécution de telnet, vous devez installez telnet comme je l'ai expliqué ici.
Dans la plupart des scénarios, telnet devrait aider. Cependant, si vous avez besoin d'une autre option, voici quelques alternatives telnet.
ncat or nc
Ncat (alias nc) est un utilitaire réseau puissant avec de nombreuses fonctionnalités telles que lier et accepter une connexion, exécuter des commandes à distance, écrire et lire des données, etc. Il fonctionne sur IPv4 et IPv6, les deux.
Pour faire un test simple pour vérifier si le port est ouvert ou non, vous exécuterez ce qui suit.
nc -vz $HOSTNAME $PORT
Prenons un exemple de 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 mentionné, 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 réels en cours d'exécution mais que vous souhaitez vous assurer que la connectivité existe.
Pour commencer à écouter sur un port:
nc -l $PORTNUMBER
Il liera 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 HTTP, HTTPS et FTP. Si vous travaillez en tant qu'ingénieur Web ou si vous traitez souvent de problèmes liés au Web, alors wget
est votre ami. Tester avec 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 indique connecté, cela signifie qu'il n'y a pas de problème de connectivité.
Consultez ceci pour voir certains des fréquemment utilisés exemples de commandes wget.
curl
A boucle est un outil polyvalent.
Savez-vous que vous pouvez telnet sur un port en utilisant curl?
Eh bien, maintenant vous 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 problème de port d'écoute ou de pare-feu, vous verrez 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 plusieurs protocoles - HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER, etc.
nmap
Un outil populaire avec des centaines de fonctionnalités. Souvent, cela est considéré comme un outil de sécurité, nmap vous permet de tester une seule IP/port ou dans la plage.
Pour tester un seul port
nmap -p $PORT $IP
Un 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 d'état. Si vous voyez ouvert, 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 largement utilisées consiste à vérifier si un hôte distant répond ou non à ICMP ECHO_REQUEST. Gardez à l'esprit que cela peut ne pas vous donner de résultats précis lorsque ICMP est bloqué au niveau du réseau distant. pare-feu. En supposant que ce ne soit pas le cas, vous pouvez envoyer un ping au point de terminaison du réseau IPv4 ou IPv4 comme 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, 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 point de terminaison prend en charge IPv6, vous pouvez utiliser le ping6
commande comme 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 le 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 nouveau sur Linux et que vous cherchez à apprendre, consultez ceci Cours Udemy.