Linux におけるネットワーク関連コマンド
Linuxには、システム管理者がネットワーク接続をトラブルシューティングし、管理するために役立つ多数のネットワーク関連コマンドがあります。これらのコマンドを使用することで、ユーザーはネットワーク構成に関する情報を収集したり、ネットワークの問題を診断したり、リモートサーバーとやり取りしたりすることができます。この記事では、Linuxでもっとも一般的に使用されるネットワーク関連コマンドのいくつかを紹介します。
host
Linuxのhost
コマンドは、DNSルックアップを実行し、ドメイン名やIPアドレスに関する情報を取得するために使用されます。DNS関連の問題をトラブルシューティングし、DNS設定を確認するためによく使用されます。
$ host [options] [domain name/IP address]
host
コマンドの一般的なオプションには、次のものがあります。
-t
: クエリ対象のレコードタイプを指定します(例:A、MX、NSなど)。-a
: 指定したドメインの全ての情報を表示します。-c
: クエリクラスを設定します(例:インターネット用にINを設定します)。
以下は、host
コマンドの例です。
$ host google.com
出力結果は次のようになります。
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
コマンドの使用例を示します。
$ ping google.com
このコマンドは、ICMPパケットをGoogleのウェブサイトに送信し、応答時間とパケットロスの統計を表示します。デフォルトでは、ping
コマンドはユーザーによって中断されるまで無制限にパケットを送信します。
ping
コマンドのもう1つの便利なオプションは-c
で、ユーザーが送信するパケット数を指定できます。
$ ping -c 4 google.com
このコマンドは、Googleのウェブサイトに4つのICMPパケットを送信し、応答時間とパケットロスの統計を表示します。
ping
コマンドには、パケット間隔、パケットサイズ、送信するICMPパケットのタイプを指定するオプションもあります。
$ ping -i 2 -s 100 -t 10 google.com
このコマンドは、2秒ごとにGoogleのウェブサイトにICMPパケットを送信し、パケットサイズを100バイト、タイムアウトを10秒に設定します。
traceroute
Linuxのtraceroute
コマンドは、ネットワーク上のソースと宛先ホストの間をパケットが通過する経路を追跡するために使用されるユーティリティです。traceroute
コマンドを使用することで、パケットが通過するネットワークルートを特定したり、ネットワークの問題(ネットワーク混雑やパケットロスなど)を特定したり、ネットワーク接続の問題をトラブルシューティングしたりすることができます。
traceroute
コマンドの使用例を示します。
$ traceroute google.com
このコマンドは、ソースホストからGoogleウェブサイトへのパケットの経路を追跡し、途中の各ネットワークホップのIPアドレスと応答時間を表示します。デフォルトでは、traceroute
コマンドはTTL(Time-to-Live)値を増加させたパケットを送信し、宛先ホストに到達するか、最大TTL値に達するまで続けます。
traceroute
コマンドのもう1つの便利なオプションは-n
で、逆DNSルックアップを無効にし、ホスト名の代わりにIPアドレスを表示します。
$ traceroute -n google.com
このコマンドは、Googleウェブサイトへのパケットの経路を追跡し、ホスト名の代わりに各ネットワークホップのIPアドレスを表示します。
traceroute
コマンドには、最大TTL値、TTL値ごとに送信するパケットの数、および送信するパケットの種類を指定するオプションもあります。
$ traceroute -m 20 -q 5 -T google.com
このコマンドは、最大TTLが20のTCPパケットの経路を追跡し、TTL値ごとに5つのパケットをGoogleウェブサイトに送信します。
ifconfig
ifconfig
コマンドは、システムのネットワークインターフェースパラメータを構成および表示するために使用されるLinuxユーティリティです。これは、ネットワークインタフェースのIPアドレス、ネットマスク、およびステータスを表示するために一般的に使用され、IPアドレスとネットワークパラメータを構成するためにも使用されます。
ifconfig
コマンドの使用例を次に示します。
$ ifconfig
このコマンドは、システムで利用可能な全てのネットワークインタフェースの設定を表示します。出力には、インタフェース名、IPアドレス、ネットマスク、およびステータスなどの情報が含まれます。
ネットワークインターフェイスを設定するために、ifconfig
コマンドを様々なオプションとともに使用することができます。例えば、次のコマンドを使用してインターフェースのIPアドレスを設定できます。
$ 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
コマンドの使用例です。
$ nslookup example.com
これにより、example.comドメイン名に関連付けられたIPアドレスが返され、ルックアップを実行するために使用されるDNSサーバーなどのその他の情報も表示されます。
nslookup
コマンドは、使用する特定のDNSサーバーの指定、MXやTXTレコードなどの特定のレコードタイプのクエリなど、他のオプションもサポートしています。ターミナルでnslookup -h
またはman nslookup
を入力することで、オプションと構文の完全なリストを表示できます。
netstat
netstat
コマンドは、アクティブなネットワーク接続、ルーティングテーブル、および様々なネットワーク統計を表示するために使用されるLinuxユーティリティです。これは、Linuxシステム上のネットワーク接続のトラブルシューティングやネットワークアクティビティの監視によく使用されます。
netstat
コマンドの使用例を以下に示します。
$ netstat -a
このコマンドは、リッスンソケットと確立された接続を含むシステム上の全てのアクティブなネットワーク接続を表示します。-a
オプションは、TCPおよびUDPの両方の接続を表示するように指定します。
netstat
コマンドは、様々なネットワーク統計およびルーティングテーブルを表示するためにも使用できます。例えば、次のコマンドを使用して、ネットワークルーティングテーブルを表示できます。
$ netstat -r
このコマンドは、システムの現在のルーティングテーブルを表示し、デフォルトゲートウェイ、ネットワーク宛先、およびルーティングインターフェイスの情報を含みます。
netstat
コマンドは、特定の種類のネットワーク接続または統計を表示するために様々なオプションで使用することもできます。例えば、次のコマンドを使用して、全てのTCP接続を表示できます。
$ netstat -at
このコマンドは、システム上の全てのアクティブなTCP接続を表示します。-tオプションは、TCP接続のみを表示するように指定します。
ssh
ssh
コマンドはLinuxのユーティリティで、ネットワーク経由でリモートシステムに安全に接続するために使用されます。リモートサーバーの管理、ファイルの転送、リモートシステム上でのコマンドの実行に一般的に使用されます。
以下はssh
コマンドの使用例です。
$ ssh user@remote_host
このコマンドでは、user
は接続先のリモートシステムのユーザー名であり、remote_host
はリモートシステムのホスト名またはIPアドレスです。このコマンドを実行すると、リモートシステムで指定したユーザーのパスワードを入力するように求められます。
リモートシステムに正常に接続した後、ターミナルウィンドウに単純にコマンドを入力して、リモートシステム上でコマンドを実行できます。例えば、次のコマンドを使用して、リモートシステム上の現在のディレクトリを表示できます。
$ pwd
このコマンドは、リモートシステム上の現在のディレクトリを表示します。
ssh
コマンドは、接続をカスタマイズし、セキュリティを向上させるために使用できる様々なオプションもサポートしています。例えば、X11転送を有効にする-Xオプションを使用できます。これにより、リモートシステム上でグラフィカルなアプリケーションを実行して、それらをローカルシステムで表示できます。
scp
Linuxのscp
コマンドは、「Secure Copy」の略で、ネットワーク経由でローカルホストとリモートホスト間でファイルを安全に転送するために使用されます。
以下はscp
コマンドの使用例です。
$ scp file.txt user@remote:/path/to/destination
この例では、file.txt
は転送したいファイルの名前であり、user
はリモートホストのユーザー名、remote
はリモートホストのホスト名またはIPアドレス、/path/to/destination
はファイルを転送したいディレクトリのパスです。
このコマンドを実行すると、scp
コマンドはローカルマシンからリモートマシンにファイルを安全にコピーします。
また、scp
コマンドを使用して、ソースと宛先の引数を逆にすることで、リモートマシンからローカルマシンにファイルを転送することもできます。
$ scp user@remote:/path/to/file.txt /path/to/destination
この例では、user
はリモートホストのユーザー名、remote
はリモートホストのホスト名またはIPアドレス、/path/to/file.txt
は転送したいファイルのパス、/path/to/destination
はローカルマシン上のファイルを転送したいディレクトリのパスです。