242 votes

Est-il possible d'effectuer un ping sur une adresse et un port ?

Je ne suis pas dans le domaine des réseaux, et j'ai la question suivante concernant le système Linux ping comando.

Puis-je envoyer un ping à une seule adresse ? Par exemple :

miner@raspberrypi ~ $ ping onofri.org
PING onofri.org (67.222.36.105) 56(84) bytes of data.
64 bytes from onofri.org (67.222.36.105): icmp_req=1 ttl=47 time=202 ms
64 bytes from onofri.org (67.222.36.105): icmp_req=2 ttl=47 time=206 ms
64 bytes from onofri.org (67.222.36.105): icmp_req=3 ttl=47 time=215 ms

Ou puis-je aussi envoyer un message à un adresse:port par exemple : onofri.org:80 ?

Si j'essaie celui-là, ça ne marche pas :

miner@raspberrypi ~ $ ping onofri.org:80
ping: unknown host onofri.org:80

Est-il possible d'envoyer quelque chose comme adresse:port ? Si c'est possible, pourquoi ce que j'ai essayé ne fonctionne-t-il pas ?

8 votes

Qu'est-ce que vous essayez d'accomplir ? Pour vérifier le bon fonctionnement d'un service, vous devez interroger le service et évaluer la réponse. Un serveur Web pourrait, par exemple, accepter votre connexion, mais renvoyer une erreur en raison d'une mauvaise configuration.

0 votes

@AndreaNobili - C'est une bonne question. Veuillez répondre aux questions de Daniel, mais je peux dire que vous avez fait des recherches appropriées avant de poser cette question.

5 votes

C'est une partie de ce que j'aime dans Telnet. Vous pouvez vous connecter à un serveur web, et taper GET /index.html HTTP\1.1 et voir la réponse 200 (ou le code d'erreur) ainsi que le balisage résultant.

21voto

nyuszika7h Points 2354

Vous pouvez également utiliser nping (partie de nmap ) :

$ nping -p 80 localhost

Starting Nping 0.6.00 ( http://nmap.org/nping ) at 2014-06-23 11:57 CEST
SENT (0.0015s) Starting TCP Handshake > localhost:80 (127.0.0.1:80)
RECV (0.0016s) Handshake with localhost:80 (127.0.0.1:80) completed
SENT (1.0027s) Starting TCP Handshake > localhost:80 (127.0.0.1:80)
RECV (1.0027s) Handshake with localhost:80 (127.0.0.1:80) completed
SENT (2.0038s) Starting TCP Handshake > localhost:80 (127.0.0.1:80)
RECV (2.0039s) Handshake with localhost:80 (127.0.0.1:80) completed
SENT (3.0050s) Starting TCP Handshake > localhost:80 (127.0.0.1:80)
RECV (3.0050s) Handshake with localhost:80 (127.0.0.1:80) completed
SENT (4.0061s) Starting TCP Handshake > localhost:80 (127.0.0.1:80)
RECV (4.0062s) Handshake with localhost:80 (127.0.0.1:80) completed

Max rtt: 0.032ms | Min rtt: 0.008ms | Avg rtt: 0.012ms
TCP connection attempts: 5 | Successful connections: 5 | Failed: 0 (0.00%)
Tx time: 4.00575s | Tx bytes/s: 99.86 | Tx pkts/s: 1.25
Rx time: 4.00575s | Rx bytes/s: 49.93 | Rx pkts/s: 1.25
Nping done: 1 IP address pinged in 4.01 seconds

6 votes

nping --tcp -p 80 localhost

0 votes

Je teste TOUS les ports, (les ports qui ne sont pas ouverts) et je reçois toujours deux handshakes...

10voto

AXE Labs Points 707

Vous pouvez le faire dans le Shell avec Python, comme un one liner pas si court :

$ portping() { python <<<"import socket; socket.setdefaulttimeout(1); socket.socket().connect(('$1', $2))" 2> /dev/null && echo OPEN || echo CLOSED; }
$ portping 8.8.8.8 54
CLOSED
$ portping 8.8.8.8 53
OPEN

8voto

Jacek Points 181

Juste à titre de référence, je voulais partager un article de Vivek Gite : https://www.cyberciti.biz/faq/ping-test-a-specific-port-of-machine-ip-address-using-linux-unix/#comment-920398

Il énumère plusieurs moyens, dont certains sont déjà affichés ici. Mais le plus surprenant pour moi n'était rien d'autre que bash :

(echo >/dev/tcp/{host}/{port}) &>/dev/null && echo "opened" || echo "closed"
(echo >/dev/udp/{host}/{port}) &>/dev/null && echo "opened" || echo "closed"
(echo >/dev/tcp/www.cyberciti.biz/22) &>/dev/null && echo "Opened 22" || echo "Closed 22"
(echo >/dev/tcp/www.cyberciti.biz/443) &>/dev/null && echo "Opened 443" || echo "Closed 443"

Ou une version super simple : il suffit de regarder la sortie du modèle de commande suivant :

echo >/dev/{tcp|udp}/{host}/{port}

Utile lorsque vous travaillez avec des conteneurs docker aléatoires.

0 votes

looking at the output - seulement inspecter le code de retour $? peut être utile. De plus, il se bloque sur les ports fermés, peut-être qu'un délai d'attente peut être configuré n'importe où...

0 votes

Cette solution a l'air soignée, mais echo >/dev/tcp/{hostname}/{portnumber} ne se termine pas lorsque le port est fermé. Et echo >/dev/tcp/{hostname}/{portnumber} ne montre rien, même si le port est ouvert et que je peux le voir sur un navigateur.

0 votes

Bonjour mmorin, quel système d'exploitation utilisez-vous ? Sur Ubuntu, il se comporte comme prévu : si le port est fermé, j'obtiens Connection refused . Sinon, il sort en ne montrant rien et echo $? affichage du code de sortie 1

3voto

DarckBlezzer Points 133

Il est simple avec nmap

exemples :

#sintaxis
nmap -p [port] hostName
#first is command, after scan ports, type port - port or range ports, and ip or name of website...

## Scan port 80
nmap -p 80 onofri.org

## Scan TCP port 80
nmap -p T:80 onofri.org

## Scan UDP port 53
nmap -p U:53 onofri.org

## Scan two ports ##
nmap -p 80,443 onofri.org

## Scan port ranges ##
nmap -p 80-200 onofri.org

## Combine all options ##
nmap -p U:53,111,137,T:21-25,80,139,8080 onofri.org
nmap -p U:53,111,137,T:21-25,80,139,8080 server1.cyberciti.biz
nmap -v -sU -sT -p U:53,111,137,T:21-25,80,139,8080 onofri.org

## Scan all ports with * wildcard ##
nmap -p "*" 192.168.1.1

## Scan top ports i.e. scan $number most common ports ##
nmap --top-ports 5 onofri.org
nmap --top-ports 10 onofri.org

Pour plus d'informations, voir ceci :

tapez dans la ligne de commande ceci : man nmap

http://www.cyberciti.biz/networking/nmap-command-examples-tutorials/ http://www.tecmint.com/nmap-command-examples/

2voto

Scott Points 21

J'ajoute watch outil ici :

watch nmap -p22,80 google.com

Every 2,0s: nmap -p22,80 google.com   Mon Jun 15 16:46:33 2015

Starting Nmap 6.40 ( http://nmap.org ) at 2015-06-15 16:46 NOVT
Nmap scan report for google.com (127.0.0.1)
Host is up (0.0012s latency).
rDNS record for 127.0.0.1: google.com
PORT     STATE  SERVICE
22/tcp open   ssh
80/tcp closed http

Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds

0 votes

Vous pouvez simplement utiliser nping en une autre réponse qui produit une sortie plus agréable sans répéter l'en-tête de la version de nmap.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X