最終更新日 2025年9月10日

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セキュリティスペシャリストなどの資格を保有しています。







