ネットワーク化されたコンピュータは最近非常に一般的であるため、私たちのほとんどは、部屋の片側にあるコンピュータが部屋の反対側にあるコンピュータ、ましてや世界の反対側にあるコンピュータに接続できることを当然のことと考えています。設計どおりに機能する場合、ネットワーキングは、インターネット、クラウド、ファイル共有、メディアストリーミング、リモート管理、印刷などを可能にするものです。何かがうまくいかないとき、診断するのが難しい場合があります。ネットワーク接続の最も基本的な診断ツールの1つは、ping
です。 コマンド。
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
基本的なping
ローカルネットワーク上のコンピューターまたはインターネット上のサーバーにアクセスできない場合は、pingを実行できます。 pingは、インターネット制御メッセージプロトコル(ICMP)パケットを宛先IPアドレスに送信します。 ICMPは、設計上、主に診断に使用される基本的な形式です。基本的には、コールアンドレスポンス信号です。
しかし、トラブルシューティングの順序があり、それは可能な限り家の近くで始まります。疑わしい場合は、最初に自分のコンピューターにpingを実行して、ネットワークスタックを実行していることを確認してください。操作しているコンピューターは、 localhostとも呼ばれます。 、そしてそれはそれ自身と話すために割り当てられた特別なIPアドレスを持っています:12.0.0.1。
ping
コマンドはlocalhostを理解します ホスト名、そのIPアドレス、および0
のショートカット 。
-c
を使用して、送信する信号の数を制御できます ( count のように ) オプション。
$ ping 0 -c1
PING 0 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.069 ms
--- 0 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.069/0.069/0.069/0.000 ms
ローカルネットワークスタックが稼働していることを確認したら、ルーターにpingを実行できます。ルーターのアドレスは通常、192、168、または10で始まります。正確なIPアドレスは、ルーターの構成によって異なります。
送信するpingの数を指定しない場合は、ping
を停止できます。 Ctrlで実行することから + C 。
$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
From 192.168.0.100: icmp_seq=2 Redirect Host(New nexthop: 192.168.0.1)
From 192.168.0.100: icmp_seq=3 Redirect Host(New nexthop: 192.168.0.1)
From 192.168.0.100: icmp_seq=4 Redirect Host(New nexthop: 192.168.0.1)
From 192.168.0.100: icmp_seq=5 Redirect Host(New nexthop: 192.168.0.1)
^C
ルーターに到達できる場合は、有線または無線接続が機能していることを意味します。
ネットワーク上の他のホストはどうですか?あらゆる種類のデバイスにpingを実行できます。すべてが応答することが保証されているわけではありませんが(一部のデバイスはICMPパケットをドロップします)、多くは応答します。たとえば、プリンタにpingを実行できます:
$ ping 192.168.0.4
ネットワークを超えてpingを実行
独自のネットワークが期待どおりに機能していることを確認するだけでなく、ルーターを超えてより広い世界にpingを送信することもできます。繰り返しになりますが、すべてのサーバーがICMPの受信を許可されているわけではなく、ICMPへの応答も許可されていません。ただし、そうするものもあり、インターネットの機能に不可欠なサーバーはネームサーバーです。
GoogleのDNSサーバーは比較的覚えやすく、pingに応答します:
$ ping -c 2 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=53.3 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=53.5 ms
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 53.304/53.424/53.544/0.120 ms
サイトが明らかに消えた場合は、世界中のDNSネットワークを調べて、そのホストサーバーのアドレスを確認し、そのサーバーにpingを実行できる可能性があります。これにより、少なくともホストがダウンしているかどうか、または単にWebサーバーの問題であるかどうかがわかります。
たとえば、example.comにアクセスしようとして失敗したとします。まず、host
を使用してIPアドレスを見つけます コマンド:
$ host example.com
example.com has address 93.184.216.34
example.com has IPv6 address 2606:2800:220:1:248:1893:25c8:1946
example.com mail is handled by 0
次に、IPでWebサイトのホストにpingを実行します:
$ ping 93.184.216.34 -c 1
PingとIPv6
Pingは、IPv6だけでなくIPv4でも機能します。 -4
を指定することで、そのうちの1つだけを明示的に使用することができます。 または-6
。
パケットサイズ
送信するICMPパケットのサイズは、-s
で変更できます。 オプション。デフォルトのパケットサイズは56で、8バイトのヘッダーと組み合わせると64ICMPデータバイトに変換されます。このコマンドは43バイトを送信します:
$ ping -s 35 -c 5 8.8.8.8
-D
を使用して、ターミナルの各pingレポートの前にタイムスタンプを印刷できます。 オプション。これにより、UNIXエポック時間とマイクロ秒が提供されます:
$ ping -D 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
[1634013430.297468] 64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=53.3 ms
[1634013431.298738] 64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=53.1 ms
ping時間
-i
を使用して、ping間の時間間隔を変更できます オプション。これにより、ping間隔が2秒に変更されます:
$ ping -i 2
-w
を使用して、一定の時間(秒単位)の後にpingを停止することもできます。 オプション:
$ ping -w 6
バリアント
pingには多くの実装があります。 iputils
パッケージはping
を提供します コマンド、Busyboxにはping
があります コマンド、およびBSDなどからのものがあります。 ping
用のGUIもあります :Gpingは、Linux、macOS、およびWindowsで使用できます。 gping
の詳細情報を見つけることができます Githubで。
pingの学習
ping
コマンドは単純ですが、ネットワークである広大な領域に目を向けることができます。次回接続の問題が発生した場合は、ping
を実行してください 最初に使用するツールになります。