◇ 本ページではネットワークのトラブルシューティングのための基本的な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コマンドでも表示することができます。
|