web-dev-qa-db-fra.com

Est-il possible d'envoyer une requête ping à une adresse: port?

Je ne suis pas dans la mise en réseau, et j'ai la question suivante liée à la commande Linux ping .

Puis-je seulement cingler une 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 faire un ping sur une adresse: port , par exemple: onofri.org:80 ?

Si j'essaye celui-ci ça ne marche pas:

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

Est-il possible de faire un ping avec quelque chose comme address: port ? Si c'est possible, pourquoi ce que j'ai essayé ne fonctionne-t-il pas?

207
AndreaNobili

Vous pouvez utiliser Paping , un test de port multi-plateforme TCP, émulant la fonctionnalité de ping (port ping)

(voir aussi Github as code.google.com a été amorti)

paping -p 80 google.com
19
kxmp

Les ports sont un concept de UDP et TCP . Les messages Ping sont appelés techniquement demande d'écho ICMP et réponse d'écho ICMP qui font partie de ICMP . ICMP, TCP et UDP sont des "frères et soeurs"; ils ne sont pas basés les uns sur les autres, mais sur trois protocoles distincts qui s'exécutent sur IP.

Par conséquent, vous ne pouvez pas ping un port. Ce que vous pouvez faire, utilisez un scanner de port tel que 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é).

305
BenjiWiebe

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 recevez 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
83
Frank Thomas

Vous pouvez utiliser netcat pour vous connecter à un port spécifique pour voir si vous obtenez une connexion. L'option -v augmentera la verbosité pour indiquer si le port est ouvert ou fermé. L'indicateur -z entraînera la fermeture de netcat une fois la connexion établie. Vous pouvez ensuite utiliser les codes de sortie via $? pour voir si la connexion était é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 être exagéré, cependant.

soupir Je dois éditer pour ajouter ce bit, car nous ne pouvons pas mettre de code dans les commentaires. Knoppix est peut-être en train de faire quelque chose de différent avec sa version de netcat, mais c'est ce que je tire 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]
43
Falsenames

Oui, utilisez HPing pour le faire:

$ Sudo hping -S -p 80 google.com
HPING google.com (p5p1 77.237.27.37): S set, 40 headers + 0 data bytes
len=46 ip=77.237.27.37 ttl=58 id=25706 sport=80 flags=SA seq=0 win=29200 rtt=7.5 ms
len=46 ip=77.237.27.37 ttl=58 id=25707 sport=80 flags=SA seq=1 win=29200 rtt=7.4 ms
len=46 ip=77.237.27.37 ttl=58 id=25708 sport=80 flags=SA seq=2 win=29200 rtt=8.5 ms
len=46 ip=77.237.27.37 ttl=58 id=25709 sport=80 flags=SA seq=3 win=29200 rtt=7.8 ms
^C
--- google.com hping statistic ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 7.4/7.8/8.5 ms

Notez qu'il a besoin des privilèges root (ou des fonctionnalités SELinux) pour créer des paquets IP bruts, tout comme ping (qui est probablement suid sur votre système).

42
d33tah

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
17
nyuszika7h

Vous pouvez faire cela dans le shell avec Python comme une doublure pas si courte:

$ 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
7
AXE-Labs

Juste pour référence, je voulais partager un post 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 diverses manières, dont certaines sont déjà affichées 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 le résultat du modèle de commande suivant:

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

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

3
Jacek

J'ajoute l'outil watch 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
3
vp_arth

Essayez-vous de tester la communication ou d'obtenir une réponse du port 80 sur ce nœud? PING tentera d’établir une communication avec un hôte spécifique par le biais du protocole ICMP, qui n’a rien à voir avec les ports.

A la place, essayez http://nmap.org/ pour vérifier les informations sur le port et tester la communication:

nmap -v -p 80 onofri.org
2
Quijote Shin

C'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 en ligne de commande ceci: man nmap

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

2
DarckBlezzer