モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

ipコマンドの基本的な使い方

モーダルを閉じる

ステッカーを選択してください

お支払い手続きへ
モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2014/11/04
最終更新最終更新
2017/02/08
記事区分記事区分
一般公開

目次

    デザインパターンを活用して美しいコードを書く方法を発信しています。開発の効率化が得意です。

    ネットワーク関連のコマンドはたくさんあります。しかしながら、その一部は ip コマンドに集約できます。

    基本形 ("man ip" より抜粋)

    $ ip OBJECT COMMAND
    
    • OBJECT: link, neigh, addr, route (等)
    • COMMAND: show, add, delete (等)

    データリンク層のネットワークデバイス情報 (ifconfigコマンドの代用)

    MACアドレス ("08:00:27:1a:eb:d9", "08:00:27:85:8b:86") 等の調査ができます。

    $ /sbin/ip link show
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 08:00:27:1a:eb:d9 brd ff:ff:ff:ff:ff:ff
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 08:00:27:85:8b:86 brd ff:ff:ff:ff:ff:ff
    

    同様の機能を有するコマンドとして有名なものは /sbin/ifconfig ですが "man ifconfig" によると "ip link" の使用が推奨されています。

    ifconfig: This program is obsolete! For replacement check ip addr and ip link.

    ARPテーブルの内容を表示 (arpコマンドの代用)

    IPアドレスとMACアドレスの対応関係の情報が格納されたARPテーブルの内容を表示できます。

    $ /sbin/ip neigh show  ← neigh: neighborの略
    192.168.56.1 dev eth1 lladdr 08:00:27:00:4c:4f REACHABLE
    
    ↑192.168.56.1 というIPアドレスのホストと通信するためには
    08:00:27:00:4c:4f というMACアドレスを有するデバイスと通信ができる eth1 (dev:デバイス) を利用すればよいという情報
    

    同様の機能を有するコマンドとして有名なものは /sbin/arp ですが "man arp" によると "ip neigh" の使用が推奨されています。

    arp: This program is obsolete. For replacement check ip neighbor.

    ネットワーク層のIPアドレス情報を表示 (ifconfigコマンドの代用)

    インタフェース毎に割り当てられたIPアドレスの調査などができます。

    $ /sbin/ip addr show
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 08:00:27:1a:eb:d9 brd ff:ff:ff:ff:ff:ff
        inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
        inet6 fe80::a00:27ff:fe1a:ebd9/64 scope link
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 08:00:27:85:8b:86 brd ff:ff:ff:ff:ff:ff
        inet 192.168.56.10/24 brd 192.168.56.255 scope global eth1
        inet6 fe80::a00:27ff:fe85:8b86/64 scope link
           valid_lft forever preferred_lft forever
    

    同様の機能を有するコマンドとして有名なものは /sbin/ifconfig ですが "man ifconfig" によると "ip addr" の使用が推奨されています。

    ifconfig: This program is obsolete! For replacement check ip addr and ip link.

    ルーティングテーブルを表示 (routeおよびnetstatコマンドの代用)

    $ /sbin/ip route show
    10.0.2.0/24                   dev eth0  proto kernel  scope link  src 10.0.2.15
    192.168.56.0/24               dev eth1  proto kernel  scope link  src 192.168.56.10
    169.254.0.0/16                dev eth0                scope link  metric 1002
    169.254.0.0/16                dev eth1                scope link  metric 1003
    default         via 10.0.2.2  dev eth0
    

    用語

    • proto kernel: "the route was installed by the kernel during autoconfiguration." (man ip より。カーネルによって自動設定されたルーティング)
    • scope link: "direct unicast and broadcast routes" (man ip より。直接的なユニキャストまたはブロードキャストで使用されるルーティング)
    • 169.254.0.0/16: リンクローカルアドレス。LANよりも更に狭くリンク内でのみ有効。ルータによって転送されず 1:1 通信などで使用される

    読み取れること

    • IPパケットの送信元アドレスが "10.0.2.15" で宛先アドレスが "10.0.2.0/24" の範囲のものは eth0 デバイス(dev)を経由して送り出せばよい
    • IPパケットの送信元アドレスが "192.168.56.10" で宛先アドレスが "192.168.56.0/24" の範囲のものは eth1 デバイス(dev)を経由して送り出せばよい
    • IPパケットの送信元アドレスは問わず、宛先アドレスが "169.254.0.0/16" の範囲のものは eth0 または eth1 デバイス(dev)を経由して送り出せばよい
    • 上記ルーティングで対応できないものは eth0 デバイス(dev) を経由して "10.0.2.2" に転送を依頼すればよい

    同様の機能を有するコマンドとして有名なものは /sbin/route および /bin/netstat -rn ですが "man route" および "man netstat" によると "ip route" の使用が推奨されています。

    route: This program is obsolete. For replacement check ip route.

    netstat: This program is obsolete. Replacement for netstat -r is ip route.

    Likeボタン(off)0
    詳細設定を開く/閉じる
    アカウント プロフィール画像

    デザインパターンを活用して美しいコードを書く方法を発信しています。開発の効率化が得意です。

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    >>さらに詳しくステッカーを贈る
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      ログインする

      関連記事

      • 使い所が難しいマイナーな運用コマンド
        コマンドのエイリアスを登録する (update-alternatives) mybin という名前のコマンドを登録 sudo update-alternatives --install /usr/local/bin/mybin mybin /usr/bin/echo 10 sudo update-alternatives --install /usr/local/bin/mybin mybin /...
        けんちゃんけんちゃん11/1/2022に更新
        いいねアイコン画像0
      • プロセス関連のコマンド
        サムネイル画像-7b5901f600
        プロセスID関連 (ps, pgrep, pkill) 全プロセスを表示するためには $ ps ax とすればよく、その表示を見やすくするためには "u" と "w" を追加して $ ps auxw とすればよいです。表示件数自体は同じです。そのうち特定のコマンドのプロセスIDだけを表示したい場合は $ ps ax | grep 'my_script' | grep -v grep | awk '...
        kenken11/27/2021に更新
        いいねアイコン画像0
      • rpmとyumのチートシート
        サムネイル画像-f69c6665b8
        rpm (RedHat Package Manager または RPM Package Manager) はRedHat系のパッケージ管理ツールで、yum (Yellowdog Updater Modified) は内部的にrpmを実行するメタパッケージ管理ツールです。rpmには柔軟性がありyumには利便性があります。 rpmは "rpmパッケージファイル" があれば何でもインストールできますが、...
        まるたんまるたん2/2/2022に更新
        いいねアイコン画像0
      • メモリおよびディスクリソースを調査するために便利なコマンドおよび周辺知識
        メモリ使用量を表示 (free) 既定ではキロバイト単位で表示されます。オプション "-b", "-k", "-m", "-g" を付与して実行するとそれぞれバイト、キロ、メガ、ギガで表示されます。 $ free total used free shared buffers cached Mem: 510824 ...
        しおまめしおまめ8/30/2017に更新
        いいねアイコン画像0
      • 運用時に大活躍する必須コマンド
        ファイル内容を再帰的に検索 (grep) find コマンドはファイル名についてディレクトリを再帰的に検索します。ファイルの内容について指定したディレクトリ以下を再帰的に検索するためには grep に -r オプションを付与します。その際 -n および -i オプションも付与しておくと便利です。未来創発 NRI grep です。 $ grep -nri "pattern" dir -n (--li...
        ねこねこ9/7/2021に更新
        いいねアイコン画像0