可以“ ping” url:port吗?(OS X-GeekTool)


20

我正在尝试使用GeekTool(Mac pref面板...基本上只是在桌面上嵌入shell命令/脚本的输出... http://lifehacker.com/#!244026 / geek-to-live--monitor -您的mac-and-more-with-geektool)来监视一台远程机器/服务器,而我在确定如何最好地检查机器是否启动/故障时遇到了一些麻烦。

我正在使用no-ip作为免费的dns重定向...但这仅对路由器的公共IP有所帮助。我想要的机器位于路由器后面,因此无法直接“ ping”到该机器。

我为端口8080设置了端口转发,该端口转发到我想要的机器。有没有一种方法可以基本上通过端口8080 ping以查看计算机是否已启动并正在运行?我尝试了telnet,但这在GeekTool中显然不起作用(就输出而言)。我正在8080上运行一个网站,所以我想我只是想知道它是否/何时消失。

预先感谢...如果我能提供更多说明,请告诉我。

(解决了我的问题...请参阅下文)


2
ping是ICMP协议,而端口是TCP和UDP概念。所有这三种都是基于IP的不同协议。这意味着包含TCP的IP数据包不能包含ICMP,反之亦然。这也意味着在ICMP ping数据包中不存在TCP标头(带有端口)。
MSalters 2013年

Answers:


24

要检查特定端口,可以使用telnet:

telnet 127.0.0.1 8080

(端口在IP /主机名后加一个空格,而不是冒号。)

如果收到立即错误,则说明该端口不可用。如果telnet挂起,则说明您已成功连接到端口。Ctrl+ C然后杀死telnet。

但是,这可能会也可能不会有助于端口转发问题。它只是将您带到该IP和端口。


这样就可以完成工作了……但是它不适用于GeekTool:/。感谢您的帮助。
loeschg 2011年

2
您可能需要运行brew install telnet以安装telnet。
Lucas Bustamante

6

Theres的hping实用程序可让您ping TCP端口。也可以通过自制软件(brew install hping)来使用。

backdrift.org提供了有关如何为此目的使用hping的简单说明

$ 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

0

你可以使用wgetcurl等来检查网站响应。


1
这只能检查Web服务端口。
244boy19年

@ 244boy这个问题说“我正在8080运行一个网站”,所以我认为这是一种合理的检查方法。
尼尔,

0

Telnet完成了工作,但是我无法将其与GeekTool集成。我最终对远程计算机执行了mysqladmin ping操作。该网站具有数据库后端,因此(或多或少)该数据库返回我要查找的信息。感谢您的所有帮助!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.