Les ports sont un concept d'UDP et de TCP. Les messages ping sont techniquement appelés demande d'écho ICMP et Réponse d'écho ICMP qui font partie de l'ICMP. ICMP, TCP et UDP sont des "frères et sœurs" ; ils ne sont pas basés les uns sur les autres, mais sont trois protocoles distincts qui s'exécutent sur IP.
Vous ne pouvez donc pas ping
un port. Ce que vous pouvez faire, c'est utiliser un scanner de port comme nmap
.
nmap -p 80 onofri.org
Vous pouvez également utiliser telnet onofri.org 80
, comme suggéré dans l'une des autres réponses (cela donnera une erreur si le port est fermé ou filtré).
J'utilise Telnet, car il est intégré à de nombreuses plates-formes sans téléchargement supplémentaire.
Utilisez simplement la commande telnet pour vous connecter au port que vous souhaitez tester. Si vous obtenez le message ci-dessous, ou un message du service lui-même, le port est actif.
Minty16 ~ $ telnet localhost 139
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Si vous connaissez la séquence de commandes du service auquel vous vous connectez, vous pouvez taper une commande (HTTP/FTP GET par exemple) et observer la réponse et la sortie dans le terminal. Ceci est très utile pour tester le service lui-même, car il vous montrera les informations d'erreur envoyées au client, comme les erreurs HTTP 500.
Si vous recevez un message indiquant que la connexion a été refusée, le port est fermé.
Minty16 ~ $ telnet localhost 5000
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
Vous pouvez utiliser netcat pour vous connecter à un port spécifique pour voir si vous obtenez une connexion. L'indicateur -v augmentera la verbosité pour indiquer si le port est ouvert ou fermé. L'indicateur -z entraînera la fermeture de netcat une fois qu'il aura une connexion. Vous pouvez ensuite utiliser les codes de sortie via $ ? pour voir si la connexion a été établie ou non.
$ nc -zv localhost 22
localhost [127.0.0.1] 22 (ssh) open
$ echo $?
0
$ nc -zv localhost 23
localhost [127.0.0.1] 23 (telnet) : Connection refused
$ echo $?
1
De plus, vous pouvez utiliser mtr avec l'indicateur -T pour tcp et l'indicateur -P pour spécifier un port. Cela fera quelque chose de similaire à un traceroute sur TCP au lieu de simplement ICMP. Cela peut cependant être exagéré.
soupir Je dois éditer pour ajouter ce bit, car nous ne pouvons pas mettre de code dans les commentaires. Knoppix fait peut-être quelque chose de différent avec sa version de netcat, mais c'est ce que je retiens de Linux Mint
$ date;nc -z -w 1 www.google.com 8000;date
Fri Jun 20 15:55:26 PDT 2014
Fri Jun 20 15:55:27 PDT 2014
$ date;nc -z -w 4 www.google.com 8000;date
Fri Jun 20 15:55:33 PDT 2014
Fri Jun 20 15:55:37 PDT 2014
$ nc -h
[v1.10-40]