832 votes

Ping d'un port spécifique

Juste un petit contrôle de bon sens ici.

Pouvez-vous faire un ping sur un port spécifique d'une machine, et si oui, pouvez-vous fournir un exemple ?

Je cherche quelque chose comme ping ip address portNum .

2 votes

Pour Windows cette question peut être vérifié

40voto

Zafar Points 241

Essayez curl comme :

$ curl host:port

Par exemple :

$ curl -s localhost:80 >/dev/null && echo Success. || echo Fail.
Success.

La commande ci-dessus renverra Échec sur un code d'état de sortie non nul. Dans certains cas particuliers, tels que les réponses vides ou malformées (cf. man curl ), il se peut que vous souhaitiez traiter certains codes de sortie comme des succès, alors vérifiez ceci poste pour une explication plus détaillée.

5 votes

J'aime ça parce que curl est présent par défaut sur CentOS, je n'ai donc pas besoin d'installer quoi que ce soit.

0 votes

Curl fonctionne sur un Raspberry Pi (distro Raspian)

1 votes

C'est de loin la solution la plus élégante et la plus universelle. Je l'ai légèrement modifiée pour en faire un oneliner soigné : IP="<ip>" ; PORT="<port>" ; curl -s "$IP:$PORT" > /dev/null && echo "Success connecting to $IP on port $PORT." || echo "Failed to connect to $IP on port $PORT."

31voto

Non, tu ne peux pas, parce que ping utilise le _Protocole ICMP_ qui n'a même pas le concept de port.

61 votes

Je suis presque sûr que l'utilisation de "ping" était métaphorique.

29voto

Ayan Mullick Points 466

J'ai trouvé une solution plus simple en utilisant PsPing :

psping 192.168.2.2:5000

C'est une partie de Windows Sysinternals .

PsPing met en œuvre la fonctionnalité Ping, le ping TCP, la mesure de la latence et de la bande passante.

4 votes

De plus, PsPing vient de l'équipe de Microsoft SysInternal, il peut donc être considéré comme un peu plus légitime lorsqu'il s'agit d'autres personnes orientées Microsoft. (Et il a de meilleures fonctionnalités que le très vieux PortQry).

2 votes

PSPing a l'avantage de fournir une mesure de latence lors de l'utilisation d'un port personnalisé, ce que Test-NetConnection ne peut pas faire (il ne rapporte que le temps de réponse ICMP).

18voto

c4f4t0r Points 5014

Sous Linux, vous pouvez utiliser hping mais il utilise TCP, plutôt que ICMP.

hping example.com -S -V -p 80

1 votes

Hping (hping3 dans mon ubuntu) est excellent. Il répète périodiquement la sonde comme le fait ping, et contrairement à beaucoup des outils suggérés ici. Il teste également si le paquet passe et si le port est ouvert. S'il est ouvert, vous obtenez flags=SA (i.e. SYN ACK), et s'il est fermé vous obtenez flags=SR (c'est-à-dire SYN RST). Notez que vous n'avez probablement pas besoin de l'option -V ici, mais vous avez besoin de sudo/root pour exécuter hping.

0 votes

Excellent ! Contrairement à beaucoup d'autres réponses, celle-ci rapporte la latence RTT comme ping et envoie des pings jusqu'à ce qu'il soit arrêté.

11voto

Rob Points 647

Ping est très spécifique mais si vous voulez vérifier si un port est ouvert ou non, et que vous utilisez une machine Windows, alors PortQry est votre ami.

Je ne l'ai utilisé que pour tester les contrôleurs de domaine pour des problèmes de connectivité, mais il a fonctionné à merveille pour cela, il devrait donc fonctionner pour vous.

1 votes

PortQry a été initialement publié en 1999/2000 par l'équipe de MS Exchange, mais la version récente de MS semble l'avoir retardé en supprimant la capacité d'interroger les ports distants (santé et sécurité).

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