Linux - Network Troubleshooting



 ◇ 本ページではネットワークのトラブルシューティングのための基本的なLinuxコマンドを紹介します。

 ◆ pingコマンド

 ネットワーク上のホストが起動しているかどうか、IP通信ができているかどうかを調査したい場合、
ping
 コマンドを実行し、指定したホストにICMPパケットを送信することで確認できます。なお、pingコマンド
 の実行時にオプション -c を指定しないと永続的にpingし続けるのでCtrl + Cで停止させる必要があります。

 ◆ 構文 : ping [ オプション ] IPアドレスまたはホスト名

オプション 説明
 -c 回数  パケットを送信する回数を指定
 -i 秒  パケットの送信間隔を秒単位で指定


 ◆ 実行例 : 192.168.0.100の宛先ホストにPINGを実行 - 応答がある場合のステータス結果

 # ping 192.168.0.100

 64 bytes from 192.168.0.100: icmp_seq=1 ttl=128 time=0.952 ms




 ◆ tracerouteコマンド

 指定したホストまでのパケットが通過する経路を表示させたい場合、
tracerouteコマンドを使用します。
 以下実行例では、10.1.1.100の宛先ホストに到達するまでに、192.168.231.1のIPアドレスを持つルータ、
 172.16.10.254 のIPを持つルータを経由していることが分かります。経由機器はルータまたはL3スイッチ。

 ◆ 構文 : traceroute IPアドレスまたはホスト名

 ◆ 実行例 : 10.1.1.100の宛先ホストにtracerouteを実行

 # traceroute 10.1.1.100

 traceroute to 10.1.1.100 (10.1.1.100), 30 hops max, 60 byte packets

  1 192.168.231.1 (192.168.231.1) 0.419 ms 0.198 ms 0.162 ms
  2 172.16.10.254 (172.16.10.254) 1.333 ms 1.298 ms 1.562 ms
  3 10.1.1.100 (10.1.1.100) 2.313 ms 2.258 ms 2.763 ms




 ◆ tracepathコマンド

 tracerouteコマンドと同様の機能に加えて、経路のMTU(ネットワーク上で1回の転送で送信できる
 データの最大値)も調査したい場合は
tracepathコマンドを使用します。

 ◆ 構文 : tracepath IPアドレスまたはホスト名


 ◆ hostコマンド

 DNSサーバを使用して指定したホスト情報を検索するためには
hostコマンドを使用します。以下の例では
 www.yahoo.co.jpのIPアドレスを問い合わせた結果、124.83.187.140のIPアドレスだと応答しています。


 # host www.yahoo.co.jp

 www.yahoo.co.jp is an alias for www.g.yahoo.co.jp.
 www.g.yahoo.co.jp has address 124.83.187.140




 ◆ hostnameコマンド

 hostnameコマンドは、hostnameとだけ入力した場合は現在のホスト名を表示します。
 hostnameコマンドの後、ホスト名を指定した場合はホスト名を変更することができます。

 ◆ 実行例 : 現在のホスト名の表示

 # hostname

 localhost.localdomain


 ◆ 実行例 : ホスト名を「intra.infraexpert.com」に変更 (rootユーザーのみが変更可能)
 # hostname intra.infraexpert.com




 ◆ netstatコマンド

 netstatコマンドは、TCP/IPの統計情報、接続状況、ルーティング情報などを調査できるコマンドです。
 現在、開いている(オープンになっている)ポートの確認によく利用されるコマンドです。現在オープンに
 なっているポート番号を知ることにより、Linux上でどのようなサービスが動作しているかを判断できます。

 ◆ 構文 : netstat オプション

オプション 説明
-a  接続待ち状態にあるソケットと、接続待ち状態にないソケットを表示
-c  ステータスを1秒ごとにリアルタイムで表示
-i  ネットワークインターフェースの状態を表示
-l  接続待ち状態にあるソケットのみを表示
-n  ホスト、ポート、ユーザーなどの名前を解決せず、数値で表示
-p  各ソケットが属しているプログラムのPIDと名前を表示
-r  ルーティングテーブルを表示
-t  TCPポートのみを表示
-u  UDPポートのみを表示


 例えば、「-a」と「-t」をオプションとした場合、利用している全てのTCPポートのみを表示できます。

 



 一番右端の「State」の情報が重要です。Stateには種類があり、それぞれは意味は以下の通りです。

State 意味
 LISTEN  待ち受け状態(リッスン状態)のポート。
 SYN_SENT  サーバにSYNを送信したが、それに対するAckを受信できていない状態。
 ESTABLISHED  TCPコネクションが確立して通信している状態。SYNに対するACKを受信した状態。
 CLOSE_WAIT  相手からのFINを受け取った状態。
 TIME_WAIT  コネクションの終了待ち状態。しばらくした後、CLOSEDへ遷移して終了。
 CLOSED  未使用状態のTCPポート。通常、このStateが表示されることはない。


 以下の例ではLinuxでのルーティングテーブルを表示しています。なお、ルーティングテーブルの表示は
 netstat -r コマンド以外にも、先ほど紹介した
routeコマンドでも表示することができます。

 



Linux 技術入門

Copyright(C) 2002-2024 ネットワークエンジニアとして All Rights Reserved