もっと詳しく

ネットワーク管理に不可欠なツールは、LinuxのPingコマンドです。 あなたが使用した可能性があります ping 基本的なトラブルシューティングの前に—しかし、このコマンドは何をしますか?

The ping コマンド送信 インターネット制御メッセージプロトコル(ICMP) リモートホストまたはローカルホストに要求し、応答を待ちます。 応答がない場合は、接続またはホスト自体に問題があることを示している可能性があります。

Linuxでpingコマンドを使用する実際的な方法を読んで調べてください。

前提条件

このチュートリアルは、実践的なデモンストレーションになります。 フォローしたい場合は、インターネットに接続されたLinuxコンピューターがあることを確認してください。 このチュートリアルでは、Ubuntu20.04コンピューターを使用します。

また、Linuxコンピュータでターミナルセッションをすでに開いていることを確認してください。

ローカルネットワーク接続の確認

Webアプリケーションを開発していると想像してください。 ホストのループバックアドレス(127.0.0.1)を介してアプリケーションにアクセスしようとすると、テストは失敗します。 アプリケーションのトラブルシューティングを行う前に、TCP/IPプロトコルが内部で機能することを確認してください。 ping 指図。

デフォルトのループバックアドレスは、IPv4およびIPv6の場合、それぞれ127.0.0.1および0:0:0:0:0:0:0:1(または:: 1)です。

ループバックアドレスの接続を確認するには、以下を実行します ping コマンドの後に端末のループバックアドレスが続きます。 このコマンドは、 ping Linuxのコマンド。

また、ループバックが正常に機能する場合は、以下のスクリーンショットと同様の出力が表示されます。

または、pingを実行します localhost ホスト名はデフォルトでループバックアドレスに解決されるため、同じ結果が得られるはずです。

ループバックアドレス(localhost)にpingを実行します
ループバックアドレス(localhost)にpingを実行します

終了するには ping コマンド、を押します CTRL+C ターミナルで。 それ以外の場合、pingコマンドは継続的に実行されます。

注:pingコマンドを停止するためにCTRL+Zを押さないでください。 これを行うとコマンドは停止しますが、プロセスはバックグラウンドで実行されたままになります。

Linuxでのpingコマンドの終了
Linuxでのpingコマンドの終了

PingコマンドのLinux出力を理解する

先に進む前に、出力を「機能する」と解釈するだけでなく、出力を明示的に理解することをお勧めします。 下の画像と次の値の内訳を参照してください。

pingコマンド出力
pingコマンド出力
  • A(bytes)– ICMPエコー要求(パケット)のサイズをバイト単位で表示します。
  • B(from)–ターゲットホストのIPアドレスを表示します from どこ ping コマンドは応答を受け取ります。
  • C(icmp_seq)–パケット送信の順序を示します。 ご覧のとおり、pingはICMP要求を順番に送信します。 値は次のとおりです icmp_seq=N、 どこ N 注文番号です。
  • D(TTL)–ICMPリクエストを表示します 存続時間(TTL) 価値。 デフォルト値は64です。これは、リクエストが最大64ホップまでしか存続できず、その後期限切れになることを意味します。 可能な最大値は255です。
  • E(time)–リクエストが宛先に到達して送信元に戻った合計時間(ミリ秒)。 この値は、 往復時間(RTT)。 に注意してください time この例では、ターゲットが同じマシンであるため、値は0.1ミリ秒未満です。 The time 値が自然に増加するとき ping 宛先はリモートであるか、インターネットアドレスを持っています。
  • F(statistics)–の要約と統計を表示します ping コマンドの結果。 要約には、送受信されたパケットの数、パケット損失の割合、および合計時間が表示されます。 一番下の行は、合計RTTの最小、平均(平均値)、最大、および標準偏差を示しています。

インターネットプロトコルバージョンの強制

pingコマンドは、デフォルトでIPv4を使用します。 しかし、アプリケーションのIPv6との互換性をテストしている場合はどうでしょうか。 pingコマンドでIPv6を使用するように強制するには、以下のコードに示すように、Linuxでpingコマンドに-6オプションを指定する必要があります。

以下に示すように、from応答は、応答がIPv6ループバックアドレス(:: 1)からのものであることを示しています。

IPv6ループバックアドレスにpingを実行します

-6オプションの代わりに、-4オプションはpingにIPv4の使用を強制します。 ただし、pingのデフォルトはIPv4であるため、通常は-4オプションを指定する必要はありません。

返信数の制限

前の例では、CTRL + Cを押してpingコマンドを終了する必要がありました。そうしないと、pingコマンドが継続的に実行されるためです。

-cオプションを使用すると、pingコマンドが停止する前に受信する応答の数を指定できます。 なぜこのオプションを使用するのですか? 場合によっては、システムが10、100、1000のICMPパケットなどにどのように応答するかをテストする必要があります。

次のコマンドを実行して、5つのICMPパケットをターゲットホストに送信します。 5を、停止する前に受信するICMP応答の数に置き換えます。

以下に示すように、pingコマンドは5番目の要求(icmd_seq = 5)の後で停止し、CTRL+Cを押して終了する必要はありませんでした。

リクエスト数が制限されたping
リクエスト数が制限されたping

リクエスト間隔の調整

2つのデバイス間のネットワーク接続をテストする必要があり、そのうちの1つが低帯域幅であるとします。 この場合、2番目のデバイスが現在のICMPパケットを処理するのに十分な時間を確保できるように、各要求の間隔を長くすることができます。

The ping コマンドは、デフォルトで前のICMP要求を完了してから1秒後に後続のICMP要求を送信します。 遅延を調整するには、を指定する必要があります -i オプションの後に秒単位の遅延値が続きます。

たとえば、以下を実行します ping 要求の間隔が2秒の5つのICMP要求を送信するコマンド。

別の例として、以下を実行します ping 各要求の間に0.5秒間隔で5つのICMP要求を送信するコマンド。

ping -c 5 -i 0.5 localhost

間隔が異なる両方のコマンドの結果を比較すると、合計の差がわかります time 値。

異なる間隔でのping結果の比較
異なる間隔でのping結果の比較

フラッディング攻撃のシミュレーション

pingフラッドは一種の サービス拒否(DoS) 攻撃者がICMPパケットで標的のデバイスを圧倒しようとする攻撃。 この攻撃は、対象のマシンを圧倒して、正当なユーザーが過負荷になり利用できなくなるほど多くの要求に応答することを目的としています。

フラッド攻撃をシミュレートして、システムが攻撃にどのように応答するかをテストできます。 ただし、心配しないでください。 pingフラッドシミュレーションは制御されており、CTRL+Cを押すことでいつでも停止できます。

ローカルマシンで次のコマンドを実行して、デバイスが1秒間に処理できるリクエストの数を確認します。 The -f オプションとは、複数のpingパケットを任意の制限なしで迅速に送信することを意味します。

localhostを、テストするアプリのIPアドレスまたはホスト名に置き換えます。 この例では、ローカルホストでのみpingフラッドをシミュレートします。 pingコマンドを約5秒間実行してから、を押します。 CTRL+C 終了します。

ping -fコマンドを使用するには、rootユーザーであるか、sudo権限を持っている必要があります。

以下に示すように、pingコマンドはなんとか送受信できました 124,685 内のICMPパケット 4276 ミリ秒 0% パケットロス。 かなりいいですねただし、実際の使用例では、パケット損失が発生します。 ネットワークが完全ではないため、パケット損失は避けられません。

pingフラッド攻撃のシミュレーション
pingフラッド攻撃のシミュレーション

インターネット接続の確認

誰もが何らかの形でインターネットを利用していますよね? ブラウザを使用してウェブサイトを読み込もうとしたが、ページの読み込み時間が遅いと感じたとします。 この症状は、DNS解決が機能していることを示していますが、ネットワーク速度に影響があります。

サードパーティのツールを使用せずに問題を診断するには、 ping 指図。 コマンドの使用法は、ローカルネットワーク接続をテストする場合と同じです。 ただし、ループバックアドレスをターゲットにする代わりに、パブリックIPまたはWebアドレスを指定します。

以下のコマンドを実行して、外部の公開Webサイトにpingを実行します。 交換 adamtheautomator.com 必要に応じて別のWebアドレスを使用します。

ping -c 5 adamtheautomator.com

すぐに、ローカルホストにpingを実行する場合よりも時間の値が比較的高いことに気付くでしょう。 この費やされる時間の増加は、ターゲットアドレスによるものです adamtheautomator.com 同じホスト内になく、同じネットワーク上にさえありません。

前の手順では、pingコマンドは成功しましたが、実際の使用法では、さまざまな理由でpingコマンドが失敗する場合があります。

以下は、いくつかの一般的なエラーとそれらのトラブルシューティング方法です。

  • 宛先ホストに到達できません –このエラーは、宛先ホストへのルートがないことを意味します。 このエラーは、ホストまたはドメインがダウンしている場合に発生する可能性があります。
  • 要求がタイムアウトしました –このエラーは、宛先ホストへの要求に時間がかかりすぎ(4秒または4000ミリ秒以上かかった)、接続がタイムアウトしたことを意味します。 このエラーは、宛先ホストがビジー状態で応答できない場合、ファイアウォールが接続をブロックしている場合、またはネットワークハードウェア(ケーブル、ルーターなど)に欠陥がある場合に発生する可能性があります。
  • 未知のホスト –このエラーは、DNSがホスト名をIPアドレスに解決できないことを意味します。 正しいホスト名を入力していることを確認してください。 ルーターが正しく機能していないと思われる場合は、ルーターを再起動してみてください。
  • トランジットでTTLが期限切れになりました –このエラーは、ICMP要求が宛先に到達する前に期限切れになったことを意味します。 pingパケットは、宛先ホストに到達する前にゼロ(0)に減少します。 ほとんどの場合、ルーティングテーブルの設定を誤ると、このエラーが発生する可能性があります。 検討 ルートテーブルを確認する 問題があるかどうかを確認します。

知らなかった場合:プレーヤーは、pingをゲームコミュニティのゲームサーバーへの接続と呼びます。 pingが低いということは、特にペースの速いゲームでは、接続の応答性が高いことを意味します。 pingが高い場合は、接続の応答性が低く、ゲームの動作が遅くなる可能性があります。

一部のインターネットサービスプロバイダー(ISP)は、存在しないWebサイトに接続しようとすると、エラーメッセージではなく検索ページを返します。 エラーではなく応答を受け取っているため、誤検知の結果が生じる可能性があります。

Ping出力をファイルに保存する

すべてではないにしても、ほとんどのコマンドは画面に結果を返すだけで、 ping Linuxのコマンドも例外ではありません。 Linuxターミナルには、出力をファイルにリダイレクトできる出力リダイレクト演算子が組み込まれています。

これらのリダイレクト演算子は次のとおりです。

((>)ファイルの内容を上書きする文字、および;

((>>)文字。既存のコンテンツに出力を追加します。

しかし、なぜpingの結果をファイルに保存したいのでしょうか。 主に、テキストエディタまたはログパーサーを使用した記録管理とその後の分析に使用します。

スプレッドシートプログラムを使用して、ping時間が時間の経過とともにどのように変化するかを示すグラフを作成することもできます。

次のコマンドを実行して、ping出力をファイルに保存します。 このコマンドは、からのすべての標準出力を書き込みます ping 名前の付いたファイルへのコマンド log.txt ディスク上。

ping -c 10 localhost > log.txt

ながら ping コマンドが実行されていると、画面に出力がないことがわかります。

今、開きます log.txt などのテキストエディタでファイル nano。 または、を実行してファイルの内容を表示します cat 指図。

# Open in a text editor
nano log.txt
# OR
# Display the contents on the screen
cat log.txt
テキストエディタでping出力ファイルを開く
テキストエディタでping出力ファイルを開く
画面にping出力ファイルの内容を表示する
画面にping出力ファイルの内容を表示する

結論

このチュートリアルでは、さまざまな実用的な例を使用して、pingコマンドLinuxの使用方法を学習しました。 また、後で分析できるように、ping出力をディスク上のファイルに保存する方法も学習しました。

この時点で、pingコマンドがどのように機能し、どのように役立つかを十分に理解している必要があります。 しかし、あなたが立ち去って、見えているものすべてにpingを開始する前に、あなたがしなければならないいくつかのルールがあります セキュリティグループで有効にする ICMPトラフィックを許可します。

読んでくれてありがとう、そして幸せな学習!

The post Linuxの例での実用的なPingコマンド appeared first on Gamingsym Japan.