13

我想查看 Amazon EC2 实例是否打开,但默认情况下 Amazon EC2 会阻止 ping 请求。有一种方法可以通过更改实例的安全策略来做到这一点。除此之外,最接近“查看服务器是否响应”并且轻量级的替代方案是什么?

curl一个不错的选择吗?

4

3 回答 3

12

我想curl这正是你想要的。像所有表现良好的 unix 程序一样,如果出现任何问题,它会返回错误代码:

[cnicutar@ariel ~]$ curl www.no-such-website.com
[cnicutar@ariel ~]$ echo $?
6

此外,您可能希望使用--connect-timeout它来确保它不会永远等待。

于 2013-04-11T21:59:45.230 回答
5

如果服务器已启动且 Web 服务器守护程序已关闭,CURL 将无法快速检查。一种替代方法是使用诸如hping3. 如果您获得 RST,则服务器已启动。

hping3 -c 1 -V -p 80 -s 5050 -A example.fqdn

您可以做的是首先尝试 CURL 测试,失败时尝试第二种方法来确认服务器已关闭,而不仅仅是 Web 服务器守护程序。

这种方法的问题在于,像这样的杂散 TCP 数据包可能会被中间代理过滤。

于 2013-04-11T22:24:03.227 回答
3

如果你能ssh做到,那就完蛋了。一个简单的检查方法nc是:( nc -zv 111.222.333.444 22 将 111.222.333.444 替换为您的实例的 IP 地址)

于 2013-04-12T08:31:57.670 回答