そんな疑問を持ったことはありませんか?
RHEL 8 以降の環境では ifconfig がデフォルトで入っていないことがあり、
代わりに ip コマンドを使うことが当たり前になっています。
この記事では、ip コマンドの実践的な使い方を解説します。
IPアドレスの確認・追加・削除から、ルーティングの操作、リンク(NIC)の有効化・無効化まで、
現場でよく使う操作をひとまとめにカバーします。
動作確認環境:RHEL 9.4 / Ubuntu 24.04 LTS
【この記事でわかること】
・ip コマンドは ifconfig の後継で RHEL 8以降は標準
・ip addr でIPアドレスの確認・追加・削除ができる
・ip route でルーティングテーブルの確認と変更が可能
・追加した設定は再起動で消えるためnmcliで永続化が必要
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
なぜ ip コマンドが必要なのか? ifconfig との違い
ifconfig はかつてのLinux標準コマンドでしたが、現在は「非推奨」扱いです。RHEL 8 / CentOS Stream 8 以降では net-tools パッケージ(ifconfig, netstat, route 等を含む)が
デフォルトインストールされなくなりました。
その代替として登場したのが ip コマンドです。
ip コマンドは iproute2 パッケージに含まれており、ほぼすべての現代的なLinuxディストリビューションで
標準提供されています。
ifconfig と ip コマンドの対応表を見ると、その違いがよくわかります。
| やりたいこと | ifconfig(旧) | ip コマンド(新) |
|---|---|---|
| IPアドレス確認 | ifconfig |
ip addr show |
| ルーティング確認 | route -n |
ip route show |
| インターフェース有効化 | ifconfig eth0 up |
ip link set eth0 up |
| ARPテーブル確認 | arp -n |
ip neigh show |
`ip addr`(アドレス操作)、`ip link`(リンク/NIC操作)、`ip route`(ルーティング操作)のように、
操作対象を明示してから具体的な命令を続ける形です。
また、ifconfig コマンドの使い方と比べると、
ip コマンドはIPv6への対応が充実しており、より詳細なネットワーク情報を扱えます。
基本的な使い方
1. IPアドレスを確認する(ip addr)
ネットワーク診断の第一歩は、現在のIPアドレスを確認することです。ip addr show(省略して `ip a` とも書けます)を実行します。
# IPアドレスを全インターフェース分表示する # ip addr show # または省略形 # ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 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: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:50:56:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 192.168.1.101/24 brd 192.168.1.255 scope global dynamic ens192 valid_lft 85421sec preferred_lft 85421sec inet6 fe80::250:56ff:fexx:xxxx/64 scope link valid_lft forever preferred_lft forever
・inet 192.168.1.101/24:IPv4アドレスとプレフィックス長(サブネットマスクの長さ)
・inet6 fe80::...:IPv6のリンクローカルアドレス(自動付与される)
・state UP:インターフェースが有効になっていることを示す
・dynamic:DHCPで自動取得したアドレスを示す
特定のインターフェース(例:ens192)だけ確認したい場合は、名前を指定します。
# 特定のインターフェースだけ確認する # ip addr show ens192 2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:50:56:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 192.168.1.101/24 brd 192.168.1.255 scope global dynamic ens192 valid_lft 85421sec preferred_lft 85421sec
2. リンク(NIC)の状態を確認・変更する(ip link)
NIC(ネットワークインターフェースカード)の有効/無効状態を管理するのが `ip link` コマンドです。物理的な接続情報(MACアドレス、MTU値など)もここで確認できます。
# すべてのNICのリンク状態を確認する # ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 00:50:56:xx:xx:xx brd ff:ff:ff:ff:ff:ff # NICを無効化する(ダウン) # ip link set ens192 down # NICを有効化する(アップ) # ip link set ens192 up
その場で接続が切れてサーバーに戻れなくなります。本番環境では絶対に慎重に操作してください。
3. ルーティングテーブルを確認・変更する(ip route)
パケットがどの経路(ゲートウェイ)を通るかを決めるルーティングテーブルは、`ip route show` で確認できます。
# ルーティングテーブルを表示する # ip route show default via 192.168.1.1 dev ens192 proto dhcp src 192.168.1.101 metric 100 192.168.1.0/24 dev ens192 proto kernel scope link src 192.168.1.101
・default via 192.168.1.1:デフォルトゲートウェイが 192.168.1.1 であることを示す
・proto dhcp:DHCPで自動設定されたルートを示す
・192.168.1.0/24 dev ens192:この範囲のIPはens192経由でローカルに通信する
スタティックルートを一時的に追加・削除する場合は以下のコマンドを使います。
# スタティックルートを追加する(10.0.0.0/8 宛は 192.168.1.254 経由) # ip route add 10.0.0.0/8 via 192.168.1.254 dev ens192 # 追加したルートを確認する # ip route show default via 192.168.1.1 dev ens192 proto dhcp src 192.168.1.101 metric 100 10.0.0.0/8 via 192.168.1.254 dev ens192 192.168.1.0/24 dev ens192 proto kernel scope link src 192.168.1.101 # スタティックルートを削除する # ip route del 10.0.0.0/8 via 192.168.1.254 dev ens192
応用・実務Tips
IPアドレスを一時的に追加・削除する
テスト用や一時的な用途でIPアドレスを追加したい場面はよくあります。ip addr add / del コマンドで、既存の設定を崩さずに追加できます。
# IPアドレスを一時的に追加する(ens192 に 192.168.1.200/24 を追加) # ip addr add 192.168.1.200/24 dev ens192 # 追加されたか確認する # ip addr show ens192 2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:50:56:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 192.168.1.101/24 brd 192.168.1.255 scope global dynamic ens192 valid_lft 85421sec preferred_lft 85421sec inet 192.168.1.200/24 scope global secondary ens192 valid_lft forever preferred_lft forever # 追加したIPアドレスを削除する # ip addr del 192.168.1.200/24 dev ens192
元のアドレス(192.168.1.101)は消えずに残っています。
ただし、この追加は再起動すると消えます。
永続化するには、後述の nmcli(NetworkManager)を使って設定を書き込む必要があります。
デフォルトゲートウェイを一時的に変更する
ゲートウェイ変更が必要な障害対応の場面でも、ip コマンドが使えます。# 既存のデフォルトゲートウェイを削除する # ip route del default # 新しいデフォルトゲートウェイを設定する # ip route add default via 192.168.1.254 # 確認する # ip route show default via 192.168.1.254 dev ens192 192.168.1.0/24 dev ens192 proto kernel scope link src 192.168.1.101
設定を永続化する方法(nmcli)
ip コマンドで行った変更はメモリ上の設定であり、再起動するとすべて元に戻ります。RHEL / CentOS Stream / Rocky Linux 環境で設定を永続化するには、
nmcli(NetworkManagerの操作コマンド)を使うのが現場の鉄則です。
# nmcli で IPv4 アドレスを固定IPに変更する(永続化) # nmcli connection modify ens192 ipv4.addresses 192.168.1.101/24 # nmcli connection modify ens192 ipv4.gateway 192.168.1.1 # nmcli connection modify ens192 ipv4.dns 192.168.1.1 # nmcli connection modify ens192 ipv4.method manual # 設定を有効化する # nmcli connection up ens192
本番環境での永続的な設定変更は nmcli か、/etc/NetworkManager/system-connections/ の
設定ファイルを直接編集することを検討してください。
ネットワークポートの確認には、ss コマンドと組み合わせると
より詳細な状態を把握できます。
ip コマンドの出力を絞り込む
実務では余分な情報を省いて確認したい場面もあります。・ip -4 addr show:IPv4アドレスのみ表示
・ip -6 addr show:IPv6アドレスのみ表示
・ip -brief addr show:コンパクトな表示形式で確認
# IPv4アドレスのみをコンパクトに表示する # ip -4 -brief addr show lo UNKNOWN 127.0.0.1/8 ens192 UP 192.168.1.101/24
「RTNETLINK answers: File exists」「Cannot assign requested address」が出た時の対処法
ip コマンドでエラーが発生する場合の主なケースと対処法をまとめます。「RTNETLINK answers: File exists」エラー
同じIPアドレスやルートが既に設定されている場合に発生します。# エラー例 # ip addr add 192.168.1.101/24 dev ens192 RTNETLINK answers: File exists # 対処:まず現在の設定を確認する # ip addr show ens192 # 不要なアドレスを削除してから追加し直す # ip addr del 192.168.1.101/24 dev ens192 # ip addr add 192.168.1.101/24 dev ens192
「Cannot assign requested address」エラー
指定したIPアドレスがインターフェースのサブネット範囲外の場合に発生します。例えば、192.168.1.101/24 のインターフェースに 10.0.0.1/24 を追加しようとした場合などです。
サブネットマスク(プレフィックス長)を正しく設定しているか確認してください。
ip コマンド自体が見つからない場合
古いシステムや最小インストール環境では iproute2 パッケージが入っていないことがあります。# RHEL / CentOS Stream / Rocky Linux の場合 # dnf install iproute # Ubuntu / Debian の場合 # apt install iproute2
NICがダウンした後、ip link set up しても通信できない
ip link set up でリンクを復活させても、IPアドレスが失われている場合があります。ダウン前に `ip addr show` で設定を控えておき、アップ後に再設定が必要です。
また、ping コマンドで通信が回復しているか確認するのを忘れないでください。
ARPテーブル(隣接ホストの情報)を確認したい場合
同一セグメント内の他のホストとの通信状況を確認したい場合は `ip neigh show` を使います。netstat コマンドでは確認できないARP情報を素早く把握できます。
# ARPテーブルを表示する # ip neigh show 192.168.1.1 dev ens192 lladdr xx:xx:xx:xx:xx:xx REACHABLE 192.168.1.50 dev ens192 lladdr xx:xx:xx:xx:xx:xx STALE
STALE:キャッシュが古くなっており、次の通信時に再確認されます。
本記事のまとめ
ip コマンドの主要な操作を一覧にまとめます。| やりたいこと | コマンド |
|---|---|
| 全NICのIPアドレスを確認する | ip addr show |
| 特定NICのIPアドレスを確認する | ip addr show ens192 |
| IPv4のみをコンパクトに表示する | ip -4 -brief addr show |
| IPアドレスを一時的に追加する | ip addr add 192.168.1.200/24 dev ens192 |
| IPアドレスを削除する | ip addr del 192.168.1.200/24 dev ens192 |
| NICを有効化する | ip link set ens192 up |
| NICを無効化する | ip link set ens192 down |
| ルーティングテーブルを確認する | ip route show |
| スタティックルートを追加する | ip route add 10.0.0.0/8 via 192.168.1.254 dev ens192 |
| スタティックルートを削除する | ip route del 10.0.0.0/8 via 192.168.1.254 dev ens192 |
| ARPテーブル(隣接ホスト情報)を確認する | ip neigh show |
ネットワーク設定でつまずいたとき、毎回ネット検索に頼っていませんか?
ip コマンドの使い方を知っていても、実際の障害対応で「どのコマンドを使うべきか」が瞬時に判断できなければ、現場では役に立ちません。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
