最終更新日 2025年3月19日

Linuxのip
コマンドとは?基本概要を理解しよう
本セクションでは以下の内容について解説します。
ip
コマンドとは?ifconfig
との違い
ip
コマンドは、ifconfig
の後継として推奨されるネットワーク管理コマンドです。より詳細な情報を取得でき、多くの新しいネットワーク機能に対応しています。
Linuxのネットワーク設定や管理には、以前はifconfig
コマンドが一般的に使用されていました。しかし、現在ではifconfig
は非推奨となり、代わりに**ip
コマンド**が標準的なツールとして推奨されています。
ip
コマンドのメリット
- 詳細なネットワーク情報を取得できる(インターフェースの状態、IPアドレス、ルーティングなど)
ifconfig
では対応できない新機能をサポート(VLAN、トンネル、ポリシールーティングなど)- より直感的で統一されたコマンド体系を持つ

先輩、ifconfig
ってもう使えないんですか?

いや、一部のLinuxディストリビューションではまだ使えるよ。でも、ip
コマンドの方が推奨されていて、ifconfig
は非推奨になっているんだ。

ip
コマンドの方が何がいいんですか?

例えば、ifconfig
ではインターフェースの状態やIPアドレスの情報しか見られないけど、ip
コマンドならルーティングやARPテーブルの情報も確認できるんだ。機能が豊富で拡張性が高いから、今後の運用を考えるとip
コマンドを覚えておいた方がいいよ。

なぜip
コマンドが推奨されるのか?
ip
コマンドは、最新のLinuxネットワークスタックに対応し、新機能をサポートするため推奨されています。ifconfig
は非推奨となり、将来的に削除される可能性があります。
ifconfig
は古いネットワーク管理コマンドであり、新しいカーネル機能に対応していません。そのため、ip
コマンドが標準となりました。
主な違いは以下の通りです。
項目 | ifconfig | ip コマンド |
---|---|---|
開発状況 | 非推奨 | 推奨 |
IPアドレス管理 | 可能 | 可能 |
ルーティング管理 | 不可 | 可能 |
VLAN・トンネル対応 | 一部対応 | 完全対応 |
ネットワーク情報の取得 | 限定的 | 詳細な情報が取得可能 |

でも、ifconfig
の方が簡単じゃないですか?

確かに短くてシンプルだけど、ip
コマンドはもっと細かい設定ができるし、機能も豊富なんだ。長期的に考えたらip
コマンドを使うべきだよ。

ip
コマンドでできること一覧
ip
コマンドは、ネットワークインターフェースの設定、IPアドレスの管理、ルーティング、ARPテーブル管理など多くの機能を提供します。
主な機能は以下の通りです。
- ネットワークインターフェースの確認 (
ip a
/ip link show
) - IPアドレスの追加・削除 (
ip addr add
/ip addr del
) - ルーティングの確認・設定 (
ip r
/ip route add
) - ARPテーブルの管理 (
ip n show
) - ネットワークインターフェースの有効化・無効化 (
ip link set up/down
)

なるほど…ip
コマンドを覚えれば、ネットワーク管理が楽になりそうですね。

そうだね。特にip a
とip r
はよく使うから、まずはここから覚えてみるといいよ。

Linux ip
コマンドの基本的な使い方
本セクションでは以下の内容について解説します。
ip
コマンドの基本構文とオプション
ip
コマンドは「ip [オブジェクト] [サブコマンド] [オプション]
」の形式で使用します。
構文
ip [オブジェクト] [サブコマンド] [オプション]
主なオブジェクト
addr
(IPアドレスの管理)link
(ネットワークインターフェースの管理)route
(ルーティングの管理)neigh
(ARPテーブルの管理)

ip
コマンドの基本的な書き方って、何かルールがあるんですか?

基本は、ip
の後に管理対象(オブジェクト)を指定して、次にサブコマンドを書く形だね。例えば、ip addr show
はIPアドレスを表示するコマンドだよ。
![ipコマンドの基本構文
基本形式
ip [オブジェクト] [サブコマンド] [オプション]
主なオブジェクト
addr, link, route, neigh
サブコマンド例
show, add, del, set](https://www.goritarou.com/wp-content/uploads/2025/03/image-97-1024x378.png)
ネットワークインターフェースの確認 (ip a
の使い方)
ip a
コマンドを使うと、すべてのネットワークインターフェースのIPアドレスを確認できます。
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 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
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP qlen 1000
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.10/24 brd 192.168.1.255 scope global dynamic eth0
valid_lft 3600sec preferred_lft 3600sec
または、特定のインターフェースの情報を取得する場合は以下のように指定します。
$ ip a show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP qlen 1000
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.10/24 brd 192.168.1.255 scope global dynamic eth0
valid_lft 3600sec preferred_lft 3600sec

ifconfig
の代わりに、ネットワークの状態を確認する方法は?

ip a
で同じ情報が見られるよ。さらに、ip link show
を使えば、インターフェースの詳細な状態も確認できる。

ルーティングテーブルの確認 (ip r
の使い方)
ip r
コマンドを使うと、現在のルーティングテーブルを確認できます。
$ ip r
default via 192.168.1.1 dev eth0 proto dhcp metric 100
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10 metric 100
デフォルトゲートウェイを追加する場合
$ ip route add default via 192.168.1.1( デフォルトゲートウェイIPアドレス)
(出力なし)※ 設定が正常に追加された場合は何も出力されません。ip rで確認できます。

ルーティングテーブルの確認はどうすればいいですか?

ip r
を実行すれば、現在のルート情報が見られるよ。

ARPテーブルの確認 (ip n
の使い方)
ip n show
を使うと、現在のARPテーブルを確認できます。
$ ip n show
192.168.1.1 dev eth0 lladdr 52:54:00:aa:bb:cc STALE
192.168.1.20 dev eth0 lladdr 52:54:00:dd:ee:ff REACHABLE
特定のエントリを削除する場合
$ ip neigh del 192.168.1.10 dev eth0
(出力なし)

ARPのキャッシュを確認したいときは?

ip n show
を使えば、ARPテーブルの情報が確認できるよ。
![ARPテーブルの確認
確認コマンド
ip n show
エントリ削除
ip neigh del [IPアドレス] dev [デバイス]
キャッシュ更新
ping実行後に再確認](https://www.goritarou.com/wp-content/uploads/2025/03/image-100-1024x457.png)
Linuxのネットワーク設定:ip
コマンドの応用編
本セクションでは以下の内容について解説します。
- IPアドレスの追加・削除 (ip addr add/del)
- デフォルトゲートウェイの設定 (ip route add default via)
- VLAN設定 (ip link add link eth0 name eth0.100 type vlan id 100)
- ネットワークインターフェースの有効化・無効化 (ip link set dev eth0 up/down)
IPアドレスの追加・削除 (ip addr add/del
)
結論ip addr add
でIPアドレスを追加し、ip addr del
で削除できます。
設定は再起動でリセットされるため、恒久的に設定するには/etc/network/interfaces
や/etc/sysconfig/network-scripts/
を編集する必要があります。
IPアドレスの追加
$ ip addr add 192.168.1.100/24 dev eth0
(出力なし)
IPアドレスの削除
$ ip addr del 192.168.1.100/24 dev eth0
(出力なし)

IPアドレスを追加したのに、再起動したら消えました!

ip addr add
で設定したIPアドレスは、一時的なものなんだ。恒久的に設定したいなら、/etc/network/interfaces
(Debian系)や/etc/sysconfig/network-scripts/
(RHEL系)を編集する必要があるよ。

デフォルトゲートウェイの設定 (ip route add default via
)
ip route add default via
を使うことで、デフォルトゲートウェイを設定できます。これも再起動後には消えるため、永続化するにはネットワーク設定ファイルを編集する必要があります。
デフォルトゲートウェイの追加
$ ip route add default via 192.168.1.1
(出力なし)※ 設定が正常に追加された場合は何も出力されません。
デフォルトゲートウェイの削除
$ ip route del default via 192.168.1.1
(出力なし)※ 設定が正常に追加された場合は何も出力されません。

ネットワークがつながらないんですが、どうすればいいですか?

まずはデフォルトゲートウェイが正しく設定されているか確認しよう。ip route
を実行して、デフォルトルートがあるかチェックしてみて。

VLAN設定 (ip link add link eth0 name eth0.100 type vlan id 100
)
ip link add
を使用することで、仮想LAN(VLAN)を設定できます。
これにより、1つの物理インターフェース上で複数の論理ネットワークを作成できます。
VLANインターフェースの作成
$ ip link add link eth0 name eth0.100 type vlan id 100
(出力なし)
VLANインターフェースの削除
$ ip link del eth0.100
(出力なし)

VLANを設定したいのですが、どうすればいいですか?

ip link add
コマンドを使えば、VLANインターフェースを作れるよ。ただし、スイッチ側の設定もVLAN IDに合わせて設定されているか確認しよう。

ネットワークインターフェースの有効化・無効化 (ip link set dev eth0 up/down
)
ip link set dev eth0 up/down
を使うことで、ネットワークインターフェースを有効または無効にできます。インターフェースの動作確認やトラブルシューティング時に便利です。
インターフェースを有効化する
$ ip link set dev eth0 up
(出力なし)
インターフェースを無効化する
$ ip link set dev eth0 down
(出力なし)

NICが動いていないみたいなんですが、確認方法はありますか?

まず、ip link show
でインターフェースの状態を確認してみよう。もしDOWN
になっていたら、ip link set eth0 up
で有効化できるよ。

ip
コマンドをより便利に使う小技・便利なTIPS
本セクションでは以下の内容について解説します。
エイリアスを設定する
エイリアスを設定することで、ip
コマンドをより簡単に使えるようになります。
エイリアスの例(~/.bashrc
または ~/.zshrc
に追加)
alias ipa='ip a'
alias ipr='ip r'
alias ipn='ip n'
設定を反映させるには、以下のコマンドを実行します。
source ~/.bashrc

ip
コマンドって長くて面倒じゃないですか?

エイリアスを設定すれば、短縮して使えるよ。例えばipa
でip a
を実行できるようにできる。

スクリプトでネットワーク設定を自動化する方法
ip
コマンドをシェルスクリプトに組み込むことで、ネットワーク設定を自動化できます。
例えば、特定のIPアドレスを設定し、デフォルトゲートウェイを追加するスクリプト:
#!/bin/bash
ip addr add 192.168.1.100/24 dev eth0
ip route add default via 192.168.1.1
echo "ネットワーク設定が完了しました。"
このスクリプトを実行可能にする
chmod +x setup_network.sh

サーバーをセットアップするたびにip
コマンドを手入力するのが面倒です。

スクリプトを作成すれば、一度のコマンド実行で設定を適用できるよ。

Linux ip
コマンドの利用事例と失敗談
ip
コマンドはLinuxのネットワーク管理において非常に強力なツールですが、適切に運用しなければネットワークの大規模な障害を引き起こす可能性があります。特に、仮想ネットワーク環境やポリシールーティング、リモート環境での設定変更時には慎重な取り扱いが求められます。
本記事では、実際の現場でのip
コマンドの利用事例と失敗談を紹介し、より安全かつ効果的に利用するためのポイントを解説します。
- DDoS攻撃を受けたサーバーの復旧
- VRRPを使用したフェイルオーバー時にIPアドレス競合が発生
- ポリシールーティングを設定ミスし、パケットが消失
- リモート環境でNICを誤って無効化し、SSH接続が切断
利用事例❶DDoS攻撃を受けたサーバーの復旧
あるLinuxサーバーがDDoS攻撃を受け、ISP側でトラフィックが制限されてしまい、ネットワークが完全に遮断されました。このような場合、通常はISPの対応を待つしかありませんが、幸い新しいIPアドレスがすぐに提供されたため、ip
コマンドを利用して迅速に対応できました。
ip addr add 203.0.113.200/24 dev eth0
ip route change default via 203.0.113.1
この設定により、新しいIPアドレスを即座に割り当て、サーバーを復旧させることができました。その後、古いIPアドレスを削除することでDDoS攻撃を回避し、サービスの継続が可能となりました。
ip addr del 192.168.1.10/24 dev eth0
失敗談❶VRRPを使用したフェイルオーバー時にIPアドレス競合が発生
VRRP(Virtual Router Redundancy Protocol)を使用した冗長構成のネットワークで、手動でip
コマンドを使って仮想IPを追加したことで、ネットワーク全体が不安定になったことがありました。
VRRPでは、仮想IPはマスターとスレーブの切り替えによって自動的に管理されますが、管理者が誤って以下のコマンドを手動実行しました。
ip addr add 192.168.1.1/24 dev eth0
この結果、VRRPのアルゴリズムが混乱し、ネットワーク全体でIPアドレスの衝突が発生しました。ARPテーブル上に同じIPの異なるMACアドレスが登録され、パケットロスが急増しました。原因を特定するためにip n show
でARPテーブルを確認したところ、同じIPが複数の異なるデバイスで使用されていることが判明しました。
VRRP環境では手動で仮想IPを追加せず、専用の管理ツールや適切な設定ファイルを利用するべきでした。
スポンサーリンク失敗談❷ポリシールーティングを設定ミスし、パケットが消失
Linuxのポリシールーティングを使い、特定のトラフィックをVPN経由にルーティングしようとした際、適切なデフォルトゲートウェイを設定しなかったことで、パケットが消失する事態が発生しました。
設定ミスの内容は以下の通りです。
ip rule add from 192.168.1.100 table 100
このコマンドにより、特定のIPアドレスのパケットがルーティングテーブル100を使うようになりましたが、このテーブルにはデフォルトゲートウェイが設定されていませんでした。
ip route show table 100
結果として、このIPアドレスからのパケットがルーティングされず、通信が完全に途絶えました。解決策として、適切なデフォルトゲートウェイを設定することで復旧できました。
ip route add default via 10.0.0.1 table 100
ポリシールーティングを利用する場合は、ルートテーブルを適切に設定することが大事です。
失敗談❸リモート環境でNICを誤って無効化し、SSH接続が切断
SSHでリモート接続しているサーバー上で誤ってNICを無効化してしまい、管理者がアクセス不能になる事態が発生しました。
ip link set dev eth0 down
このコマンドを実行した瞬間、SSH接続が切断され、管理者はサーバーに再度ログインできなくなりました。結果として、データセンターの管理者に依頼し、物理コンソールから復旧作業を行う必要が生じました。
このような事態を防ぐため、リモート作業時には、事前に管理用の別ネットワーク(IPMI、iLOなど)を用意するか、at
コマンドや nohup
を使って一定時間後にインターフェースを復旧するスクリプトを仕込んでおくと安全です。

ゴリタン
インフラエンジニアとして、ネットワークとサーバーの運用・保守・構築・設計に幅広く携わり、
現在は大規模政府公共データの移行プロジェクトを担当。
CCNPやLPICレベル3、AWSセキュリティスペシャリストなどの資格を保有しています。