2012-03-22 8 views
2

特定のホストへの接続プールライブラリによって作成された接続数を確認します。私はwiresharkを使って確立された接続の数を取得する方法からtcpdumpを取得しました。私はtcptraceツールを使用してそれを得ることができますが、私はwiresharkを使用してそれを行う方法を知りたいと思います。wiresharkを使用してtcpdumpから特定のホストへの接続数(カウント)を取得する方法

+0

なぜWiresharkですか? [Bro](http://www.bro-ids.org)は接続指向のトレース分析に適しています。必要な情報は、デフォルトの接続ログからすぐに利用できます。 – mavam

答えて

2

どのくらいの数のコンカレントが少し難しいかもしれませんが、パケットキャプチャの過程でどれだけ多くの時間がかかりますか?tcpdumpで作業しているので、私はそれを仮定しますあなたは探している。

、このようなフィルタを適用するソースIPが192.168.1.1だったと宛先ホストが192.168.1.2の場合:

ip.src_host == 192.168.1.1 & & ip.dst_host == DESTADDRESS & & TCPを.flags.syn == 1

あなたの質問の宛先ホストがソースホストへの接続も確立している可能性がある場合、ソースホストはSYN、ACKを返信してこれらの接続を受け付けるのでそれらをフィルタリングするには、末尾に追加してください:

そのフィルタが適用された場合

& & tcp.flags.ack == 0

は、唯一の新しい接続が表示され、その後、あなたは、Wiresharkの下部ダウンステータスバーに見ることができます。これは、合計パケット数と、表示されているパケット数を表示します。表示されるパケットの数は、キャプチャ中に確立された接続の数になります。

同時接続を探している場合は、Wiresharkが最適な方法ではない可能性があります。その場合、対応するFINまたはRSTより前に発生する接続数(SYN)の数を探します接続の数)、これは統計的な機能のほうです。

また、キャプチャのソースがソースホスト上にある場合、そのキャプチャ内のSYN /接続が受け入れられ/成功したことが保証されていないことにも注意してください。また、接続ごとにSYN、SYN-ACK、ACKの3方向ハンドシェークが実行されたことを確認する必要があります。

+0

ありがとう@ D.J. – Rabi

0

はこれを試してみてください - それは100%ではないかもしれません - それだけでそれらのいくつかのデータとの接続を見るように - といくつかの理想主義的なものを想定している - しかし、ほとんどの場合のために十分にその良い:

tcpdump -tt -n -r __file__ \ 
    | grep '\.10011' \ 
    | sed -e 's/^.*IP [^>]\+\.\([^ ]\+\) > 10.0.10.1.13000:.*$/\1:&/g' \ 
     -e 's/^.*IP 10.0.10.1.13000 > [^:]\+\.\([^ ]\+\): .*$/\1:&/g' \ 
    | sed -e 's/ IP .* > .*: Flags \[[^]]*S[^]]*\].*/:open/g' \ 
     -e 's/ IP .* > .*: Flags \[[^]]*[RF][^]]*\].*/:close/g' \ 
    | grep -v 'length 0' \ 
    | sed 's/ IP .* > .*: Flags .*/:isopen/g' \ 
    | gawk -F: 'BEGIN{ cons["x"]=1; }{ 
     if ($3 == "open" || $3 == "isopen") { cons[$1] = 1; } 
     if ($3 == "close") { delete cons[$1]; }; 
     printf("%s %s %s\n", strftime("%Y%m%dT%H%M%S",int($2)), $2, (length(cons) - 1)); }' \ 
    | uniq -f 2 

は、コメントに感謝します、修正または訂正。注 - これは特定のポートとIP(10.0.10.1.13000)をチェックします - ポートとIPで動作するように少し調整することができます

関連する問題