パケットを実行中のバイナリに関連付ける方法はありますか?私は、従来のスニッフィング方法、さらにはdtrace
を受け入れるでしょう。
トラフィックが非常に多いシステムで特定の問題が発生します。 「すべての」パケットをスニッフィングしてフィルタリングすることは非常に厄介な問題になり、問題のあるアプリ以外のすべてからパケットの放出を排除することは、このシナリオでは不可能です。
最近、私はこの問題の本当に素晴らしい解決策に出くわし、共有したいと思いました。 DTrace Bookにあります: http://www.dtracebook.com
ここから例をプルダウンすることをお勧めします: http://www.dtracebook.com/images/dtbook_scripts.tar.gz
OSXを実行していません。スクリプトを~/bin
の下のdtbook
に抽出し、次のように適切なスクリプトを実行しました。
Sudo ~/bin/dtbook/Chap6/soconnect_mac.d
これにより、すべてのプロセスとその接続が提供されます。私は通常、それをgrep
にパイプして、今具体的にアプリを検索します。
そのシステムで実行しているOSについては言及していませんが、Windowsを実行している場合は、Microsoft Network Monitorを使用できます。MicrosoftNetworkMonitorは、各「会話」のプロセスIDを表示するため、分析に集中できます。プロセスIDごとのトラフィックの「フィルタリング」は、左側のペインでプロセスを選択し、右側のペインでそのトラフィックを表示するのと同じくらい簡単です。
これが必要なものかどうかはわかりませんが、netstatはプロセスIDをネットワークポートに関連付けるのに役立ちます。次に、wiresharkでは、そのポート番号でフィルタリングして、特定のプロセスIDのパケットのみをスニッフィングできます。
Windowsには、メーリングリストで説明されているように、これを行う実験的なビルドがあります。 http://www.wireshark.org/lists/wireshark-dev/201212/msg00069.html