我想查看ec2實例是否打開,但默認情況下,Amazon ec2會阻止ping請求。有一種方法可以通過更改實例的安全策略來實現。除此之外,什麼是「看看服務器是否響應」並且重量輕的最接近的替代方案。替代ping
是curl
是不錯的選擇?
我想查看ec2實例是否打開,但默認情況下,Amazon ec2會阻止ping請求。有一種方法可以通過更改實例的安全策略來實現。除此之外,什麼是「看看服務器是否響應」並且重量輕的最接近的替代方案。替代ping
是curl
是不錯的選擇?
我認爲curl
正是你想要的。像所有的乖巧UNIX程序,它如果出現任何錯誤返回錯誤代碼:
[[email protected] ~]$ curl www.no-such-website.com
[[email protected] ~]$ echo $?
6
你也可能需要使用--connect-timeout
,以確保它不會永遠等待。
如果服務器啓動並且Web服務器守護程序關閉,CURL將不能用作快速檢查。一種替代方法是使用hping3
等工具發送TCP ACK。如果您獲得RST,則服務器已啓動。
hping3 -c 1 -V -p 80 -s 5050 -A example.fqdn
你可以做的是儘量捲曲測試第一,失敗嘗試第二種方法,以確認該服務器已關閉並不僅僅是Web服務器守護程序。
這種方法的問題是像這樣的一個流氓TCP數據包可能被中間代理過濾。
如果你可以SSH的話,那麼它已經到了。用nc檢查這個的簡單方法是: nc -zv 111.222.333.444 22 (用您的實例的ip地址替換111.222.333.444)
謝謝,netcat和ping有什麼區別?另外,上述命令在當前格式下不起作用。 – David542 2013-04-12 18:19:26
該命令正常工作,我在發佈之前對其進行了測試。你會得到什麼錯誤? – 2013-04-13 03:07:43
謝謝,我會用它。出於好奇,「6」是什麼意思作爲錯誤代碼? – David542 2013-04-11 22:00:27
@ David542它是'捲曲'特有的。每個程序都會選擇要返回的內容,而且幾乎沒有標準化。如果你真的感興趣,你可以找一個名爲'sysexits.h'的頭文件。但手冊頁確實解釋了退出代碼。 'curl'手冊頁中的 – cnicutar 2013-04-11 22:01:21
:'6無法解析主機。給定的遠程主機沒有解決.' – dschulz 2013-04-11 22:21:20