Linuxでネットワークの設定をするとき、構成にも確認にも使える万能コマンドにipというコマンドがある。
この記事では、このipコマンドの使い方を解説し、できることをまとめる。
- ipコマンド概要
- コマンド解説
- オプション
- -V, -Version
- -h, -human, -human-readable
- -b, -batch <ファイル名>
- -force
- -s, -stats, -statistics
- -d, -details
- -l, -loops <カウント>
- -f, -family <ファミリ>
- -4
- -6
- -B
- -M
- -0
- -o, -oneline
- -r, -resolve
- -n, -netns <ネームスペース>
- -N, -Numeric
- -a, -all
- -c[color][={always|auto|never}]
- -t, -timestamp
- -ts, -tshort
- -rc, -rcvbuf
- -iec
- -br, -brief
- -j, -json
- -p, -pretty
- オプション
- まとめ
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コマンドで指定できるオブジェクトを解説し、その後各種ユースケースを紹介します。