技術ノート Linux bmon を使用して Linux 上のネットワーク帯域幅を監視する方法

bmon を使用して Linux 上のネットワーク帯域幅を監視する方法

bmon を使用して Linux 上のネットワーク帯域幅を監視する方法

bmon Linux アプリケーションを使用すると、ネットワーク接続の帯域幅の使用状況を確認できます。ただし、詳細を理解するにはある程度の探偵作業が必要です。そのため、私たちがそれを行いました。

bmon の仕組み

bmon を使用して Linux 上のネットワーク帯域幅を監視する方法

さまざまなネットワーク インターフェイス上のアクティビティを示す動的なグラフとリアルタイムの統計により、ネットワークのパフォーマンスと帯域幅の消費量を把握できます。これはまさに bmon ターミナル ウィンドウで提供する ものです。

車の速度計と同じように、グラフを時々見ることができます。同様に、車両の何かを調査する必要がある場合、整備士は車両を診断システムに接続し、測定値をチェックすることがあります。 bmon にも同様の詳細な読み出しがあります。

ただし、 bmon コマンドの統計は最初は不可解かもしれません。例えば「Ip6 Reasm/Frag」というものが3つあります。どうしたの?

それでも、一度コードを解読すると、ネットワーク トラフィックをより詳細に理解したい場合には、コマンドの読み取り値が非常に貴重になります。

私たちはあなたのために努力し、これらのいくつかの原因を解明するためにソース コードもチェックしました。ありがたいことに、 bmon に関するその他のことはすべてかなり単純です。

bmon を使用して Linux 上のネットワーク帯域幅を監視する方法

bmonのインストール

Ubuntu に bmon をインストールするには、次のコマンドを使用します。

 sudo apt-get install bmon

Fedora にインストールするには、次のように入力します。

 sudo dnf インストール bmon

Manjaro の場合、コマンドは次のとおりです。

 sudo pacman -Sy bmon 

bmon を使用して Linux 上のネットワーク帯域幅を監視する方法

bmon ディスプレイ

bmon と入力し、Enter キーを押してプログラムを開始します。 bmon 表示はいくつかのペインに分割されています。上位 3 つは「インターフェイス」、「RX」、「TX」というラベルが付いています。中央のペインには、詳細な統計とグラフが表示されます。

「インターフェイス」ペインには、コンピュータに装備されているネットワーク インターフェイスが表示されます。また、各ネットワーク インターフェイスが使用しているキューイング規律 (qdisc) も表示されます (これらについては後で詳しく説明します)。

「RX」ペインには、各インターフェイスとそのキューの 1 秒あたりの受信ビット数と 1 秒あたりのパケット数が表示されます。 「TX」ペインには、各インターフェイスとそのキューの 1 秒あたりの送信ビット数と 1 秒あたりのパケット数が表示されます。

私たちのコンピュータには、 ループバック インターフェイス (ループバック アダプタとも呼ばれます) と有線イーサネット アダプタの 2 つのインターフェイスだけがインストールされています。ループバック インターフェイスは「lo」、イーサネット インターフェイスは「enp0s3」と呼ばれます。

ご使用のマシン上のイーサネット アダプターの名前は異なる場合があります。ラップトップを使用している場合は、ワイヤレス アダプターも表示され、その名前はおそらく「wl」で始まります。

bmon 、現在選択されているネットワーク インターフェイスに関する情報を表示します。選択したインターフェイスは、横に大なり記号 ( > ) が強調表示されているインターフェイスです。上矢印と下矢印を押して不等号を移動し、監視するインターフェイスを選択できます。イーサネットアダプターを選択しました。

アクティブなネットワーク インターフェイスを使用しているので、グラフと表示に何らかのアクティビティが表示されます。グラフが表示されない場合は、ターミナル ウィンドウを下に伸ばします。

左矢印キーと右矢印キーを押して、グラフ化される統計を変更します。一部のグラフでは、データを入力する前に H を押す必要があります。これを必要とする人はそう言うでしょう。

ネットワーク インターフェイスの統計情報を確認するには、統計情報が表示できる高さになるまでターミナル ウィンドウを引き伸ばし、D キーを押して統計情報を表示します。 I (情報) を押すと、少量の追加情報が表示されます。

ターミナル ウィンドウを最大化すると、複数のグラフが表示されます。 [未満] (<) および [より大きい] (>) を押して、グラフのペアを追加または削除します。 G を押すと、グラフの表示のオンとオフが完全に切り替わります。

疑問符 (?) を押すと、一般的なキーストロークを含む「クイック リファレンス」ヘルプ画面が表示されます。

もう一度疑問符 (?) を押すと、「クイック リファレンス」画面が閉じます。

bmon を使用して Linux 上のネットワーク帯域幅を監視する方法

詳細な統計

ターミナル ウィンドウの高さと幅が十分な場合 (そうでない場合は伸ばしてください)、「D」を押して詳細ビューのオンとオフを切り替えることができます。

表示される列の数は、端末ウィンドウの幅によって異なります。標準の 80 列のターミナル ウィンドウには、2 つの列が表示されます。ウィンドウが広いほど、表示される列の数が増えます。ただし、ウィンドウを広くしても、より多くの統計情報は得られません。同じ一連の図が表示されます。ただし、列は短くなります。

各列の一番上のエントリを見ると、左側のエントリは情報をバイト単位で示し、右側のエントリは情報をパケット単位で示していると思われるかもしれません。しかし、そうではありません。

各列には一連の統計が保持されます。値の名前、受信 ( RX ) 値と送信 ( TX ) 値が統計ごとに表示されます。値がハイフン ( - ) として表示される場合は、その方向の統計が記録されていないことを意味します。

一部の統計は内部 (受信) または外部 (送信) のみです。たとえば、送信済み列のハイフン ( - ) は、統計が送信パケットに対して無効であり、受信パケットにのみ適用されることを示します。上の行は、受信および送信されたトラフィックをバイト単位 (左側) とパケット単位 (右側) で示しています。

他のすべての統計は、列から列へと移動しながらアルファベット順にリストされます。そのうちのいくつかは同じ名前を共有しています。それらが何を意味するのかについては、以下で説明します。略称も記載しました。 IPv6 が言及されていない場合、その統計は IPv4 を指します。

左側の列の統計は次のとおりです。

  • バイト: バイト単位のトラフィック。
  • 中止エラー: 中止エラーの数。送信元と宛先の間の接続パスのどこかで、ソフトウェアによって接続が中止されました。
  • 衝突: 衝突エラーの数。 2 つ以上のデバイスが同時にパケットを送信しようとしました。これは 全二重ネットワーク では問題になりません。
  • CRC エラー: 巡回冗長検査 エラーの数。
  • エラー: エラーの合計数。
  • フレームエラー: フレームエラーの数。フレームは パケットのネットワーク コンテナ です。エラーは、不正なフレームが検出されたことを意味します。
  • ICMPv6: インターネット制御メッセージ プロトコル v6 トラフィック パケットの数。
  • ICMPv6 エラー: ICMP v6 エラーの数。
  • Ip6 ブロードキャスト: ネットワーク上のすべてのデバイスに送信される IPv6 ブロードキャスト の数。
  • Ip6 CE パケット: CE は「 カスタマー エッジ 」の略です。通常、これはルーターに当てはまります。これらは、顧客が加入している接続サービスの プロバイダー エッジ (PE) に接続します。
  • Ip6 Delivers: 受信 IPv6 パケットの数。
  • Ip6 ECT(1) パケット: 明示的輻輳通知 (ECN) により、ネットワーク接続のどちらかの端がもう一方の端に差し迫った輻輳を警告できます。パケットには、警告として機能するフラグが付けられます。受信側は、輻輳とパケット損失の可能性を回避するために、送信レートを下げることができます。 ECN 対応トランスポート (ECT) パケットには、ECN 対応トランスポート経由で配信されていることを示すフラグが付けられます。これにより、中間ルーターがそれに応じて反応できるようになります。タイプ 1 ECN パケットは、受信側に ECN を有効にして発信送信に追加するように指示します。
  • Ip6 ヘッダー エラー: IPv6 ヘッダーにエラーがあるパケットの数。
  • Ip6 マルチキャスト パケット: IPv6 マルチキャスト (ブロードキャストの一種) パケットの数。
  • Ip6 非 ECT パケット: ECT(1) としてフラグが立てられていない IPv6 パケットの数。
  • Ip6 Reassembly/Fragment OK: サイズが原因で断片化され、受信時に正常に再組み立てされた IPv6 パケットの数。
  • Ip6 再構成タイムアウト: サイズが原因で断片化されたが、タイムアウトのために受信時に再構成できなかった IPv6 パケットの数。
  • Ip6 切り捨てられたパケット: 切り捨てられたパケットの数。 IPv6 パケットが送信されるとき、切り捨ての候補としてフラグを付けることができます。パケットが 最大伝送単位 (MTU) を超えているために中間ルーターがパケットを処理できない場合、ルーターはパケットを切り捨て、パケットにそのようにマークを付けて、宛先に転送します。受信すると、遠端は ICMP パケットを送信元に送り返し、パケットを短くするために MTU 推定値を更新するように指示します。
  • Ip6 Discards: 破棄された IPv6 パケットの数。送信元と宛先の間のデバイスが正しく設定されておらず、その IPv6 設定が機能しない場合、それらのデバイスは IPv6 トラフィックを処理できません。それは破棄されます。
  • Ip6 パケット: すべてのタイプの IPv6 パケットの合計数。
  • 欠落エラー: 送信で欠落したパケットの数。パケットには番号が付けられているため、元のメッセージを再作成できます。どれかが欠けていると、その欠如が目立ちます。
  • ハンドラーなし: プロトコル ハンドラーが見つからなかったパケットの数。
  • ウィンドウ エラー: ウィンドウ エラーの数。パケットのウィンドウは、ヘッダーのオクテット数です。これが異常な数値を保持している場合、ヘッダーを解釈できません。

右側の列の統計は次のとおりです。

  • パケット: パケット内のトラフィック。
  • キャリアエラー: キャリアエラーの数。これらは、信号の変調に問題が発生した場合に発生します。これは、ネットワーク機器間の デュプレックスの不一致、 またはケーブル、ソケット、またはコネクタの物理的な損傷を示している可能性があります。
  • Compressed: 圧縮されたパケットの数。
  • ドロップ: ドロップされたパケットの数。その結果、(おそらく輻輳が原因で) 宛先に到達できませんでした。
  • FIFO エラー: 先入れ先出し (FIFO) バッファー エラーの数。ネットワーク インターフェイスの送信バッファが十分な速度で空にされないため、オーバーランしています。
  • ハートビート エラー: ハードウェアまたはソフトウェアは、正常に動作していることを示したり、同期を許可したりするために、定期的な信号を利用する場合があります。ここでの数字は、失われた「ハートビート」の数です。
  • ICMPv6 チェックサム エラー: インターネット制御メッセージ プロトコル v6 メッセージ チェックサム エラーの数。
  • Ip6 アドレス エラー: 不正な IPv6 アドレスによるエラーの数
  • Ip6 ブロードキャスト パケット: IPv6 ブロードキャスト パケットの数。
  • Ip6 チェックサム エラー: IPv6 チェックサム エラーの数。 IPv6 の ICMP および ユーザー データグラム プロトコル (UDP) パケットはチェックサムを使用しますが、通常の IPv6 IP パケットはチェックサムを使用しません。
  • Ip6 ECT(0) パケット: これらは ECT(1) パケットと同じように扱われます。
  • Ip6 Forwarded: ユニキャスト転送 で配信された IPv6 パケットの数。ユニキャストは、中継ルーターとフォワーダーのチェーンを介して送信元から宛先までパケットをホップします。
  • Ip6 マルチキャスト: マルチキャスト転送が 配信された IPv6 パケットの数。マルチキャストは、パケットを宛先のグループに同時に送信します (これが Wi-Fi の仕組みです)。
  • Ip6 ルートなし: ルートなしエラーの数。これは、遠端へのルートを計算できないため、目的地に到達できないことを意味します
  • Ip6 再構成/フラグメントの失敗: サイズが原因でフラグメント化され、受信時に再構成できなかった IPv6 パケットの数。
  • Ip6 再構成/フラグメント要求: サイズが原因でフラグメント化され、受信時に再構成する必要があった IPv6 パケットの数。
  • Ip6 Too Big Errors: 受信した ICMP 「大きすぎる」メッセージの数。これは、最大送信単位より大きい IPv6 パケットが送信されたことを示します。
  • Ip6 不明なプロトコル エラー: 不明なプロトコルを使用して受信したパケットの数。
  • Ip6 オクテット: 送受信されるオクテットの量。 IPv6 のヘッダーは 40 オクテット (320 ビット、オクテットあたり 8 ビット)、最小パケット サイズは 1,280 オクテット (10,240 ビット) です。
  • 長さエラー: ヘッダー内の長さの値が、可能な最小パケット長よりも短い、到着したパケットの数。
  • マルチキャスト: マルチキャスト ブロードキャストの数。
  • オーバーエラー: オーバーエラーの数。受信バッファがオーバーフローしたか、サポートされている値よりも大きいフレーム値を持つパケットが到着したため、受信できません。
bmon を使用して Linux 上のネットワーク帯域幅を監視する方法

追加情報

I (「情報」など) を押すと、追加情報ペインが切り替わります。追加情報が表示されない場合は、ウィンドウが十分に大きくありません。 D を押して詳細な統計をオフにするか、G を押してグラフをオフにするか、ウィンドウを拡大することができます。

追加情報は次のとおりです。

  • MTU: 最大伝送単位。
  • Operstate: ネットワーク インターフェイスの動作状態。
  • アドレス: ネットワーク インターフェイスの メディア アクセス コントロール (MAC) アドレス。
  • Mode: これは通常、 default に設定されますが、 tunnel beet 、または ro が表示される場合もあります。 最初の 3 つは IP セキュリティ (IPSec) に関連しています。通常、 default 設定は transport モード で、ペイロードが暗号化されます。通常、クライアントとサイト間の 仮想プライベート ネットワーク (VPN) ではこれが使用されます。サイト間 VPN は通常、パケット全体が暗号化される tunnel モード を使用します。バインドされたエンドツーエンド トンネル ( beet ) モードでは、固定の非表示 IP アドレスとその他の可視 IP アドレスを持つ 2 つのデバイス間にトンネルが作成されます。 ro モードは、モバイル IPv6 のルーティング最適化方式です。
  • ファミリ: 使用されているネットワーク プロトコル ファミリ。
  • Qdisc: キューイング規則。これは、 red ( ランダム早期検出 )、 codel ( 制御された遅延 )、または fq_codel ( 制御された遅延による公平なキューイング ) に設定できます。
  • フラグ: これらのインジケータは、ネットワーク接続の機能を示します。この接続では broadcast および multicast 送信を使用でき、インターフェイスは Up (動作可能で接続されている) です。
  • IfIndex: インターフェイス インデックスは、ネットワーク インターフェイスに関連付けられた一意の識別番号です。
  • ブロードキャスト: ブロードキャスト MAC アドレス。このアドレスに送信すると、受信したパケットがすべてのデバイスにブロードキャストされます。
  • TXQlen: 送信キューのサイズ(容量)。
  • エイリアス: IP エイリアスは、物理ネットワーク接続に 複数の IP アドレス を与えます。その後、1 つのネットワーク インターフェイス カードを介して さまざまなサブネット にアクセスできるようになります。テスト コンピューターではエイリアスが使用されていません。

bmon 、ある意味、魚でも家禽でもない、ちょっと面白い生き物です。グラフには原始的な魅力があり、何が起こっているかをよく示します。

ただし、 ASCII でレンダリングする際 の制限を考慮すると、実際には超正確であることは期待できません。ただし、時折見るだけで、接続が最大値に達しているのか、不思議なことにトラフィックがないのか、あるいはその中間にあるのかがわかります。

一方、詳細な統計は、まさに詳細かつ粒度の高いものです。ラベル付けのややカジュアルなアプローチと相まって、それらを解読するのはさらに困難になります。

上記の説明により、 bmon もう少し親しみやすくなることを願っています。これは、ネットワーク トラフィックの健全性と帯域幅の消費を監視できる、非常に便利な軽量ツールです。

Linuxコマンド

ファイル

tar pv cat tac chmod grep diff sed ar man pushd popd fsck testdisk seq fd pandoc cd $PATH awk join jq fold uniq journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · · mkdir · du · ln · パッチ · 変換 · rclone · シュレッド · srm · scp · gzip · chattr · カット · 検索 · umask · wc · tr

プロセス

エイリアス · スクリーン · トップ · ナイス · renice · 進行状況 · strace · systemd · tmux · chsh · 履歴 · at · バッチ · フリー · what · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · タイムアウト · ウォール · はい · キル · スリープ · sudo · su · タイム · groupadd · usermod · · lshw · シャットダウン · 再起動 · 停止 · パワーオフ · パスワード · lscpu · crontab · 日付 · bg · fg · pidof · nohup · pmap

ネットワーキング

netstat ping ip ss whois fail2ban bmon dig finger nmap ftp curl wget who whoami w iptables ssh-keygen ufw arping firewalld

関連: 開発者と愛好家のための最高の Linux ラップトップ

「bmon を使用して Linux 上のネットワーク帯域幅を監視する方法」に関するベスト動画選定!

【Linux入門】初心者向け!Linuxの基本的なコマンド操作を学ぼう!  〜 Ubuntu 環境で実演〜
【7分で解説】Linux入門|bash( .bashrcに環境変数を追加するのはなぜ? )