おそらく皆さんは ping が一般的で比較的シンプルなコマンドであると認識していることでしょう。そして、多くの基本的なコマンドと同様に、このツールをさらに便利にする優れたオプションやテクニックがあります。この記事では、ping の知識をレベルアップさせるためのさまざまなヒントやコツを探ります。
まず、基本的な ping オプションをいくつか紹介し、次に ping の結果を解釈します。その後、いくつかの高度な使用例を探ります。最後に、ping の代替手段や追加のアプローチについても説明します。
[ 関連記事:Ping、traceroute、netstat:ネットワークトラブルシューティングの三種の神器 ]
基本
簡単なおさらいとして、ホスト名が server01 または IP アドレスが 192.168.2.200 のリモートマシンへの基本的なネットワーク接続をテストするには、次の 2 つのコマンドを入力します。
# ping server01
# ping 192.168.2.200
また、localhost のホスト名またはループバックアドレスを使用して、ローカルの TCP/IP スタックをテストすることもできます。
# ping localhost
# ping 127.0.0.1ping 0 コマンドを使用して localhost に ping することもできます。
# ping 0
あまり知られていないオプション
デフォルトでは、Linux は継続的に ping を送信します。Windows は、デフォルトでは 4 回しか送信しません。私のお気に入りの ping の使い方の 1 つは、リモートサーバーやネットワークデバイスが再起動したときに知らせてくれることです。たとえば、Linux ラップトップから Windows サーバーにリモート接続しているとします。設定を続行する前に、サーバーを再起動する必要があります。再起動コマンドを実行した後、ラップトップからサーバーへ継続的な ping を設定できます。ping の結果が成功を示したら、リモートマシンでの再起動プロセスが完了したことがわかります。その間、私は他のプロジェクトに取り組むことができます。
注: ping のオプションは、Linux と Windows で多少異なります。両方のプラットフォームで作業する場合は、この点を考慮してください。
ping で可聴キューを使用して、ping が成功したときに知らせることもできます。
# ping -a server01-c オプションの後に目的の ping メッセージ数を続けることで、ping の回数を調整できます。たとえば、5 回の ping を送信するには、次のように入力します。
# ping -c 5 192.168.2.200このバリエーションを使用して、ホスト名に 1 回の ping を送信することで、宛先の IP アドレスを表示できます。これは簡単な名前解決クエリです。
# ping -c 1 server01
ping が返す詳細レベルを変更したい場合もあるでしょう。-v (詳細) オプションを追加して詳細レベルを上げるか、-q (静か) オプションを使用して結果を要約することができます。
# ping -v server01
# ping -c 1 -q server01
上記のオプションを使って、ping の便利な使い方をいくつか紹介しました。私は特に、簡単な名前解決クエリを実行できる機能が気に入っています。しかし、私が最もよく使ったのは、再起動中の継続的な ping のトリックです。
ping コマンドは、名前解決サービスのテストにも使用できます。IP アドレスで宛先に ping を実行し、ping が成功すれば、基本的な接続性があることがわかります。同じ宛先にホスト名で ping を実行し、それが失敗した場合、名前解決が機能していないことがわかります。これは、2 回目のテストでは ping が指定されたホスト名を IP アドレスに解決できなかったためです。
結果とテクニック
結果をもう少し深く掘り下げると、ping の出力には、ホスト名と IP アドレス情報、パケット損失、応答時間などが表示されます。
ping からの出力
注意すべき 2 つの最も一般的な結果は timeout と unknown host です。どちらも失敗を示しますが、これら 2 つの結果を使用してネットワークの問題がどこにあるかを予測できることをご存知でしたか?
timeout メッセージは、お使いのマシンが宛先に ping クエリを正常に送信したと判断したことを示します。しかし、指定された時間内に応答を受信しなかったため、「タイムアウト」しました。設定ミスは、宛先側、またはお使いのマシンと宛先の間のネットワークにある可能性が高いです。お使いのマシンはクエリを送信しましたが、宛先が応答に失敗しました。まず、宛先デバイスの電源が入っており、ネットワークに物理的に接続され、有効な IP アドレスを持っていることを確認します。その後、ルーターとファイアウォールの設定を確認します。
unknown host の出力では、その逆が当てはまります。これは、接続の自分側に問題がある可能性が高いことを示します。お使いのコンピュータは、目的の宛先にクエリを送信できませんでした。これは、自分側の IP アドレス設定の誤り、デフォルトゲートウェイ値の問題、または存在しない宛先アドレスに接続しようとしていることを意味する可能性があります。
外側から内側へ
多くのネットワーキングコースでは、ping を使用して設定の問題をテストする際、最も近い設定にまず ping を実行し、外側に向かって作業を進めるよう推奨しています。私は常にこれに反対してきました。
最も近いアドレスから順に行うアプローチは、次のようになります。
- ループバック:
ping 127.0.0.1 - ローカルホスト:
ping 192.168.2.200 - ローカルルーター/デフォルトゲートウェイ:
ping 192.168.2.1 - IP アドレスによるリモートの宛先:
ping 192.168.8.42 - ホスト名によるリモートの宛先:
ping server01
ステップ 1 が成功すれば、時間を無駄にすることなく他のテストに進むことができるため、外側から内側へのアプローチを使用する方が効率的だと思います。ループバックとローカルホストのテストが失敗する可能性は、他のネットワーク設定の問題に比べて非常に低いです。
外側から内側へのアプローチは、次のとおりです。
- ホスト名によるリモートの宛先:
ping server01(注: これが成功した場合は、他のネットワークテストに進みます) - IP アドレスによるリモートの宛先:
ping 192.168.8.42 - ローカルルーター/デフォルトゲートウェイ:
ping 192.168.2.1 - ローカルホスト:
ping 192.168.2.200 - ループバック:
ping 127.0.0.1
高度な使用例
さまざまなテストに使用できる ping の雑多なコマンドがいくつかあります。
たとえば、Nmap がインストールされていないが、どのホストが稼働しているかを確認する必要がある場合はどうでしょうか。-b オプションを追加して、サブネット全体に ping ブロードキャストを実行します。これにより、現在稼働中のホストが表示されますが、単純な Nmap スキャンほど効果的ではありません。
# ping -b -c 3 -i 20 192.168.2.255ping パケットのペイロードのサイズを変更することもできます。ヘッダーは常に 28 バイトなので、必要な量に 28 バイトを加えると合計サイズになります。デフォルトは 64 バイトです。128 バイトの ping を送信するには、次のように入力します。
# ping -s 100 server01これは、Ping of Death 攻撃 で使用される基本的なテクニックです。
time-to-live (TTL) 値を設定することにより、ping が通過するホップ (ルーター) の数を制限します。たとえば、クエリを 10 ホップに制限するには、次のように入力します。
# ping -t 10 server01さらに、継続的な ping を実行しているときに Ctrl+pipe を試して、統計情報を表示します。
最後のヒント
最後に 1 つのツールと、ルーターに関する注意事項を紹介して締めくくります。
ping には GUI 版の gping があります。GUI を使用すると、前述のように、再起動中のサーバーを監視するなどのタスクに便利です。部屋の向こうから、継続的な ping の結果のステータスを表示できます。グラフィカルな表示の方が作業しやすかったり、デモンストレーションに役立ったりすることもあります。gping は、その公式 Git ページにあります。さまざまな Linux ディストリビューション、macOS、および Windows で利用可能です。他のいくつかのインストーラー用に、いくつかの異なるパッケージタイプが利用可能です。
gping の構文例をいくつか紹介します。1 つ目は server01 へのグラフィカルな ping を確立し、2 つ目は gping のヘルプを表示します。
# gping server01
# gping --help8.8.8.8 アドレスへの接続をテストしている gping のスクリーンショットを次に示します。
最後に注意点です。多くのルーターは、ping (および traceroute) で使用されるような ICMP ベースのパケットをドロップするように設定されています。ICMP は、一般的にさまざまな攻撃に使用される可能性があるため、ルーターは ping 要求を渡すことも応答することもしないように設定されている場合があります。これは、ネットワーク接続のトラブルシューティングを行う際に、心に留めておくべきことです。
[ 無料ダウンロード: Linux 詳細コマンドチートシート ]
まとめ
確かに、ping は皆さんがよく使ってきたシンプルなツールですが、その動作を変更するためのいくつかの優れたオプションや、トラブルシューティング時に使用できる優れたテクニックがあります。上記のリストから、知らなかった便利なことを 1 つでも発見できましたか? gping はどうでしょう? ping のグラフィカルバージョンについて、何か良い使い道を思いつきますか?
執筆者紹介
Damon Garn owns Cogspinner Coaction, LLC, a technical writing, editing, and IT project company based in Colorado Springs, CO. Damon authored many CompTIA Official Instructor and Student Guides (Linux+, Cloud+, Cloud Essentials+, Server+) and developed a broad library of interactive, scored labs. He regularly contributes to Enable Sysadmin, SearchNetworking, and CompTIA article repositories. Damon has 20 years of experience as a technical trainer covering Linux, Windows Server, and security content. He is a former sysadmin for US Figure Skating. He lives in Colorado Springs with his family and is a writer, musician, and amateur genealogist.
チャンネル別に見る
自動化
テクノロジー、チームおよび環境に関する IT 自動化の最新情報
AI (人工知能)
お客様が AI ワークロードをどこでも自由に実行することを可能にするプラットフォームについてのアップデート
オープン・ハイブリッドクラウド
ハイブリッドクラウドで柔軟に未来を築く方法をご確認ください。
セキュリティ
環境やテクノロジー全体に及ぶリスクを軽減する方法に関する最新情報
エッジコンピューティング
エッジでの運用を単純化するプラットフォームのアップデート
インフラストラクチャ
世界有数のエンタープライズ向け Linux プラットフォームの最新情報
アプリケーション
アプリケーションの最も困難な課題に対する Red Hat ソリューションの詳細
仮想化
オンプレミスまたは複数クラウドでのワークロードに対応するエンタープライズ仮想化の将来についてご覧ください