一定期間(過去または将来)にネットワークアクティビティを持つすべてのLinuxプロセスを一覧表示するには?

一定期間(過去または将来)にネットワークアクティビティを持つすべてのLinuxプロセスを一覧表示するには?

どのプロセスがネットワークを使用しているかを知りたいです。

  1. ネットワークを使用しているシステムに未知の(そして潜在的に悪意のある)プログラムがあることを確認してください。
  2. プロセス固有のネットワークトラフィックを理解し、プロトコルHTTP、TCP、UDP、ICMP、および着信/発信トラフィックごとに細分化します。

答え1

topCPU使用量と同様に、ネットワークiftop使用量も同様です。

答え2

ご質問いただいた内容が少し広範囲であり、一般的な用語で説明します。つまり、時間の経過とともにプロセスとプロトコルによって分類されたネットワーク使用量を理解しようとします。

家庭用にはntopを使ってみてください。おそらく必要なものよりも多くのことを行い、何よりも履歴グラフを表示します。

http://www.ntop.org/products/traffic-analytic/ntop/

現在の作業に適したツールがあります。何が起こっているのかに関する一般的なアイデアを得るために、nethogsはネットワークのアプリケーション使用量をよく分析します。

http://nethogs.sourceforge.net

「NetHogsは小さな「ネットワーク上位」ツールです。ほとんどのツールと同様に、プロトコルやサブネットごとにトラフィックを分割するのではなく、プロセスごとに帯域幅をグループ化します。」

また、dtrace4linuxとsysdigを使用することもできます。これは、サーバーの使用のほぼすべての側面の統計で本当に驚くべきことをすることができます。 Brendan Greggには、「System Performance:Enterprise and Cloud」というdtraceに関する非常に興味深い本があります。

トラフィック使用量のグローバル統計を表示するには、ifconfigをサンプリングするか、procからrx / txによって送信されたバイトをサンプリングできます。複数のサーバーを管理する場合は、NMSとSNMPを使用するのが最善です。

サーバーネットワークを管理している場合は、ルータでiptablesアカウントを実行するか、ファイアウォールまたはルータでNetflowを設定し、データを受信して​​データベースに保存する必要があります。 nfSen は、このような状況を視覚化するのに特に便利です。

IDSはセキュリティ関連の攻撃にとって非常に興味深い技術です。 Snortはボックスで実行できますが、通常はトラフィックを受信できるボックスで実行されます。

答え3

netstat -pアクティブな接続を持つプロセスのリストを取得するために使用できます。

関連情報