まくろぐ
更新: / 作成:

関連コマンド: ss コマンド

ip コマンドとは

Linux の ip コマンドを使うと、ネットワークデバイスやルーティングテーブル、ARP テーブルなどの確認・設定を行うことができます。 過去に net-tools パッケージで提供されていた、ifconfigroutearpnetstat コマンドは deprecated(非推奨)扱いになっています。

ip コマンドをインストールする

ip コマンドは APT の iproute2 パッケージに含まれています。 Docker の Ubuntu コンテナなどで ip コマンドが見つからない場合は、次のようにインストールできます。

$ apt update  # パッケージリストの更新
$ apt install -y iproute2

iproute2 パッケージには、ip コマンド以外にもいろいろなコマンドが含まれています(参考: iproute2 に含まれるファイルのリスト ─ Debian / archlinux)。

  • arpd - userspace arp daemon

  • bridge - show / manipulate bridge addresses and devices

  • devlink - Devlink tool

  • ip - show / manipulate routing, devices, policy routing and tunnels

  • lnstat - unified linux network statistics

  • nstat - network statistics tools

  • routef - flush routes

  • routel - list routes with pretty output format

  • rtacct - network statistics tools

  • rtmon - listens to and monitors RTnetlink

  • rtstat - unified linux network statistics

  • ss - another utility to investigate sockets

  • tc - show / manipulate traffic control settings

  • tipc - a TIPC configuration and management tool

ip サブコマンドのヘルプを表示する

ip <サブコマンド名> help で各サブコマンドのヘルプを表示できます。

例: ip address コマンドのヘルプを表示する
$ ip address help
例: ip link コマンドのヘルプを表示する
$ ip link help

ip サブコマンド

コマンド説明対応する旧コマンド
ip r (ip route show)ルーティングテーブルの確認netstat -r, route
ip a (ip address show)IP アドレスや MAC アドレスの確認ifconfig
ip n (ip neigh)ARP テーブルの確認arp -n
ip -s -lネットワークデバイスのパケット転送量netstat -i
sudo ip link set eth0 up/downネットワークデバイスの起動/停止ifconfig eth0 up/down

ip address コマンド(IP アドレスの確認・設定)

ip address コマンドは、ホストの(ネットワークインタフェース)に割り当てられている IP アドレスの情報を表示します。 サブコマンドの address は 1 文字まで省略できるので、ip a で実行することができます。

すべてのアドレスを表示
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
3: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN group default qlen 1000
    link/tunnel6 :: brd :: permaddr e28e:402f:dcf2::
81: eth0@if82: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
指定したデバイス (eth0) のアドレスを表示
$ ip addr show dev eth0
81: eth0@if82: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever

IPv6 アドレスが割り当てられているか確認する

次のように fe80:: で始まるアドレスしか表示されない場合は、IPv6 アドレスは割り当てられていません。

$ ip -6 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::2:a0ff:fefb:330a/64 scope link
       valid_lft forever preferred_lft forever

fe80:: で始まるアドレスは、IPv6 におけるリンクローカルアドレスです。 ちなみに、IPv4 のリンクローカルアドレスは 169.254.0.0 〜 169.254.255.255 です。 DHCP などでアドレスが割り当てられない場合に、IP アドレス自己割り当て機能 (APIPA: Automatic Private IP Addressing) を使って、これらの IP アドレスが割り当てられます。

関連記事

まくろぐ
サイトマップまくへのメッセージ