hpingでポートを指定しての疎通確認
hpingを使用すれば、対象のホストのポートを指定してpingを飛ばすことができる。
対象のホストで指定したポートが開いていて、そのポートでサービスが稼動しているか?などの確認を行うことができる非常に便利なツール。
以下は、Ubuntuで実行する場合。先ずはインストールを行う。
# aptitude install hping3
試しに、localhostの80番に対して実行してみる。
# hping3 -c 4 -S -p 80 localhost HPING localhost (lo 127.0.0.1): S set, 40 headers + 0 data bytes len=44 ip=127.0.0.1 ttl=64 DF id=0 sport=80 flags=SA seq=0 win=32792 rtt=0.2 ms len=44 ip=127.0.0.1 ttl=64 DF id=0 sport=80 flags=SA seq=1 win=32792 rtt=0.2 ms len=44 ip=127.0.0.1 ttl=64 DF id=0 sport=80 flags=SA seq=2 win=32792 rtt=0.2 ms len=44 ip=127.0.0.1 ttl=64 DF id=0 sport=80 flags=SA seq=3 win=32792 rtt=0.1 ms --- localhost hping statistic --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.1/0.2/0.2 ms
flagsがSA なら、ポートはオープンしていて正常に疎通が取れたことを表す。
指定したオプションの意味は、-cで回数を指定、-Sでsynパケット、-pでポートの指定。
指定したポートでサービスが稼動していない場合には以下のように flagsがRA となって返って来る。
とりあえず、上記との違いを比較する為に、Apacheのサービスを停止してみて、再び80番に対してhpingしてみる。
# /etc/init.d/apache2 stop * Stopping web server apache2 [ OK ] # hping3 -c 4 -S -p 80 localhost HPING localhost (lo 127.0.0.1): S set, 40 headers + 0 data bytes len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=80 flags=RA seq=0 win=0 rtt=0.2 ms len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=80 flags=RA seq=1 win=0 rtt=0.1 ms len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=80 flags=RA seq=2 win=0 rtt=0.1 ms len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=80 flags=RA seq=3 win=0 rtt=0.1 ms --- localhost hping statistic --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.1/0.1/0.2 ms
あとはそもそもポートが開いてないと以下のような結果になる。
# hping3 -c 4 -S -p 23 chibi.name HPING chibi.name (eth2 122.21.243.156): S set, 40 headers + 0 data bytes --- chibi.name hping statistic --- 4 packets transmitted, 0 packets received, 100% packet loss round-trip min/avg/max = 0.0/0.0/0.0 ms
※上記のchibi.nameは自分の管理しているサイト
あと、単純にpingとして実行したい場合は以下のようにする(-1のオプションを付ける)。
# hping3 -1 -c 4 localhost HPING localhost (lo 127.0.0.1): icmp mode set, 28 headers + 0 data bytes len=28 ip=127.0.0.1 ttl=64 id=10775 icmp_seq=0 rtt=0.5 ms len=28 ip=127.0.0.1 ttl=64 id=10776 icmp_seq=1 rtt=0.1 ms len=28 ip=127.0.0.1 ttl=64 id=10777 icmp_seq=2 rtt=0.3 ms len=28 ip=127.0.0.1 ttl=64 id=10778 icmp_seq=3 rtt=0.1 ms --- localhost hping statistic --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.1/0.3/0.5 ms