インターネットは、データベース、サーバー、ルーター、その他のWeb構造でいっぱいの広大なネットワークシステムです。 Webアドレスを入力し、WebブラウザのEnterボタンを押すと、インターネット接続を介してWeb経由でホストアドレスにルーティングされます。宛先の途中で、パケットがコンピューターから宛先サーバーに到達するまでの移動を開始すると、パケットはWeb内を頻繁に移動します。多くのLinux、Windows、およびMacツールを使用すると、インターネットパケットのすべてのステップを追跡できます。 tracerouteコマンドは、Linuxで使用できる最もよく使用されるツールのひとつであり、インターネットパケットに関するすべてのステップ、ライブステータス、接続強度、遅延などを追跡できます。
LinuxでのPingとTracerouteコマンド
間違いなく、Pingは、宛先アドレスがライブであるかどうかを表示する最も使用されている簡単なネットワークコマンドです。 Pingとtracerouteコマンドの違いは、Pingは、パケットを送信して信号を分析するだけで、サーバーまたはアドレスが稼働しているかどうかを検出するだけであるということです。
一方、tracerouteコマンドは、より多くのネットワークトラブルシューティングを実行し、宛先アドレスを達成するためのネットワークのパスを決定できます。 tracerouteコマンドは、Webページのロードにかかる時間を予測したり、Webアドレス上のルーター、ホスト名、DNSサーバー名などを検出したりすることもできます。
ネットワークシステムでPingコマンドを実行すると、コマンドは自動的に4パケットのデータを宛先サイトに送信します。そのうちの1つがサイトに到達すると、コマンドはサイトが接続可能であると判断し、接続の確立にかかった秒数を判断します。
Linux用のPingコマンドのコマンド形式は次のとおりです。
ping <IP address> ping <domain name>
tracerouteコマンドは、宛先とサイトに到達するのにかかるミリ秒数について詳しく教えてくれます。 Pingコマンドとは異なり、tracerouteコマンドは、各デバイスのIPアドレスを通知し、最終的な宛先のみを測定するのではなく、すべてのルーターからのデータのラウンドトリップ時間を計算します。また、パス上のホップの総数もカウントされます。
Linux用のtracerouteコマンドのコマンド形式は次のとおりです。
---traceroute <ip_address>
LinuxでのTracerouteとMtrおよびTracertの違い
ネットワーキングモデルでデータを追跡するためのtracerouteコマンド、mtrコマンド、およびtracertコマンドについてはすでに聞いたことがあると思います。 LinuxおよびMacでは、tracerouteコマンドを使用できます。tracerouteコマンドのWindowsバージョンはtracertコマンドです。基本的に、tracerouteとtracertは同じコマンドです。
ここで、tracerouteコマンドとmtrコマンドの違いを確認します。 MTRの完全な形式は、tracerouteコマンドの変更されたコマンドであるMattのTraceRouteです。 tracerouteでは、パケットはIPネットワークを介して特定のホストに移動するときに追跡されます。
tracerouteコマンドの例:
$ traceroute 1.1.1.1 traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets 1 192.168.1.1 (192.168.1.1) 0.265 ms 0.248 ms 0.239 ms 2 * * * 3 X-X-X-X.X.X.pl (X.X.X.X) 21.871 ms 22.061 ms 25.072 ms (more data here) 10 one.one.one.one (1.1.1.1) 24.072 ms 22.439 ms 21.497 ms
MTRは、tracerouteとping機能を組み合わせた単一のネットワーク診断ツールです。 MTRは、Pingの結果とともにいくつかのtraceroute出力を出力します。
MTRコマンドの例:
$ mtr 1.1.1.1 -c 5 --report Start: 2019-08-09T15:13:28+0200 HOST: blackhole Loss% Snt Last Avg Best Wrst StDev 1.|-- 192.168.1.1 0.0% 5 0.2 0.1 0.1 0.2 0.0 2.|-- X-X-X-X.X.X 0.0% 5 9.7 9.0 8.4 9.7 0.5 3.|-- X-X-X-X.X.X 0.0% 5 9.6 8.6 6.2 9.8 1.5 (more data here) 10.|-- one.one.one.one 0.0% 5 12.8 13.4 10.7 18.9 3.3
LinuxでTracerouteコマンドはどのように機能しますか?
システムからホストアドレスへのパケットは、ルーター、アクセスポイント、およびネットワークインターフェイスを通過します。データパケットの実際のパスを特定するために、tracerouteコマンドは、IPヘッダー、インターネット制御メッセージプロトコル(ICMP)、およびネットワークシステム上のTTLまたは存続可能時間ツールを使用します。
システムで非常に小さなLAN接続を使用する場合、インターネットパケットの追跡はそれほど面倒ではない可能性があります。ワイドエリアネットワークに入るときは、長さ、送信元と宛先、およびプロトコルを測定するためのデータヘッダーを読み取るためにtracerouteコマンドが必要です。
tracerouteコマンドは、TCPプロトコルを使用して接続を確立します。また、8ビットのTTL値は、ルーターを介したデータパケットと宛先の間の遭遇の総数を決定するTTLカウンター番号も提供します。 TTL値が1の場合、パケットはタイムアウトエラーになります。また、ICMPは、送信元からパッケージの宛先にメッセージを送信して、タイムアウトを保証します。
LinuxでのTraceroute構文
ここでは、Linuxでのtracerouteコマンドの基本的な構文を確認します。構文を理解すると、以下にリストするtracerouteコマンドのすべての例を確実に理解するのに役立ちます。
コマンドの形式は次のとおりです。
traceroute [options] host_Address [pathlength]
- -f、–first-hop =NUM:最初のホップと次のホップの間の距離を設定します。
- -g、–gateways =GATES:オープンルーティングでは、ゲートウェイのリストが表示されます。
- -I、–ICMP:プローブとして、ICMPECHOが指定されています。
- -m、–max-hop =NUM:ホップ数を設定します。デフォルトは64です。
- -M、–type =METHOD:tracerouteはICMPまたはUDPのいずれかで実行されます。デフォルトの方法はUDPです。
- -p、–port =PORT:ネットワークポートを定義します。デフォルトは33434です。
- -q、–tries =NUM:NUM個のプローブパケットがホップごとに転送されます。
- –resolve-hostnames:この構文を使用してホスト名を修正できます。
- -t、–tos =NUM:TOSまたはサービスのタイプはNUMで定義されます
- -w、–wait =NUM:待機時間を秒単位で定義します。
- -? –help:Linuxでのtracerouteコマンドのヘルプとマニュアルガイドを印刷します。
- –usage:使用法を簡単なテキストで示します。
- -V、–version:Linuxでのtracerouteコマンドの現在のバージョンを出力します。
LinuxにTracerouteコマンドをインストールする
Linuxディストリビューションでのtracerouteコマンドのインストールプロセスは簡単です。 WindowsおよびMacシステムでは、tracerouteツールがプリインストールされています。 Linuxでは、最初にインストールする必要があります。ここでは、Ubuntu / Debian、RedHat、Fedora、およびArchLinuxシステムのインストールコマンドをリストしました。
インストール ArchLinuxでのtracerouteコマンド。
sudo pacman -Sy traceroute
Ubuntu /DebianLinuxでtracerouteコマンドを取得します。
sudo apt-get install traceroute
tracerouteツールをFedoraおよびRedHatLinuxシステムにインストールします。
# yum install traceroute -y
インストールが完了したら、tracerouteのバージョンをチェックして、ツールがLinuxマシンに正常にインストールされていることを確認できます。
$ traceroute --version
LinuxでのTracerouteコマンドの例
ここで、学習する必要のあるtracerouteコマンドの実用的で実用的な例をいくつか紹介します。 tracerouteコマンドは、デスクトップとサーバーの両方のすべての主要なLinuxディストリビューションでスムーズに機能します。
1。 Tracerouteを実行して概要を取得します
下記のtracerouteコマンドは、IPアドレス、パス全体の合計ホップ数、接続を確立するための合計期間、およびパッカーのサイズを表示します。
traceroute ubuntupit.com
2。デバイス名を非表示にする
tracerouteコマンドの出力でネットワークデバイスの名前を非表示にする場合は、-n
を追加してください。 コマンドにサインオンします。
traceroute -n ubuntupit.com
3。 Tracerouteタイムアウト値の設定
tracerouteコマンドのデフォルトのタイムアウト値がありますが、自分でタイムアウト値を手動で設定できます。以下のtracerouteコマンドは、Linuxでタイムアウト値を7秒に設定する方法を示しています。
traceroute -w 7.0 ubuntupit.com
4。テスト数の設定
Linuxでtracerouteコマンドを1回実行する場合のテスト数またはホップあたりのクエリ数を設定するには、以下のコマンドを使用できます。
traceroute -q 1 ubuntupit.com
5。初期TTL値の設定
tracerouteコマンドで-fフラグ構文を使用すると、LinuxでTTL値または存続時間ツール値を設定できます。
traceroute -f 11 ubuntupit.com
6。結果をテキストファイルに保存する
Linuxで以下に提供するコマンドを使用して、tracerouteコマンドの結果をテキストファイルにエクスポートできます。
traceroute google.com > results.txt
7。 IPv6を使用してルートをトレースする
インターネット接続にIPv6が設定されている場合は、以下のtracerouteコマンドを使用して接続をトレースできます。
traceroute -6 ipv6.google.com
8。 Ipv4を使用してルートをトレースする
同様に、Linuxで以下のtracerouteコマンドを使用してIPv4接続を定義することもできます。
traceroute 4 google.com
9。使用するインターフェース(NIC)を指定する
Linuxシステムに複数のネットワークインターフェイスカード(NIC)がある場合は、NICの名前を示す-iフラグを指定してtracerouteコマンドを使用するようにNICの1つを割り当てることができます。
traceroute -i enp8s0 google.com
ネットワークインターフェイスカードの名前を知る必要がある場合は、ifconfigコマンドを実行できます。
$ ifconfig
10。応答待機時間を設定する
tracerouteコマンドのデフォルトの応答待機時間を変更するには、Linuxのtracerouteコマンドで-wフラグを使用できます。この少しの調整により、データパックが宛先アドレスに到達するためにもう少し移動できるようになります。
traceroute -w 1 google.com
11。 IPアドレスとホスト名のマッピングを無効にする
LinuxでIPアドレスを無効にしてホストマッピングを非表示にするには、tracerouteコマンドでn記号を使用してください。これにより、ユーザーはホストのIPアドレスとホスト名を印刷できなくなります。
traceroute n google.com
12。最大ホップ数を設定する
デフォルトでは、tracerouteコマンドの平均ホップ数は30です。コマンドに-mフラグを付けてホップ値を追加することにより、tracerouteコマンドのホップ値を変更できます。
traceroute -m 7 google.com
13。パケットを断片化しないでください
Linuxシステムでデータパックをフラグメント化しない場合は、tracerouteコマンドで-Fフラグを使用してください。
$ traceroute -F google.com
14。ゲートを介してパケットをルーティングする
tracerouteコマンドを目的のゲートウェイ経由でルーティングする場合は、コマンドとともに-g記号を使用して、ゲートウェイをLinuxコマンドに追加できます。
$ traceroute -g 192.168.1.6 google.com
15。使用する宛先ポートを設定します
デフォルトでは、tracerouteコマンドはネットワークポート33434を使用します。ネットワークポートを変更する必要がある場合は、Linuxでtracerouteコマンドの-p記号を使用できます。
$ traceroute -p 20292 google.com
16。ヘルプを取得する
tracerouteコマンドのヘルプとマニュアルがさらに必要な場合は、シェルで以下のコマンドを実行してください。マニュアルは間違いなくツールを使い始めるのに役立ちます。
traceroute --help man traceroute
Tracerouteコマンドを使用する際に直面する可能性のある問題
Linuxでtracerouteコマンドを使用しているときに、初めて使用する場合は、いくつかの問題が発生する可能性があります。ここでは、Linuxコミュニティのさまざまなユーザーがtracerouteコマンドで最も直面している問題をいくつか挙げました。
1。 -n
の問題 Tでフラグを立てる Linuxでのracerouteコマンド
以前、Linuxでtracerouteコマンドでnフラグを使用して、デバイス名を非表示にできることを確認しました。シェルでnフラグを使用しているときに問題が発生し、無効なオプションが表示される場合は、システムに正しいtracerouteツールがインストールされていることを確認する必要があります。システムに代替インストールするために、以下のコマンドを実行してみることもできます。
これがサンプル出力です。
$ sudo traceroute -n . Not working $ traceroute: invalid option -- 'n'
Linuxマシンでtracerouteツールを修正するためのコマンド。
$ update-alternatives --display traceroute $ apt-get install traceroute $ update-alternatives --configure traceroute
2。パッケージを認証できない:Tracerouteコマンドの問題
Linuxシステムでtracerouteツールを認証できない場合は、sudoユーザーであり、システムでこのコマンドを実行するための適切な権限を持っていることを確認してください。このツールが正しくインストールされていることを確認したら、以下のsudoupdateコマンドを使用してパッケージリポジトリを更新できます。
sudo apt-get install traceroute sudo apt-get update
その後、目的のtracerouteコマンドを実行できます。うまくいけば、問題は解決されます。
3。 Tracerouteの新しいバージョンには問題がある可能性があります
場合によっては、一部の古いデバイスでは、tracerouteコマンドの最新バージョンで問題が発生することがあります。たとえば、-Aフラグを指定してtracerouteコマンドを実行し、コマンドのパスを定義する場合、問題が発生する可能性があります。
サンプルエラー出力:
~$ traceroute -A 8.8.8.8 traceroute -m 30 -q 1 -w 3 -A 8.8.8.8 traceroute: invalid option -- 'A' Try 'traceroute --help' or 'traceroute --usage' for more information. -A Perform AS path lookups in routing registries and print results directly after the corresponding addresses.
この問題は、多くの場合、リポジトリの更新後に自動的に解決されます。それでもこの問題が発生する場合は、デバイスを再起動し、コマンドを適切に実行して、コマンドに入力ミスがないことを確認してください。
~$ traceroute -A 8.8.8.8 traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
4。 LinuxでのTracerouteインストールエラー
Linuxマシンにtracerouteコマンドをインストールしているときに問題が発生した場合は、インストールに割り当てているパスがパッケージのインストールに使用できることを確認してください。また、そのツールをインストールするためのスーパーユーザー権限があることを確認する必要があります。ほとんどの場合、ユーザーはロックされたディレクトリ内にtracerouteコマンドをインストールしようとし続けると、アクセス許可拒否エラーが発生します。
Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
この問題を解決するには、以下のコマンドセットのいずれかを実行できます。不足しているリポジトリを修正し、Linuxにtracerouteコマンドをインストールすることを忘れないでください。
sudo apt-get install --fix-missing sudo apt-get update && sudo apt-get install traceroute
ユニバースリポジトリを取得し、tracerouteコマンドをインストールします。
sudo add-apt-repository universe sudo apt-get update sudo apt-get install inetutils-traceroute
5。 LinuxのTracerouteでIPアドレスの周りの括弧()を削除する
場合によっては、出力IPアドレスを最初の括弧内またはターミナルシェルの括弧内に取得することがあります。
出力例は次のとおりです。
traceroute -m2 8.8.8.8 |grep .net |awk '{print $3}' (207.225.112.2)
出力から角かっこを削除するには、以下のコマンドを実行してください。
$ traceroute -m 2 8.8.8.8 | awk '/net/{gsub(/\(|\)/,"");print $3}' Or $ traceroute -m 2 8.8.8.8 | awk '/.net/{print $3}' | tr -d '()' 207.225.112.2
最後の言葉
ネットワークのトラブルシューティングにtracerouteツールを使用すると、タスクがより簡単かつ効率的になります。初心者ユーザーがこのコマンドを使い始めるまでに数日かかる場合がありますが、このツールに慣れると、Linuxでの使用をどれだけ楽しんでいるかがわかります。
投稿全体で、Linuxのtracerouteコマンドについて多くのことを説明しました。 tracerouteコマンドをできるだけ簡単に説明しようとしました。この投稿がお役に立てば幸いです。はいの場合は、この投稿を友達やLinuxコミュニティと共有してください。この投稿についての意見をコメントセクションに書き留めることもできます。