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

公開: 2022-01-29
Linuxシステムでの定型化されたターミナルプロンプト。
Fatmawati Achmad Zaenuri / Shutterstock

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

bmonのしくみ

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

車のスピードメーターと同じように、時々グラフを見ることができます。 同様に、車両の何かを調査する必要がある場合、整備士がそれを診断システムに接続して、読み取り値を確認する場合があります。 bmonには、同様の詳細な読み取り値があります。

ただし、言わなければなりませんbmonコマンドの統計は最初は困惑する可能性があります。 たとえば、「Ip6 Reasm / Frag」と呼ばれるものが3つあります。 どうしたの?

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

広告

私たちはあなたのために仕事をしました、そしてこれらのいくつかの底に到達するためにソースコードさえチェックしました。 ありがたいことに、 bmonに関する他のすべてはかなり単純です。

bmonのインストール

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

 sudo apt-get install bmon 

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

 sudo dnf install bmon 

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

 sudo pacman -Sy bmon 

bmonディスプレイ

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

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

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

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

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

広告

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

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

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

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

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

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

bmonの「クイックリファレンス」画面。

広告

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

詳細な統計

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

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

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

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

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

広告

他のすべての統計は、列から列へとホッピングしながらアルファベット順にリストされています。 それらのいくつかは同じ名前を共有しています。 それらすべての意味を以下に説明します。 略称も綴っています。 IPv6が言及されていない場合、その統計はIPv4を参照します。

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

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

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

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

追加情報

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

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

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

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

ただし、ASCIIでのレンダリングには制限があるため、実際には超高精度であるとは期待できません。 ただし、時折一目見れば、接続が最大になっているのか、不思議なことにトラフィックがないのか、あるいはその中間にあるのかがわかります。

一方、詳細な統計は、詳細で詳細なものです。 ラベル付けのややカジュアルなアプローチと相まって、解読がさらに困難になります。

うまくいけば、上記の説明がbmonをもう少し親しみやすくするでしょう。 これは、ネットワークトラフィックの状態と帯域幅の消費を監視できる、便利で軽量なツールです。

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