komeの備忘録

東大院卒外資ITエンジニアの技術ブログ

IPコマンド: ネットワークをコマンドラインから操作する

Linuxでネットワークの設定をするとき、構成にも確認にも使える万能コマンドにipというコマンドがある。
この記事では、このipコマンドの使い方を解説し、できることをまとめる。

ipコマンド概要

ipコマンドの正体は、iproute2というコマンドである。
最新のipコマンドのソースコードは次のリンクから確認できる。
iproute2/iproute2.git - Iproute2 routing commands and utilities

併せて以下が公式のリファレンスとなっている。 https://wiki.linuxfoundation.org/networking/iproute2

余談: iproute1ってあるの? 一応調べてみたけどよくわかんなかった。。知っている人いたらコメントください。。

コマンド解説

オプション

ip に続けて、以下のコマンドを入力することで様々な挙動をします。

-V, -Version

バージョンを表示します

-h, -human, -human-readable

出力値を人間が読みやすい値にします

-b, -batch <ファイル名>

ファイルからコマンドを読み込みます

-force

バッチモードでのエラーでipコマンドを停止させません。バッチコマンドの中でどれかのコマンドがエラーしたら、アプリケーションはゼロではない値を返します。

-s, -stats, -statistics

詳細な情報を出力します。二度以上このオプションを使った場合、情報量が増加します。原則、出力情報は統計値か時間値です。

-d, -details

詳細な情報とともに出力します

-l, -loops <カウント>

"ip address flush"の最大ループ数を指定します。デフォルトは10であり、0はすべてのアドレスが除去するまで続けることを意味します。

-f, -family <ファミリ>

inet, inet6, ridge, mpls, link といったプロトコルファミリを指定します。このオプションがなければ、プロトコルファミリは他のコマンドから推測されます。他のコマンドがなければ、ip は inet もしくは any をデフォルトで指定します。link は特殊なファミリで、ネットワークプロトコルを指定しないときに使います。

-4

"-family inet"のショートカット

-6

"-family inet6"のショートカット

-B

"-family bridge"のショートカット

-M

"-family mpls"のショートカット

-0

"-family link"のショートカット

-o, -oneline

出力を1行にし、開業を"¥"で置き換えます。

-r, -resolve

システムのネームリゾルバを使い、ホストアドレスの代わりにDNSネームを出力します

-n, -netns <ネームスペース>

ip をネームスペースで指定した別のネットワークネームスペースに変更します。

-N, -Numeric

プロトコル番号、スコープ、dsfieldなどを人間が読める形にせず、直接出力します。

-a, -all

すべてのオブジェクトを対象にします。

-c[color][={always|auto|never}]

出力の色を制御します。2つめのパラメタが省略された場合は、"always"が選択され、カラー出力が有効になります。
"auto"が選択された場合は、カラー出力を有効にする前に、ターミナルの出力を制御します。
"never"が選択された場合は、カラー出力は無効になります。 JSONが指定されるとこのオプションは無視されます。

-t, -timestamp

タイムスタンプを出力に表示します

-ts, -tshort

タイムスタンプを簡潔に表示します

-rc, -rcvbuf

netlink ソケットの受信バッファサイズを指定します。デフォルトでは1MBです。

-iec

人間の読みやすいIEC単位で出力します

-br, -brief

出力を簡潔にします

-j, -json

出力をJSON形式にします

-p, -pretty

デフォルトのJSONでは人間が読みにくいので、このオプションを付けることでJSONの読みやすさが向上します。

まとめ

長くなったので一旦切り上げます。 次回はIPコマンドで指定できるオブジェクトを解説し、その後各種ユースケースを紹介します。

(C) komee.org