個々のTCPフローごとにグループ化されたWebトラフィックのキャプチャ

個々のTCPフローごとにグループ化されたWebトラフィックのキャプチャ

私が知る限り、HTTPリクエストとレスポンスはTCP接続を確立します。 GUIのない​​サーバーでWebアプリケーションをデバッグするために、これらのTCPフローを識別可能な単一のエンティティ(同じ色、ファイル、データベースレコードなど)としてキャプチャできるようにしたいと思います。

tcpdumpIPパケットは、ソートや再組み立てなしで到着または出発時にのみ保存できます。tcpflowさらに一歩進んで、TCP接続を別々のファイルに再組み立てますが、送受信ストリームを別々のファイルに入れると、クイックデバッグが迷惑になります。関連ファイルをマージするために1行のスクリプトまたはコードを書くことができると確信していますが、tcpflowこのタスクのラッパーが導入される可能性があると思いますtcpflow。また、怠惰でクリーンなソリューションを探しています。

どんな提案でも大変感謝します。

ベストアンサー1

pcapファイルをデスクトップにコピー(またはストリーミング)し、パケット分析にWireshark GUIを使用できます。 GUIに加えて、tsharkコマンド(Wiresharkに含まれています)があります。ストリーム番号が与えられたら、次を使用して要求と応答を単一の出力に結合できます。

$ tshark -q -r http.pcapng -z follow,tcp,ascii,1

===================================================================
Follow: tcp,ascii
Filter: tcp.stream eq 1
Node 0: 10.44.1.8:47833
Node 1: 178.21.112.251:80
77
GET / HTTP/1.1
User-Agent: curl/7.37.0
Host: lekensteyn.nl
Accept: */*


        356
HTTP/1.1 302 Moved Temporarily
Server: nginx/1.4.7
Date: Sun, 29 Jun 2014 10:24:34 GMT
Content-Type: text/html
Content-Length: 160
Connection: keep-alive
Location: https://lekensteyn.nl/

<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>nginx/1.4.7</center>
</body>
</html>

===================================================================

tshark詳しくはマニュアルページをご覧ください。デフォルトでは、-q通常のパケット表示を抑制し、-r http.pcapngキャプチャファイルを選択します-z follow,...TCPストリームに従ってくださいグラフィカルユーザーインターフェースから。残念ながら、各ストリームに対してこのコマンドを繰り返す必要がありますが、これは理想的ではありません。

Wireshark GUI への接続をストリーミングするには、次のコマンドを使用できます。

ssh you@server 'tcpdump -w - "tcp port 80"' | wireshark -i - -k

これがまだ必要でない場合は、プロキシを設定し、そのプロキシを介してすべてを記録することを検討できます。

おすすめ記事