Traffine I/O

日本語

2023-03-03

ネットワーク関連のLinuxコマンド

Linux におけるネットワーク関連コマンド

Linuxには、システム管理者がネットワーク接続をトラブルシューティングし、管理するために役立つ多数のネットワーク関連コマンドがあります。これらのコマンドを使用することで、ユーザーはネットワーク構成に関する情報を収集したり、ネットワークの問題を診断したり、リモートサーバーとやり取りしたりすることができます。この記事では、Linuxでもっとも一般的に使用されるネットワーク関連コマンドのいくつかを紹介します。

host

Linuxのhostコマンドは、DNSルックアップを実行し、ドメイン名やIPアドレスに関する情報を取得するために使用されます。DNS関連の問題をトラブルシューティングし、DNS設定を確認するためによく使用されます。

bash
$ host [options] [domain name/IP address]

hostコマンドの一般的なオプションには、次のものがあります。

  • -t: クエリ対象のレコードタイプを指定します(例:A、MX、NSなど)。
  • -a: 指定したドメインの全ての情報を表示します。
  • -c: クエリクラスを設定します(例:インターネット用にINを設定します)。

以下は、hostコマンドの例です。

bash
$ host google.com

出力結果は次のようになります。

bash
google.com has address 172.217.3.174
google.com has IPv6 address 2607:f8b0:4004:809::200e
google.com mail is handled by 30 alt2.aspmx.l.google.com.
google.com mail is handled by 20 alt1.aspmx.l.google.com.
google.com mail is handled by 40 alt3.aspmx.l.google.com.
google.com mail is handled by 50 alt4.aspmx.l.google.com.
google.com mail is handled by 10 aspmx.l.google.com.

このコマンドは、ドメイン名「google.com」に対してDNSルックアップを実行し、そのIPアドレスとメールサーバーの情報を返します。

ping

Linuxのpingコマンドは、ネットワーク上のソースと宛先ホストの間の接続をテストするために使用されるユーティリティです。リモートホストに到達可能かどうかを確認したり、ネットワーク接続のレイテンシを測定したりすることができる強力なツールです。

pingコマンドの使用例を示します。

bash
$ ping google.com

このコマンドは、ICMPパケットをGoogleのウェブサイトに送信し、応答時間とパケットロスの統計を表示します。デフォルトでは、pingコマンドはユーザーによって中断されるまで無制限にパケットを送信します。

pingコマンドのもう1つの便利なオプションは-cで、ユーザーが送信するパケット数を指定できます。

bash
$ ping -c 4 google.com

このコマンドは、Googleのウェブサイトに4つのICMPパケットを送信し、応答時間とパケットロスの統計を表示します。

pingコマンドには、パケット間隔、パケットサイズ、送信するICMPパケットのタイプを指定するオプションもあります。

bash
$ ping -i 2 -s 100 -t 10 google.com

このコマンドは、2秒ごとにGoogleのウェブサイトにICMPパケットを送信し、パケットサイズを100バイト、タイムアウトを10秒に設定します。

traceroute

Linuxのtracerouteコマンドは、ネットワーク上のソースと宛先ホストの間をパケットが通過する経路を追跡するために使用されるユーティリティです。tracerouteコマンドを使用することで、パケットが通過するネットワークルートを特定したり、ネットワークの問題(ネットワーク混雑やパケットロスなど)を特定したり、ネットワーク接続の問題をトラブルシューティングしたりすることができます。

tracerouteコマンドの使用例を示します。

bash
$ traceroute google.com

このコマンドは、ソースホストからGoogleウェブサイトへのパケットの経路を追跡し、途中の各ネットワークホップのIPアドレスと応答時間を表示します。デフォルトでは、tracerouteコマンドはTTL(Time-to-Live)値を増加させたパケットを送信し、宛先ホストに到達するか、最大TTL値に達するまで続けます。

tracerouteコマンドのもう1つの便利なオプションは-nで、逆DNSルックアップを無効にし、ホスト名の代わりにIPアドレスを表示します。

bash
$ traceroute -n google.com

このコマンドは、Googleウェブサイトへのパケットの経路を追跡し、ホスト名の代わりに各ネットワークホップのIPアドレスを表示します。

tracerouteコマンドには、最大TTL値、TTL値ごとに送信するパケットの数、および送信するパケットの種類を指定するオプションもあります。

bash
$ traceroute -m 20 -q 5 -T google.com

このコマンドは、最大TTLが20のTCPパケットの経路を追跡し、TTL値ごとに5つのパケットをGoogleウェブサイトに送信します。

ifconfig

ifconfigコマンドは、システムのネットワークインターフェースパラメータを構成および表示するために使用されるLinuxユーティリティです。これは、ネットワークインタフェースのIPアドレス、ネットマスク、およびステータスを表示するために一般的に使用され、IPアドレスとネットワークパラメータを構成するためにも使用されます。

ifconfigコマンドの使用例を次に示します。

bash
$ ifconfig

このコマンドは、システムで利用可能な全てのネットワークインタフェースの設定を表示します。出力には、インタフェース名、IPアドレス、ネットマスク、およびステータスなどの情報が含まれます。

ネットワークインターフェイスを設定するために、ifconfigコマンドを様々なオプションとともに使用することができます。例えば、次のコマンドを使用してインターフェースのIPアドレスを設定できます。

bash
$ ifconfig eth0 192.168.1.10 netmask 255.255.255.0

このコマンドは、eth0インターフェースのIPアドレスを192.168.1.10に、ネットマスクを255.255.255.0に設定します。

ifconfigコマンドは、ネットワークインターフェイスの有効化や無効化、ネットワークエイリアスの設定、MTU(Maximum Transmission Unit)サイズやブロードキャストアドレスなど、様々なネットワークパラメータの設定にも使用できます。

nslookup

nslookupコマンドは、ドメインネームシステム(DNS)をクエリし、ドメイン名やIPアドレスのマッピング情報を取得するために使用されるネットワーク管理ツールです。これは、ネットワーク接続の問題のトラブルシューティング、DNSの構成の確認などに役立ちます。

以下は、nslookupコマンドの使用例です。

bash
$ nslookup example.com

これにより、example.comドメイン名に関連付けられたIPアドレスが返され、ルックアップを実行するために使用されるDNSサーバーなどのその他の情報も表示されます。

nslookupコマンドは、使用する特定のDNSサーバーの指定、MXやTXTレコードなどの特定のレコードタイプのクエリなど、他のオプションもサポートしています。ターミナルでnslookup -hまたはman nslookupを入力することで、オプションと構文の完全なリストを表示できます。

netstat

netstatコマンドは、アクティブなネットワーク接続、ルーティングテーブル、および様々なネットワーク統計を表示するために使用されるLinuxユーティリティです。これは、Linuxシステム上のネットワーク接続のトラブルシューティングやネットワークアクティビティの監視によく使用されます。

netstatコマンドの使用例を以下に示します。

bash
$ netstat -a

このコマンドは、リッスンソケットと確立された接続を含むシステム上の全てのアクティブなネットワーク接続を表示します。-aオプションは、TCPおよびUDPの両方の接続を表示するように指定します。

netstatコマンドは、様々なネットワーク統計およびルーティングテーブルを表示するためにも使用できます。例えば、次のコマンドを使用して、ネットワークルーティングテーブルを表示できます。

bash
$ netstat -r

このコマンドは、システムの現在のルーティングテーブルを表示し、デフォルトゲートウェイ、ネットワーク宛先、およびルーティングインターフェイスの情報を含みます。

netstatコマンドは、特定の種類のネットワーク接続または統計を表示するために様々なオプションで使用することもできます。例えば、次のコマンドを使用して、全てのTCP接続を表示できます。

bash
$ netstat -at

このコマンドは、システム上の全てのアクティブなTCP接続を表示します。-tオプションは、TCP接続のみを表示するように指定します。

ssh

sshコマンドはLinuxのユーティリティで、ネットワーク経由でリモートシステムに安全に接続するために使用されます。リモートサーバーの管理、ファイルの転送、リモートシステム上でのコマンドの実行に一般的に使用されます。

以下はsshコマンドの使用例です。

bash
$ ssh user@remote_host

このコマンドでは、userは接続先のリモートシステムのユーザー名であり、remote_hostはリモートシステムのホスト名またはIPアドレスです。このコマンドを実行すると、リモートシステムで指定したユーザーのパスワードを入力するように求められます。

リモートシステムに正常に接続した後、ターミナルウィンドウに単純にコマンドを入力して、リモートシステム上でコマンドを実行できます。例えば、次のコマンドを使用して、リモートシステム上の現在のディレクトリを表示できます。

bash
$ pwd

このコマンドは、リモートシステム上の現在のディレクトリを表示します。

sshコマンドは、接続をカスタマイズし、セキュリティを向上させるために使用できる様々なオプションもサポートしています。例えば、X11転送を有効にする-Xオプションを使用できます。これにより、リモートシステム上でグラフィカルなアプリケーションを実行して、それらをローカルシステムで表示できます。

scp

Linuxのscpコマンドは、「Secure Copy」の略で、ネットワーク経由でローカルホストとリモートホスト間でファイルを安全に転送するために使用されます。

以下はscpコマンドの使用例です。

bash
$ scp file.txt user@remote:/path/to/destination

この例では、file.txtは転送したいファイルの名前であり、userはリモートホストのユーザー名、remoteはリモートホストのホスト名またはIPアドレス、/path/to/destinationはファイルを転送したいディレクトリのパスです。

このコマンドを実行すると、scpコマンドはローカルマシンからリモートマシンにファイルを安全にコピーします。

また、scpコマンドを使用して、ソースと宛先の引数を逆にすることで、リモートマシンからローカルマシンにファイルを転送することもできます。

bash
$ scp user@remote:/path/to/file.txt /path/to/destination

この例では、userはリモートホストのユーザー名、remoteはリモートホストのホスト名またはIPアドレス、/path/to/file.txtは転送したいファイルのパス、/path/to/destinationはローカルマシン上のファイルを転送したいディレクトリのパスです。

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!