ネットワークの使用状況をリアルタイムで確認したいとき、Linuxでは「iftop」コマンドが非常に便利です。
特定のプロセスやIPアドレスが大量の帯域を使用している場合、早期に把握できることでトラブルの未然防止につながります。
本記事では、Linuxで使えるリアルタイムネットワーク監視ツール「iftop」のインストール方法から、基本的な使い方、画面の読み方、実用的なオプションまで、初心者にもわかりやすく丁寧に解説していきます。
「iftop」は、ネットワークインターフェースを通じてどのIPアドレスがどれだけ帯域を使っているかをリアルタイムで表示してくれるCUI(キャラクタユーザーインターフェース)ツールです。
プロセスベースではなく、IPアドレスやポート単位で通信量を表示するため、外部との通信の監視や、異常なトラフィックの検出に適しています。
たとえば「ある時間帯にサーバーが遅くなる」などの問題がある場合、iftopで誰がどれだけ帯域を使っているかをリアルタイムで確認することで、原因の特定に役立ちます。
iftopは多くのLinuxディストリビューションでパッケージとして提供されています。以下は代表的なインストール方法です。
sudo apt update
sudo apt install iftop
sudo yum install epel-release
sudo yum install iftop
※EPELリポジトリが必要な場合があります。
sudo dnf install epel-release
sudo dnf install iftop
インストールが完了したら、iftop
コマンドが使えるようになります。
iftopを実行するには、ルート権限またはsudo権限が必要です。
これは、ネットワークインターフェースへのアクセスが必要だからです。
sudo iftop
上記のコマンドを実行すると、デフォルトのネットワークインターフェース(たとえばeth0)に対して、通信状況がリアルタイムに表示されます。
iftopの画面は、以下のような構成になっています。
=>
は送信方向、<=
は受信方向を示します。IPアドレスのペアごとに上下で表示され、どの方向にどれだけの通信が発生しているかが一目でわかります。
デフォルトではバイト数(KB/s, MB/s)で表示されます。オプションでパケット数表示も可能です。
iftopは起動時や起動後にさまざまな操作が可能です。
オプション | 説明 |
---|---|
-i インターフェース名 | 監視対象のNICを指定(例:-i eth0 ) |
-n | IPアドレスを名前解決しない(高速化) |
-N | ポート番号も名前解決しない |
-P | ポート番号も表示する |
-B | 単位をバイトにする(デフォルトはビット) |
例:
sudo iftop -i eth0 -nNPB
これは、eth0を監視し、名前解決をせず、ポート番号を表示し、バイト単位で表示する設定です。
キー | 機能 |
---|---|
t | 表示項目の切り替え(送信/受信/合計) |
s | 送信元でソート |
d | 送信先でソート |
T | トータルバイトでソート |
l | ポート表示のオンオフ |
n | 名前解決のオンオフ |
q | 終了 |
たとえば、サーバーの応答が遅くなったときに以下のように実行します。
sudo iftop -i eth0 -nP
画面上で明らかに大量のデータを送受信しているIPがあれば、その通信を絞って確認・対策が可能です。
また、異常なポート番号で通信が行われていれば、不正アクセスの検知にもつながります。
tcpdump
やwireshark
が必要です。screen
やtmux
でログを取りつつ使うと良いでしょう。nethogs
を使うのがおすすめです。iftopは、Linuxでネットワーク帯域をリアルタイムに監視するための非常に強力なツールです。
特に、サーバーの通信が重くなったときや、異常なネットワーク使用が疑われるときに、瞬時に状況を把握するのに役立ちます。
ログ機能やプロセス表示はないものの、軽量で直感的な表示ができるため、多くのシステム管理者にとっては定番のツールです。
ぜひ、iftopを導入して、ネットワークの安定運用に役立ててください。