web-dev-qa-db-ja.com

ネットワークを使用しているプロセスを知るにはどうすればよいですか?

Gnomeシステムモニターでネットワークの使用率が高いことが時々あります。データをダウンロード/アップロードしているプロセスは何ですか。私を示すことができるツールはありますか?

  1. どのプロセスがインターネットを使用しているか
  2. これらのプロセスのダウンロード/アップロード速度の動的リアルタイムビュー
  3. 接続の詳細(リモートIP、ポート番号など)

私のシステムはUbuntu 10.10です。

私はlsofを試しましたが、出力はとてもフレンドリーではないようです。多分それを使用するいくつかのトリックがありますか?または、より良い代替案がありますか?

8
Forrest

netstat --inet -apは、インターネットを使用しているプロセスと、各プロセスが使用しているホスト/ポートを示します。ホスト名ではなくIPアドレスが必要な場合は、-nを使用します。 (--inetはインターネットソケットのみを示し、-aはリスニングソケットと接続ソケットの両方を示し、-pはプロセス名/ ID情報を示します)。 Sudoを付けて実行すると、すべてのプロセスに関する情報が得られます。

nethogs は、各プロセスが使用している帯域幅を示しますが、各プロセスが接続しているホストはわかりません。

ntop は少し重いですが、一般的なネットワークトラフィックの概要を示します。

(netstatはデフォルトでインストールされ、nethogsとntopはUbuntuのリポジトリで利用できます)

私が知る限り、1、2、3を組み合わせた単一のユーティリティはありません。

12
Miles Strombach

Nethogs は、最初の2つの要求を処理できます。 Iftop は3番目を処理できます。 iftopでpを押してポート番号を表示する必要がある場合があります。

NetHogsは小さな「ネットトップ」ツールです。ほとんどのツールのように、プロトコルごとまたはサブネットごとにトラフィックを分割する代わりに、プロセスごとに帯域幅をグループ化します。 NetHogsは、特別なカーネルモジュールのロードに依存しません。突然大量のネットワークトラフィックが発生した場合は、NetHogsを起動して、どのPIDがこれを引き起こしているかをすぐに確認できます。これにより、乱暴になり、突然帯域幅を占有しているプログラムを簡単に特定できます。

iftopはネットワーク使用状況に対して、top(1)がCPU使用状況に対して実行します。名前付きインターフェイスでネットワークトラフィックをリッスンし、ホストのペアごとの現在の帯域幅使用状況の表を表示します。

7
sciurus

Lsofにはlsof -iを使用します。

ルートとしてnetstat -punta runを使用して各プロセスのアクティブな接続をクエリし、プロセス名を表示することも、PIDのみを表示しないこともできます。動的なリアルタイムビューを取得するには、 watch -> watch -n1 netstat -punta(iftopも同様)を使用して簡単に操作できます。

代替案については、 ntop + iftop を使用できます。

5
Shinnok

iftopは、プロセスのtopと同等であり、すべてを表示します。pを押すと、ポートの表示に切り替えることができます。

1
myopenid

netstat -p を確認してください。ただし、lsofよりも出力がわかりやすいかどうかはわかりません。また、2番目の要件を満たしません。

0
Brian L