Possibilité de "ping" url: port? (OS X-GeekTool)

20

J'essaie d'utiliser GeekTool (panneau de préférences Mac ... en gros, il intègre simplement la sortie d'une commande / script shell sur le bureau ... http://lifehacker.com/#!244026/geek-to-live--monitor -votre-mac-and-more-with-geektool ) pour surveiller aa machines / serveurs distants, et j'ai du mal à déterminer la meilleure façon de vérifier si une machine est en marche / arrêt.

J'utilise no-ip comme redirection DNS gratuite ... mais cela ne m'aide qu'avec l'adresse IP publique du routeur. La machine que je veux se trouve derrière le routeur et ne peut donc pas être "cinglée" directement.

J'ai la redirection de port configurée pour le port 8080 qui mène à la machine que je veux. Existe-t-il un moyen d'envoyer une requête ping au port 8080 pour voir si la machine est opérationnelle? J'ai essayé telnet, mais cela ne fonctionne apparemment pas (en ce qui concerne la sortie) dans GeekTool. J'exécute un site Web au 8080, donc je suppose que je veux juste savoir si / quand il tombe en panne.

Merci d'avance ... si je peux fournir plus de précisions, faites-le moi savoir.

(compris mon problème ... voir ci-dessous)

loeschg
la source
2
pingest un protocole ICMP, tandis que les ports sont des concepts TCP et UDP. Tous les 3 sont des protocoles distincts sur IP. Cela signifie qu'un paquet IP contenant TCP ne peut pas contenir ICMP et vice versa. Cela signifie également que l'en-tête TCP (avec le port) n'est pas présent dans un paquet ping ICMP.
MSalters

Réponses:

24

Pour vérifier un port spécifique, vous pouvez utiliser telnet:

telnet 127.0.0.1 8080

(Le port suit l'IP / le nom d'hôte avec un espace, pas deux points.)

Si vous obtenez une erreur immédiate, le port n'est pas disponible. Si telnet se bloque, vous vous êtes correctement connecté au port. Ctrl+ Cpour tuer telnet, alors.

Cela peut ou peut ne pas aider avec le problème de redirection de port, cependant. Il vous amène simplement à cette IP et à ce port.

Gaffe
la source
Cela ferait le travail ... mais cela ne fonctionne pas avec GeekTool: /. J'apprécie l'aide.
loeschg
2
Vous devrez peut-être exécuter brew install telnetpour installer telnet.
Lucas Bustamante
6

Theres est un utilitaire hping qui vous permet d' envoyer des requêtes ping aux ports TCP. Ceci est également disponible via homebrew (brew install hping).

backdrift.org donne des instructions simples sur la façon d'utiliser hping à cet effet

$ hping -S -p 80 google.com
HPING google.com (eth0 66.249.92.104): S set, 40 headers + 0 data bytes
len=44 ip=66.249.92.104 ttl=47 id=10442 sport=80 flags=SA seq=0 win=5720 rtt=97.7 ms
len=44 ip=66.249.92.104 ttl=47 id=40838 sport=80 flags=SA seq=1 win=5720 rtt=97.7 ms
len=44 ip=66.249.92.104 ttl=47 id=64607 sport=80 flags=SA seq=2 win=5720 rtt=97.7 ms
len=44 ip=66.249.92.104 ttl=47 id=10443 sport=80 flags=SA seq=3 win=5720 rtt=97.7 ms
^C
--- google.com hping statistic ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 97.7/97.7/97.7 ms
Juha Palomäki
la source
0

Vous pouvez utiliser wget, curletc. pour vérifier que le site Web répond.

Neil
la source
1
Cela ne peut que vérifier un port de service Web.
244boy
@ 244boy La question disait "je gère un site Web au 8080", donc j'ai pensé que c'était une façon raisonnable de vérifier.
Neil
0

Telnet fait le travail, mais je ne peux pas l'intégrer à GeekTool. J'ai fini par faire un ping mysqladmin sur la machine distante . Le site Web a un backend db, donc cela (plus ou moins) renvoie les informations que je recherche. Merci pour votre aide!

loeschg
la source