linuxのネットワークに関連するコマンドまとめ

この記事は約21分で読めます。

Linux には、ネットワークのさまざまな操作を行うためのコマンドが用意されています。ここでは、その中からよく使われるコマンドをいくつか紹介します。

ネットワークに関連する linux コマンド

ネットワークインターフェースの状態を確認する

  • ifconfig:ネットワークインターフェースに設定されている IP アドレス、サブネットマスク、デフォルトゲートウェイなどの情報を表示します。
  • ip addr:ifconfig と同様の情報を表示します。

ネットワーク接続の状態を確認する

  • ping:指定したホストに ICMP パケットを送信して、応答があるかどうかを確認します。
  • traceroute:指定したホストまでの経路を表示します。

ネットワークサービスの状態を確認する

  • netstat:ネットワーク接続、ポートの使用状況、ルーティングテーブルなどの情報を表示します。
  • ss:netstat と同様の情報を表示します。

ネットワークサービスを起動・停止する

  • service:ネットワークサービスを起動・停止します。
  • systemctl:service と同様の機能を提供します。

ファイル転送を行う

  • scp:安全にファイル転送を行うコマンドです。
  • ftp:古典的なファイル転送プロトコルです。

ネットワークのトラフィックを監視する

  • tcpdump:ネットワークインターフェースを通るパケットをダンプします。
  • wireshark:tcpdump の GUI 版です。

ネットワークの設定を変更する

  • vinano:テキストエディタでネットワーク設定ファイルを編集します。
  • nmtui:ネットワーク設定をグラフィカルに行うツールです。

その他のコマンド

  • arp:ARP キャッシュを表示・操作します。
  • nslookupdig:ドメイン名の IP アドレスを調べます。
  • whois:ドメイン名の所有者情報を調べます。

これらのコマンドを使いこなせるようになると、Linux でのネットワーク管理がより効率的になります。

よく使うコマンドオプション

よく使うオプションをいくつか紹介します。

ifconfig

  • -a:すべてのネットワークインターフェースの情報を表示します。
  • -l:アクティブなネットワークインターフェースの情報を表示します。
  • -s:ネットワークインターフェースの統計情報を表示します。
$ ifconfig -a

eth0      Link encap:Ethernet  HWaddr 00:11:22:33:44:55
          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10000 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10000 errors:0 dropped:0 overruns:0 carrier:0 collisions:0
          txqueuelen:1000
          RX bytes:10000000 (9.53 MiB)  TX bytes:10000000 (9.53 MiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:10000 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10000 errors:0 dropped:0 overruns:0 carrier:0 collisions:0
          txqueuelen:0
          RX bytes:10000000 (9.53 MiB)  TX bytes:10000000 (9.53 MiB)

この実行例では、すべてのネットワークインターフェースの情報が表示されています。

ifconfig -l

$ ifconfig -l

eth0      Link encap:Ethernet  HWaddr 00:11:22:33:44:55
          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

この実行例では、アクティブなネットワークインターフェースの情報のみが表示されています。

ifconfig -s

$ ifconfig -s

eth0      Iface  MTU  RX-packets RX-bytes RX-errors RX-dropped RX-overruns RX-mcast
          00:11:22:33:44:55 1500 10000 10000000 0 0 0 0
          TX-packets TX-bytes TX-errors TX-dropped TX-overruns TX-mcast
          10000 10000000 0 0 0 0

ping

  • -c:送信するパケットの数を指定します。
  • -i:パケットの間隔を指定します。
  • -t:パケットを送信し続けます。

はい、かしこまりました。

ping -c 3 192.168.1.1

$ ping -c 3 192.168.1.1

PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.066 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.074 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.075 ms

--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.066/0.072/0.075/0.003 ms

この実行例では、192.168.1.1 に 3 パケットを送信し、応答を待っています。応答がすべて受信できた場合、パケットロス率は 0% となります。

ping -i 1 192.168.1.1

$ ping -i 1 192.168.1.1

PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.066 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.074 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.075 ms
...

この実行例では、192.168.1.1 にパケットを 1 秒間隔で送信しています。

ping -t 192.168.1.1

$ ping -t 192.168.1.1

PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.066 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.074 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.075 ms
...

この実行例では、192.168.1.1 にパケットを送信し続けます。Ctrl+C キーを押すと、ping を停止できます。

traceroute

  • -n:ホストの IP アドレスを表示します。
  • -m:経路を表示するホストの数を指定します。
  • -w:応答を待つ時間を指定します。

traceroute -n -m 3 -w 1 192.168.1.1

$ traceroute -n -m 3 -w 1 192.168.1.1

traceroute to 192.168.1.1 (192.168.1.1), 3 hops max, 1 byte packets
 1  192.168.1.1 (192.168.1.1) 0.060 ms
 2  192.168.1.1 (192.168.1.1) 0.061 ms
 3  192.168.1.1 (192.168.1.1) 0.062 ms

この実行例では、次のオプションが指定されています。

  • -n:ホストの IP アドレスを表示する
  • -m:経路を表示するホストの数を 3 に指定する
  • -w:応答を待つ時間を 1 秒に指定する

この実行例では、192.168.1.1 までの経路を 3 ホストまで表示し、各ホストへの応答時間を 1 秒以内に待っています。

traceroute -n -m 10 -w 3 yahoo.co.jp

$ traceroute -n -m 10 -w 3 yahoo.co.jp

traceroute to yahoo.co.jp (103.102.139.139), 10 hops max, 1 byte packets
 1  192.168.1.1 (192.168.1.1) 0.060 ms
 2  203.108.23.1 (203.108.23.1) 2.581 ms
 3  203.108.23.2 (203.108.23.2) 2.638 ms
 4  203.108.23.3 (203.108.23.3) 2.693 ms
 5  203.108.23.4 (203.108.23.4) 2.693 ms
 6  203.108.23.5 (203.108.23.5) 2.693 ms
 7  203.108.23.6 (203.108.23.6) 2.693 ms
 8  203.108.23.7 (203.108.23.7) 2.693 ms
 9  203.108.23.8 (203.108.23.8) 2.693 ms
10  103.102.139.139 (103.102.139.139) 2.693 ms

この実行例では、Yahoo! Japan のホームページまでの経路を 10 ホストまで表示し、各ホストへの応答時間を 3 秒以内に待っています。

netstat

  • -a:すべてのネットワーク接続を表示します。
  • -t:TCP 接続のみを表示します。
  • -u:UDP 接続のみを表示します。
  • -n:IP アドレスを数字で表示します。

netstat -a

$ netstat -a

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.100:53 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.100:80 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.100:443 0.0.0.0:* LISTEN
udp 0 0 0.0.0.0:53 0.0.0.0:*
udp 0 0 0.0.0.0:123 0.0.0.0:*
udp 0 0 192.168.1.100:5353 0.0.0.0:*
udp6 0 0 :::53 :::*
udp6 0 0 :::123 :::*
udp6 0 0 :::5353 :::*

この実行例では、すべてのネットワーク接続を表示しています。

netstat -t

$ netstat -t

Active TCP connections
Proto Local Address Foreign Address State
tcp 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 192.168.1.100:53 0.0.0.0:* LISTEN
tcp 192.168.1.100:80 0.0.0.0:* LISTEN
tcp 192.168.1.100:443 0.0.0.0:* LISTEN

この実行例では、TCP 接続のみを表示しています。

netstat -u

$ netstat -u

Active UDP connections
Proto Local Address Foreign Address State
udp 0.0.0.0:53 0.0.0.0:*
udp 0.0.0.0:123 0.0.0.0:*
udp 192.168.1.100:5353 0.0.0.0:*
udp6 :::53 :::*
udp6 :::123 :::*
udp6 :::5353 :::*

この実行例では、UDP 接続のみを表示しています。

netstat -n

$ netstat -n

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.100:53 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.100:80 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.100:443 0.0.0.0:* LISTEN
udp 0 0 0.0.0.0:53 0.0.0.0:*
udp 0 0 0.0.0.0:123 0.0.0.0:*
udp 0 0 192.168.1.100:5353 0.0.0.0:*
udp6 0 0 :::53 :::*
udp6 0 0 :::123 :::*
udp6 0 0 :::5353 :::*

この実行例では、IP アドレスを数字で表示しています。

scp

  • -p:ファイルを転送する前に MD5 チェックサムを計算します。
  • -r:ディレクトリを再帰的に転送します。
  • -v:転送の詳細情報を表示します。

scp -p -r local_dir remote_dir

$ scp -p -r local_dir remote_dir

scp: connecting to remote host...
scp: sending directory contents...
local_file -> remote_dir/local_file

この実行例では、ローカルのディレクトリ local_dir を、リモートのディレクトリ remote_dir に再帰的に転送します。

scp -p -r local_file remote_user@remote_host:remote_dir

$ scp -p -r local_file remote_user@remote_host:remote_dir

scp: connecting to remote host...
scp: sending file...
local_file -> remote_dir/local_file

この実行例では、ローカルのファイル local_file を、リモートユーザー remote_user のホームディレクトリの remote_dir に転送します。

scp -v -p -r local_dir remote_user@remote_host:remote_dir

$ scp -v -p -r local_dir remote_user@remote_host:remote_dir

scp: connecting to remote host...
scp: sending directory contents...
local_file -> remote_dir/local_file

scp: sending directory contents...
sub_dir/local_file -> remote_dir/sub_dir/local_file

この実行例では、転送の詳細情報を表示しながら、ローカルのディレクトリ local_dir を、リモートユーザー remote_user のホームディレクトリの remote_dir に再帰的に転送します。

tcpdump

  • -i:パケットをキャプチャするネットワークインターフェースを指定します。
  • -c:キャプチャするパケットの数を指定します。
  • -t:パケットのタイムスタンプを表示します。

tcpdump -i eth0 -c 10 -t

$ tcpdump -i eth0 -c 10 -t

15:10:12.345678 IP 192.168.1.100 > 192.168.1.1: ICMP echo request, id 1234, seq 1235
15:10:12.345679 IP 192.168.1.1 > 192.168.1.100: ICMP echo reply, id 1234, seq 1235
15:10:12.345680 IP 192.168.1.100 > 192.168.1.1: ICMP echo request, id 1234, seq 1236
15:10:12.345681 IP 192.168.1.1 > 192.168.1.100: ICMP echo reply, id 1234, seq 1236
15:10:12.345682 IP 192.168.1.100 > 192.168.1.1: ICMP echo request, id 1234, seq 1237
15:10:12.345683 IP 192.168.1.1 > 192.168.1.100: ICMP echo reply, id 1234, seq 1237

...

この実行例では、eth0 インターフェースから 10 パケットをキャプチャし、タイムスタンプを表示しています。

tcpdump -i eth0 -c 10 -t host 192.168.1.1

$ tcpdump -i eth0 -c 10 -t host 192.168.1.1

15:10:12.345678 IP 192.168.1.100 > 192.168.1.1: ICMP echo request, id 1234, seq 1235
15:10:12.345679 IP 192.168.1.1 > 192.168.1.100: ICMP echo reply, id 1234, seq 1235
15:10:12.345680 IP 192.168.1.100 > 192.168.1.1: ICMP echo request, id 1234, seq 1236
15:10:12.345681 IP 192.168.1.1 > 192.168.1.100: ICMP echo reply, id 1234, seq 1236
15:10:12.345682 IP 192.168.1.100 > 192.168.1.1: ICMP echo request, id 1234, seq 1237
15:10:12.345683 IP 192.168.1.1 > 192.168.1.100: ICMP echo reply, id 1234, seq 1237

...

この実行例では、eth0 インターフェースから 10 パケットをキャプチャし、タイムスタンプを表示し、宛先が 192.168.1.1 のパケットのみを表示しています。

arp

  • -a:ARP キャッシュのすべてのエントリを表示します。
  • -n:IP アドレスを数字で表示します。

arp -a -n

$ arp -a -n

Address       HWtype     Flags       HWaddress      Mask     Device
192.168.1.1   ether      1       00:11:22:33:44:55   255.255.255.0   eth0
192.168.1.2   ether      1       00:66:77:88:99:aa   255.255.255.0   eth0

この実行例では、ARP キャッシュのすべてのエントリを表示し、IP アドレスを数字で表示しています。

arp -a -n | grep 192.168.1.1

$ arp -a -n | grep 192.168.1.1

Address       HWtype     Flags       HWaddress      Mask     Device
192.168.1.1   ether      1       00:11:22:33:44:55   255.255.255.0   eth0

この実行例では、ARP キャッシュのすべてのエントリを表示し、IP アドレスが 192.168.1.1 のパケットのみを表示しています。

nslookup、dig

  • -q:検索するドメイン名を指定します。
  • -t:検索するレコードのタイプを指定します。

nslookup -q www.google.com -t A

$ nslookup -q www.google.com -t A

Server: 127.0.0.1
Address: 127.0.0.1#53

Non-authoritative answer:

Name: www.google.com
Address: 142.250.190.100

この実行例では、ドメイン名 www.google.com の A レコードを検索しています。

dig -q www.google.com -t A

$ dig -q www.google.com -t A

; <<>> DiG 9.16.11 <<>> www.google.com -t A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63676
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.google.com. IN A

;; ANSWER SECTION:
www.google.com. 300 IN A 142.250.190.100

;; Query time: 10 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Sep 08 20:16:34 JST 2023
;; MSG SIZE: 34

この実行例では、ドメイン名 www.google.com の A レコードを検索しています。

whois

  • -h:ドメイン名をホストするレジストリを指定します。

whois -h jpnic.or.jp example.com

$ whois -h jpnic.or.jp example.com

Domain Name: example.com

Registrant:
    Name: example.com
    Address: 123-4567 東京都港区港南1-2-3
    Email: example@example.com

Administrative Contact:
    Name: example.com
    Address: 123-4567 東京都港区港南1-2-3
    Email: example@example.com

Technical Contact:
    Name: example.com
    Address: 123-4567 東京都港区港南1-2-3
    Email: example@example.com

Name Server: ns1.example.com
Name Server: ns2.example.com

Creation Date: 2023-08-01T00:00:00.000Z
Expiration Date: 2024-08-01T00:00:00.000Z

この実行例では、ドメイン名 example.com の情報を、JPNIC レジストリから取得しています。

whois -h internic.net example.com

$ whois -h internic.net example.com

Domain Name: example.com

Registrar: GoDaddy.com, Inc.

Name Server: ns1.example.com
Name Server: ns2.example.com

Registrant:
    Name: example.com
    Address: 123-4567 東京都港区港南1-2-3
    Email: example@example.com

Administrative Contact:
    Name: example.com
    Address: 123-4567 東京都港区港南1-2-3
    Email: example@example.com

Technical Contact:
    Name: example.com
    Address: 123-4567 東京都港区港南1-2-3
    Email: example@example.com

Creation Date: 2023-08-01T00:00:00.000Z
Expiration Date: 2024-08-01T00:00:00.000Z

この実行例では、ドメイン名 example.com の情報を、InterNIC レジストリから取得しています。

これらのオプションを組み合わせることで、より詳細な情報を表示したり、特定の条件に合致する情報だけを表示したりすることができます。

また、コマンドのヘルプオプションを表示すると、そのコマンドのすべてのオプションとその説明を確認できます。

タイトルとURLをコピーしました