GNU/Linux >> Linux の 問題 >  >> Linux

Linuxのpingコマンドで接続の問題を診断する

ネットワーク化されたコンピュータは最近非常に一般的であるため、私たちのほとんどは、部屋の片側にあるコンピュータが部屋の反対側にあるコンピュータ、ましてや世界の反対側にあるコンピュータに接続できることを当然のことと考えています。設計どおりに機能する場合、ネットワーキングは、インターネット、クラウド、ファイル共有、メディアストリーミング、リモート管理、印刷などを可能にするものです。何かがうまくいかないとき、診断するのが難しい場合があります。ネットワーク接続の最も基本的な診断ツールの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を実行してください 最初に使用するツールになります。


Linux
  1. Linuxcronコマンドを使用したタスクのスケジューリング

  2. Linuxのwatchコマンドでコマンドとタスクを監視する

  3. スマートクォートをLinuxsedコマンドに置き換えます

  1. statコマンドを使用してLinuxのファイルステータスを確認します

  2. Linuxtacコマンドの使用を開始する

  3. Linuxcatコマンドの使用を開始する

  1. Linuxatコマンドでタスクをスケジュールする

  2. Linuxlsコマンドをマスターする

  3. LinuxのPingコマンドを例で説明