ipコマンド チートシート

cheatsheet

ネットワークインターフェース (Link) 管理 📡

ネットワークデバイス(物理/仮想インターフェース)の状態表示や設定変更を行います。

link オブジェクトは、ネットワークデバイス自体の設定(MACアドレス、MTU、状態など)を扱います。省略形は l です。

目的 コマンド例 説明
全インターフェース情報表示
ip link show
または
ip l
システムに存在する全てのネットワークインターフェースの状態(UP/DOWNなど)、MACアドレス、MTUなどの基本情報を表示します。
特定インターフェース情報表示
ip link show dev eth0
指定したインターフェース(この例では eth0)の詳細情報を表示します。
インターフェース統計情報表示
ip -s link show
または
ip -s link show dev eth0
インターフェースごとの送受信パケット数、エラー数、ドロップ数などの統計情報を表示します。-s オプションを複数つける(-ss など)と、より詳細な情報が表示されます。
インターフェース有効化 (UP)
ip link set dev eth0 up
指定したインターフェース(eth0)を有効化し、通信可能な状態にします。
インターフェース無効化 (DOWN)
ip link set dev eth0 down
指定したインターフェース(eth0)を無効化し、通信を停止します。注意: リモート接続中のインターフェースをDOWNさせると接続が切断されます。
MTU (Maximum Transmission Unit) 変更
ip link set dev eth0 mtu 1400
インターフェース(eth0)のMTU値を1400バイトに変更します。ネットワーク環境に合わせて調整します。
MACアドレス変更
# 事前にインターフェースをDOWNさせる
ip link set dev eth0 down
# MACアドレスを変更
ip link set dev eth0 address 00:11:22:33:44:55
# インターフェースをUPさせる
ip link set dev eth0 up
インターフェース(eth0)のMACアドレスを指定した値に変更します。変更前にインターフェースを一度DOWNさせる必要があります。
インターフェース名変更
# 事前にインターフェースをDOWNさせる
ip link set dev eth0 down
# 名前を変更
ip link set dev eth0 name wan0
# 新しい名前でインターフェースをUPさせる
ip link set dev wan0 up
インターフェース(eth0)の名前を wan0 に変更します。管理しやすい名前に変更する際に使用します。変更前にインターフェースをDOWNさせる必要があります。
プロミスキャスモード設定
# 有効化
ip link set dev eth0 promisc on
# 無効化
ip link set dev eth0 promisc off
インターフェース(eth0)をプロミスキャスモード(無差別モード)に設定します。有効にすると、自身宛でないパケットも受信するようになります。パケットキャプチャなどで使用します。

IPアドレス (Address) 管理 🌐

インターフェースへのIPアドレス(IPv4/IPv6)の割り当て、削除、表示を行います。

address オブジェクトは、インターフェースに紐づくプロトコルアドレス(主にIPアドレス)を扱います。省略形は addr または a です。

目的 コマンド例 説明
全IPアドレス情報表示
ip addr show
または
ip a
全てのインターフェースに割り当てられているIPアドレス(IPv4, IPv6)、関連情報(スコープなど)を表示します。最もよく使われるコマンドの一つです。
特定インターフェースのIP表示
ip addr show dev eth0
指定したインターフェース(eth0)に割り当てられているIPアドレス情報を表示します。
IPv4アドレスのみ表示
ip -4 addr show
IPv4アドレスのみを表示します。
IPv6アドレスのみ表示
ip -6 addr show
IPv6アドレスのみを表示します。
IPアドレス追加
ip addr add 192.168.1.100/24 dev eth0
指定したインターフェース(eth0)にIPアドレス(192.168.1.100)とプレフィックス長(/24)を追加します。
IPアドレス削除
ip addr del 192.168.1.100/24 dev eth0
指定したインターフェース(eth0)から指定したIPアドレスとプレフィックス長の組み合わせを削除します。
セカンダリIPアドレス追加(ラベル付き)
ip addr add 192.168.1.101/24 dev eth0 label eth0:1
一つのインターフェース(eth0)に複数のIPアドレスを割り当てる場合に使用します。label オプションでエイリアス名を指定できます(互換性のため)。ラベルなしでも追加可能です。
インターフェースの全IPアドレス削除 (Flush)
ip addr flush dev eth0
指定したインターフェース(eth0)に割り当てられている全てのIPアドレス(IPv4/IPv6)を削除します。DHCPで再取得する場合などに使用します。

ルーティング (Route) 管理 🗺️

カーネルのルーティングテーブルの表示、追加、削除を行います。

route オブジェクトは、パケットの経路情報を管理します。省略形は r です。Linuxは複数のルーティングテーブルを持つことができます(main, local など)。

目的 コマンド例 説明
ルーティングテーブル表示 (main)
ip route show
または
ip r
メインのルーティングテーブル(main テーブル)の内容を表示します。デフォルトゲートウェイや静的ルートなどが含まれます。
特定のテーブル表示 (例: local)
ip route show table local
指定したルーティングテーブル(この例では local)の内容を表示します。local テーブルにはローカルインターフェースやブロードキャストアドレスなどが自動的に登録されます。
特定の宛先への経路表示
ip route get 8.8.8.8
指定した宛先IPアドレス(8.8.8.8)へのパケットがどの経路(インターフェース、ゲートウェイ)を通るかを表示します。経路選択の確認に便利です。
デフォルトゲートウェイ追加
ip route add default via 192.168.1.1 dev eth0
デフォルトゲートウェイ(192.168.1.1)を経由するルートを、インターフェース eth0 に追加します。
デフォルトゲートウェイ削除
ip route del default via 192.168.1.1
または
ip route del default
設定されているデフォルトゲートウェイのルートを削除します。
静的ルート追加 (ネットワーク宛)
ip route add 10.10.0.0/16 via 192.168.1.254 dev eth0
10.10.0.0/16 ネットワーク宛のパケットを、ゲートウェイ 192.168.1.254 を経由してインターフェース eth0 から送信するように静的ルートを追加します。
静的ルート削除 (ネットワーク宛)
ip route del 10.10.0.0/16
指定したネットワーク宛の静的ルートを削除します。
静的ルート追加 (ホスト宛)
ip route add 172.16.10.5/32 via 192.168.1.253
特定のホスト(172.16.10.5)宛のパケットを指定したゲートウェイ(192.168.1.253)経由で送信するルートを追加します。/32 はホスト指定を意味します。
静的ルート削除 (ホスト宛)
ip route del 172.16.10.5/32
指定したホスト宛の静的ルートを削除します。

ポリシーベースルーティング (Rule) 🚦

送信元IPアドレスやその他の条件に基づいて、使用するルーティングテーブルを切り替えるルールを設定します。

rule オブジェクトは、どのルーティングテーブルを参照するかのルールを管理します。省略形は ru です。

目的 コマンド例 説明
ルーティングルール表示
ip rule show
または
ip ru
現在設定されているルーティングポリシーのルールを優先度順に表示します。デフォルトでは local, main, default テーブルを参照するルールが存在します。
ルール追加
# 送信元IPが 192.168.10.0/24 の場合、テーブルID 100 を参照
ip rule add from 192.168.10.0/24 table 100 priority 1000
新しいルーティングルールを追加します。送信元IP (from)、宛先IP (to)、インターフェース (iif/oif) などの条件と、参照するテーブルID (table)、優先度 (priority) を指定します。小さい優先度値が先に評価されます。テーブルIDは /etc/iproute2/rt_tables で名前を定義できます。
ルール削除
# 送信元IPが 192.168.10.0/24 でテーブルID 100 を参照するルールを削除
ip rule del from 192.168.10.0/24 table 100
指定した条件に一致するルーティングルールを削除します。表示されたルールと同じ条件を指定します。

近隣キャッシュ (Neighbour/ARP) 管理 🤝

ARPテーブル (IPv4) や NDISCキャッシュ (IPv6) の表示、追加、削除を行います。

neighbour オブジェクトは、同一リンク上の他のホストのIPアドレスとMACアドレス(レイヤー2アドレス)の対応関係を管理します。省略形は neigh または n です。

目的 コマンド例 説明
近隣キャッシュ表示 (ARP/NDISC)
ip neighbour show
または
ip n
現在の近隣キャッシュ(ARPテーブル/NDISCテーブル)のエントリ一覧を表示します。IPアドレス、MACアドレス、インターフェース、状態(STALE, REACHABLE, PERMANENTなど)が表示されます。
特定インターフェースのキャッシュ表示
ip neighbour show dev eth0
指定したインターフェース(eth0)に関連するキャッシュエントリのみを表示します。
特定IPアドレスのエントリ表示
ip neighbour show to 192.168.1.1
指定したIPアドレス(192.168.1.1)に対応するキャッシュエントリを表示します。
静的エントリ追加 (ARP)
ip neighbour add 192.168.1.50 lladdr 00:11:22:AA:BB:CC dev eth0 nud permanent
指定したIPアドレス(192.168.1.50)とMACアドレス(lladdr、Link-Layer Address)の対応を静的に追加します。nud permanent で永続的なエントリ(削除されない)として登録します。Proxy ARPなどで使用されることがあります。
エントリ削除
ip neighbour del 192.168.1.50 dev eth0
指定したIPアドレスとインターフェースに対応するキャッシュエントリを削除します。動的エントリも削除できます。
キャッシュクリア (Flush)
ip neighbour flush dev eth0
指定したインターフェース(eth0)の近隣キャッシュを全て削除します。ネットワーク構成変更後のトラブルシューティングなどで使用します。nud all を指定すると全状態のエントリを削除できます。

IPトンネル(GRE, IPIPなど)の作成、設定、削除を行います。

目的 コマンド例 説明
GREトンネル作成
ip tunnel add tun0 mode gre remote 203.0.113.1 local 198.51.100.1 ttl 255
tun0 という名前のGREトンネルインターフェースを作成します。remote で対向側の物理IPアドレス、local で自側の物理IPアドレス、ttl でトンネルパケットのTTLを指定します。
IPIPトンネル作成
ip tunnel add tun1 mode ipip remote 203.0.113.2 local 198.51.100.2
tun1 という名前のIPIPトンネルインターフェースを作成します。GREと同様に remotelocal を指定します。
トンネルインターフェース設定
# インターフェース有効化
ip link set dev tun0 up
# IPアドレス割り当て
ip addr add 10.0.0.1/30 dev tun0
作成したトンネルインターフェースを有効化し、IPアドレスを割り当てて通信可能にします。
トンネル情報表示
ip tunnel show
または
ip -d tunnel show
作成されているトンネルインターフェースの一覧や詳細情報を表示します。-d オプションで詳細表示になります。
トンネル削除
ip tunnel del tun0
指定したトンネルインターフェース(tun0)を削除します。削除前にインターフェースをDOWNさせるのが一般的です。

ネットワーク名前空間 (Netns) 管理 📦

独立したネットワーク環境(ネットワーク名前空間)の作成、管理、操作を行います。

netns オブジェクトは、ネットワーク名前空間を管理します。コンテナ技術などで活用されます。

目的 コマンド例 説明
名前空間一覧表示
ip netns list
存在するネットワーク名前空間の一覧を表示します。
名前空間作成
ip netns add myns1
myns1 という名前の新しいネットワーク名前空間を作成します。作成直後はループバックインターフェース (lo) のみが存在します。
名前空間内でコマンド実行
# myns1内でip aを実行
ip netns exec myns1 ip a
# myns1内でbashを起動
ip netns exec myns1 bash
指定した名前空間(myns1)のコンテキストでコマンドを実行します。これにより、その名前空間内のネットワーク設定を確認・変更できます。
インターフェースを名前空間へ移動
# vethペアを作成: veth-a をデフォルト名前空間に、veth-b を myns1 に
ip link add veth-a type veth peer name veth-b
# veth-b を myns1 へ移動
ip link set veth-b netns myns1
物理または仮想インターフェースを指定した名前空間に移動します。veth ペアを作成して名前空間間を接続する際などによく使われます。
名前空間削除
ip netns delete myns1
指定したネットワーク名前空間(myns1)を削除します。内部にインターフェースが残っている場合は通常削除できません。
名前空間のプロセスID (PID) 確認
ip netns pids myns1
指定した名前空間(myns1)に属しているプロセスのIDを表示します。
名前空間を識別 (ID取得)
ip netns identify <PID>
指定したプロセスIDが属するネットワーク名前空間の名前を表示します。

モニター (Monitor) 機能 👂

ネットワークの状態変化(リンクのUP/DOWN、アドレス変更、ルート変更など)をリアルタイムで監視します。

monitor オブジェクトは、カーネルからのネットワーク関連イベントを継続的に表示します。

目的 コマンド例 説明
全てのネットワークイベント監視
ip monitor all
リンク、アドレス、ルート、近隣キャッシュなど、全てのネットワークオブジェクトの状態変化を監視し、イベントが発生するたびに情報を表示します。Ctrl+C で停止します。
リンクイベント監視
ip monitor link
ネットワークインターフェース(リンク)の状態変化(UP/DOWN、MTU変更など)のみを監視します。
アドレスイベント監視
ip monitor address
IPアドレスの追加や削除などのイベントのみを監視します。
ルートイベント監視
ip monitor route
ルーティングテーブルの変更(ルート追加/削除)イベントのみを監視します。
近隣キャッシュイベント監視
ip monitor neighbour
近隣キャッシュ(ARP/NDISC)の変更イベントのみを監視します。

コメント

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