TechThrob.com

UbuntuやFedoraといったGUIプラットフォームには、ネットワークトラフィックを表示するアプリケーションが用意されていることが多い。ただしそれらアプリが出力するトラフィック情報は大雑把で、個別の情報は表示されないことがある。またGUIアプリでは、sshでログインした状態でネットワークトラフィックを調査するといった作業ができない。

How to Monitor Network Traffic in Linux - Techthrob.comにおいてLinuxやUnixなどでネットワークトラフィックのモニタリングを実施するための2つのツールが紹介されている。コマンドラインで動作するツールなので、ssh経由でログインして使うことができる。紹介されているツールと活用例は次のとおり。

iftop(8)

ネットワークトラフィック情報を表示するツール。IPとポート番号をベースに、それぞれの通信におけるトラフィック量を表示する。top(1)コマンドのようにターミナル全体に情報を表示し、定期的に更新する。トラフィック量は左から右へのバーとして表現される。もっとも簡単な使用例は次のとおり。-iでネットワークインタフェースを指定し、-Bでバイト単位での表示を指定している。ここではネットワークインタフェースが仮にeth0であるとして記載してある。

sudo iftop -i eth0 -B

画面に出力される内容は-fオプションでフィルタリングすることが可能。たとえば表示したい内容をssh接続(22番ポート)に限定するなら、次のような指定が可能。

sudo iftop -i eth0 -B -f "dst port 22"

フィルタリングで指定できる規則のサンプルは次のとおり。

dst host ホスト名
dst net ネットワーク
dst port ポート番号
dst portrange 開始ポート番号-終了ポート番号
src host ホスト名
src net ネットワーク
src port ポート番号
src portrange 開始ポート番号-終了ポート番号
gateway ゲートウェイ
ip proto プロトコル

iftop(8)実行例 sudo iftop -i eth0 -B

iftop(8)実行例 ssh接続に限定した場合

hまたは?でiftop(8)実行中にヘルプを表示させることが可能。トグルキーがいくつか用意されており、必要に応じて表示を切り替えることができる。iftop(8)はLinuxに限らずFreeBSDでも利用できる。

nethogs(8)

プロセスがどの程度の通信量を持っているのかを表示するツールがnethogs(8)。アプリケーションごとの通信量を把握したい場合に便利。使い方は次のようにインタフェース名を指定して実行するだけ。

sudo nethogs eth0

nethogs(8)実行例

ネットワークの接続状況やソケットの状況を表示するコマンドはベースシステムに用意されていることが多いが、トラフィックを表示するためのコマンドはベースシステムには入っていないことが多い。iftop(8)やnethogs(8)は手軽にトラフィック情報をモニタリングできるツールとして参考になる。またssh経由でログインしている場合でも利用できるため、遠隔でのネットワーク管理や監視にも利用できる。