我想查看 Amazon EC2 实例是否打开,但默认情况下 Amazon EC2 会阻止 ping 请求。有一种方法可以通过更改实例的安全策略来做到这一点。除此之外,最接近“查看服务器是否响应”并且轻量级的替代方案是什么?
是curl
一个不错的选择吗?
我想查看 Amazon EC2 实例是否打开,但默认情况下 Amazon EC2 会阻止 ping 请求。有一种方法可以通过更改实例的安全策略来做到这一点。除此之外,最接近“查看服务器是否响应”并且轻量级的替代方案是什么?
是curl
一个不错的选择吗?
我想curl
这正是你想要的。像所有表现良好的 unix 程序一样,如果出现任何问题,它会返回错误代码:
[cnicutar@ariel ~]$ curl www.no-such-website.com
[cnicutar@ariel ~]$ echo $?
6
此外,您可能希望使用--connect-timeout
它来确保它不会永远等待。
如果服务器已启动且 Web 服务器守护程序已关闭,CURL 将无法快速检查。一种替代方法是使用诸如hping3
. 如果您获得 RST,则服务器已启动。
hping3 -c 1 -V -p 80 -s 5050 -A example.fqdn
您可以做的是首先尝试 CURL 测试,失败时尝试第二种方法来确认服务器已关闭,而不仅仅是 Web 服务器守护程序。
这种方法的问题在于,像这样的杂散 TCP 数据包可能会被中间代理过滤。
如果你能ssh
做到,那就完蛋了。一个简单的检查方法nc
是:(
nc -zv 111.222.333.444 22
将 111.222.333.444 替换为您的实例的 IP 地址)