はじめに

こんにちは!今回はipコマンドについて解説します。

ipはネットワークインターフェースの設定と状態を表示・変更するコマンドです。ifconfigの後継で、より強力で柔軟な機能を持っています。IPアドレスの設定、ルーティング、ネットワーク統計など、ネットワーク管理全般で活躍します。

最新のLinuxではこれが標準。ifconfigよりも詳細な情報が得られて、スクリプト化しやすいのが特徴ですね。


ipコマンドとは

ipは、Linuxのネットワーク設定・管理を一元的に行う外部コマンドです。“iproute2"パッケージに含まれています。

IPアドレス、ルーティングテーブル、ネットワークデバイス、トンネルなど、ネットワークに関する多くの機能を提供。ifconfigroutearpなどの複数のコマンドの機能を1つにまとめたものと考えるといいですね。


基本構文

1
ip [オプション] OBJECT COMMAND [引数]

OBJECTにはaddr(アドレス)、link(リンク)、route(ルート)などを指定します。


主なオプション

オプション 説明
addr IPアドレスを表示・設定
link ネットワークデバイスを表示・設定
route ルーティングテーブルを表示・設定
neigh ARP隣接情報を表示・設定
-s 統計情報を表示
-4 IPv4のみを対象
-6 IPv6のみを対象
show 情報を表示
add 新しい設定を追加
del 設定を削除

使用例

例1: すべてのネットワークデバイスを表示

1
ip link show

実行結果:

1
2
3
4
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
    link/ether 00:0c:29:3e:12:34 brd ff:ff:ff:ff:ff:ff

ネットワークデバイスの一覧と状態を表示。

例2: IPアドレス情報を表示

1
ip addr show

実行結果:

1
2
3
4
1: lo: <LOOPBACK,UP,LOWER_UP>
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP>
    inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0

すべてのインターフェースのIPアドレスを表示。

例3: 特定のインターフェースのIPアドレスを表示

1
ip addr show eth0

実行結果:

1
2
3
4
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
    link/ether 00:0c:29:3e:12:34 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
    inet6 fe80::20c:29ff:fe3e:1234/64 scope link

特定のデバイスのIPアドレス情報を表示。

例4: IPアドレスを追加(root権限)

1
sudo ip addr add 192.168.1.200/24 dev eth0

実行結果:

1
(成功時は何も表示されない)

インターフェースに新しいIPアドレスを追加。

例5: IPアドレスを削除(root権限)

1
sudo ip addr del 192.168.1.200/24 dev eth0

実行結果:

1
(成功時は何も表示されない)

設定されたIPアドレスを削除。

例6: インターフェースを有効化(root権限)

1
sudo ip link set eth0 up

実行結果:

1
(成功時は何も表示されない)

ネットワークデバイスを有効化。

例7: ルーティングテーブルを表示

1
ip route show

実行結果:

1
2
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 scope link src 192.168.1.100

ルーティングテーブルを表示。

例8: デフォルトゲートウェイを設定(root権限)

1
sudo ip route add default via 192.168.1.1 dev eth0

実行結果:

1
(成功時は何も表示されない)

デフォルトゲートウェイを設定。

例9: IPv4アドレスのみ表示

1
ip -4 addr show

実行結果:

1
2
3
4
1: lo: <LOOPBACK,UP,LOWER_UP>
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP>
    inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0

IPv4アドレスだけを表示。

例10: ARP情報を表示

1
ip neigh show

実行結果:

1
2
192.168.1.1 dev eth0 lladdr 00:11:22:33:44:55 STALE
192.168.1.50 dev eth0 lladdr aa:bb:cc:dd:ee:ff REACHABLE

ARP(隣接情報)を表示。


Tips・注意点

ifconfigからipへの移行

最新のLinuxではifconfigは非推奨。ipコマンドを使いましょう。

1
2
3
4
5
# 古い方法
ifconfig eth0 192.168.1.200

# 新しい方法
sudo ip addr add 192.168.1.200/24 dev eth0

CIDRマスク記法

ipコマンドではネットマスクをCIDR記法で指定します。

1
2
3
/24 = 255.255.255.0
/16 = 255.255.0.0
/32 = 255.255.255.255

root権限が必要

IPアドレスやルート設定の変更にはroot権限(sudo)が必要です。

設定は一時的

ipコマンドでの設定は再起動で失われます。永続的にするには設定ファイルを編集します。


実践的な使い方

ネットワーク設定情報を確認

1
ip -4 addr show && ip route show

IPアドレスとルーティング情報をまとめて表示。

インターフェースの詳細情報表示

1
ip -d link show eth0

デバイスの詳細情報(MTU、MACアドレスなど)を表示。

ネットワーク統計情報

1
ip -s link show eth0

送受信バイト数やエラー情報を表示。

スクリプトでのIP抽出

1
ip -4 addr show eth0 | grep "inet " | awk '{print $2}'

IPアドレスだけを抽出。スクリプト化に便利。


まとめ

ipコマンドのポイント:

  • 汎用ネットワーク管理ツール - 複数のネットワークコマンドを統一
  • addr: IPアドレス表示・設定
  • link: ネットワークデバイス表示・設定
  • route: ルーティングテーブル表示・設定
  • -4/-6: IPv4/IPv6の指定
  • CIDR記法: ネットマスクを/24などで指定
  • よく使う組み合わせ: ip addr show, ip link show, ip route show

最新のLinuxではこれが標準。ifconfigより強力で、スクリプト化も容易ですよ!