Linux管理・運用の基本
システム管理者のための実践ガイド
システム管理者のための実践ガイド
Linuxサーバーを運用していると、ネットワークに接続できなくなったり、特定のサービスにアクセスできなかったりといったネットワークトラブルに遭遇することがあります。そんな時、どこから手をつけて良いか困惑することもあるでしょう。この記事では、ネットワークトラブルの初動診断で非常に役立つping
、traceroute
、mtr
という3つのコマンドについて、それぞれの使い方と具体的な活用シーンを解説します。これらのコマンドを使いこなすことで、問題の切り分けを効率的に行い、迅速な復旧につなげることができます。
ping
コマンドで基本的なネットワーク疎通確認を行う方法traceroute
コマンドでパケットの経路を特定する方法mtr
コマンドで経路上の問題点を継続的に監視する方法ping
コマンドは、指定したホストに対してネットワークパケット(ネットワーク上でやりとりされるデータの最小単位)を送信し、その応答を確認することで、最も基本的なネットワーク疎通を確認するコマンドです。TCP/IPネットワークにおいて、対象のホストまで到達できるかどうか、そして応答速度はどうかを調べることができます。
単純に相手のサーバーが稼働しているか、ネットワーク的に到達可能かを素早く確認したい場合に利用します。
ping -c 3 8.8.8.8
8.8.8.8
(Google Public DNS) に対して3回だけpingを実行します。-c
オプションは送信するパケット数を指定します。無限にpingを送信し続けるのを防ぎ、結果を簡潔に表示したい場合に便利です。
出力例:
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=117 time=12.3 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=13.2 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=12.6 ms
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 12.322/12.700/13.177/0.354 ms
補足: ping
はICMP(Internet Control Message
Protocol)という特殊なパケットを利用します。サーバーやネットワーク機器のファイアウォール設定でICMPがブロックされている場合、実際には通信が可能でもpingが通らないことがあります。このため、「pingが通らない=通信できない」と直ちに判断せず、traceroute
やmtr
といった他の診断コマンドも組み合わせて利用することが重要です。
オプション | 意味 |
---|---|
-c COUNT |
指定した回数だけパケットを送信する |
-i INTERVAL |
パケット送信の間隔を秒数で指定する (通常は1秒) |
-W TIMEOUT |
応答を待つ最大時間を秒数で指定する |
traceroute
コマンドは、送信元から宛先までのパケットが通過するルーター(ホップ:ルーターなど中継装置を1つ経由するごとに1ホップ)の経路を表示するコマンドです。これにより、通信がどこで途切れているのか、あるいはどこで遅延が発生しているのかを特定する手がかりを得られます。
通信ができていても遅延がある場合や、特定の箇所でパケットが消失している場合(パケットロス)に、問題の発生地点を特定するのに役立ちます。
traceroute example.com
example.com
までの経路を表示します。
出力例(抜粋):
traceroute to example.com (93.184.216.34), 30 hops max, 60 byte packets
1 router.local (192.168.1.1) 0.723 ms 0.686 ms 0.649 ms
2 provider-gateway.ne.jp (XXX.XXX.XXX.XXX) 5.123 ms 6.012 ms 5.876 ms
3 * * *
4 tokyo-b1.isp.net (YYY.YYY.YYY.YYY) 15.234 ms 14.897 ms 15.567 ms
...
traceroute -n 8.8.8.8
IPアドレスをホスト名に解決せず、数値のまま表示します。DNSの名前解決による遅延を避けたい場合や、純粋なIP経路を確認したい場合に有用です。
補足: traceroute
の出力で「* * *
」と表示されるホップは、その地点のルーターがICMP応答を返さない設定になっているか、パケットがタイムアウトしたことを意味します。必ずしもそこで通信が途絶えているわけではありませんが、連続して「* * *
」となる場合は、その先の経路に問題がある可能性を示唆します。
mtr
(My Traceroute)コマンドは、ping
とtraceroute
の機能を組み合わせた高機能なネットワーク診断ツールです。継続的にパケットを送信し、各ホップでのパケットロスや遅延をリアルタイムで表示するため、断続的に発生するネットワーク問題を特定するのに非常に有効です。traceroute
の進化版として、より詳細な情報を提供します。
ネットワークの状態が時間によって変動する場合や、一時的な問題の兆候を捉えたい場合に最適です。
mtr example.com
example.com
までの経路を継続的に監視します。Ctrl+Cで終了するまで情報が更新され続けます。
出力例(抜粋):
My traceroute [v0.94]
your_host (0.0.0.0) Wed Jul 30 11:00:00 2025
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. router.local 0.0% 10 0.7 0.7 0.6 0.8 0.1
2. provider-gateway.ne.jp 0.0% 10 5.1 5.5 5.0 6.0 0.4
3. ??? 0.0% 10 0.0 0.0 0.0 0.0 0.0
4. tokyo-b1.isp.net 0.0% 10 15.2 15.0 14.8 15.5 0.2
...
Loss%
(パケットロス率)、Avg
(平均応答時間)、StDev
(応答時間の標準偏差)などがリアルタイムで表示され、どのホップで問題が発生しているかが一目でわかります。
補足: ???
と表示されている場合は、そのホップのホスト名が解決できなかった、あるいはICMP応答がないことを示します。また、途中のホップでLoss%
(パケットロス)が見られても、経路上の機器がICMP応答を意図的に制限しているだけの場合も多く、必ずしもその地点でネットワーク障害が発生しているわけではありません。終端の宛先までパケットが正常に到達しているかを確認することが重要です。
mtr -c 100 -r example.com
レポートモードで100パケットを送信し、結果をまとめて表示します。スクリプトなどで結果を取得したい場合に便利です。
オプション | 意味 |
---|---|
-c COUNT |
送信するパケット数を指定(レポートモードで使用) |
-r |
レポートモードで結果をまとめて表示 |
-n |
IPアドレスをホスト名に解決しない |
-o FIELDS |
表示するフィールドを指定する (例: mtr -o LSNA example.com ) |
一部のLinuxディストリビューションでは、traceroute
やmtr
コマンドがデフォルトでインストールされていない場合があります。その際は、以下のコマンドで導入してください。ping
コマンドは通常、標準で利用可能です。
コマンド | Debian/Ubuntu系 | CentOS/RHEL系 |
---|---|---|
ping | 標準で利用可 | 標準で利用可 |
traceroute | sudo apt install traceroute |
sudo yum install traceroute |
mtr | sudo apt install mtr |
sudo yum install mtr |
本記事では、Linux環境でのネットワークトラブルの初動診断に欠かせないping、traceroute、mtrの3つのコマンドについて解説しました。これらのコマンドは、ネットワークが繋がらない、遅い、不安定といった症状の原因を特定する上で非常に強力なツールとなります。それぞれのコマンドが持つ特性を理解し、状況に応じて使い分けることで、より迅速かつ正確にネットワークの問題を切り分け、解決へと導くことができるでしょう。
この記事が、ネットワークトラブルの際に役立つ一助となれば幸いです。ご覧いただきありがとうございました。次回は、ポートの空き状況を確認するコマンドについて解説します。