ipコマンドでネットワーク設定を確認・変更する方法|ifconfigとの違いやアドレス追加も


この記事の監修:宮崎智広(Linux教育歴15年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips > ipコマンドでネットワーク設定を確認・変更する方法|ifconfigとの違いやアドレス追加も
「ネットワークの設定を変えようとしたら ifconfig が動かない。ip コマンドって何?」
そんな疑問を持ったことはありませんか?
RHEL 8 以降の環境では ifconfig がデフォルトで入っていないことがあり、
代わりに ip コマンドを使うことが当たり前になっています。

この記事では、ip コマンドの実践的な使い方を解説します。
IPアドレスの確認・追加・削除から、ルーティングの操作、リンク(NIC)の有効化・無効化まで、
現場でよく使う操作をひとまとめにカバーします。
動作確認環境:RHEL 9.4 / Ubuntu 24.04 LTS

【この記事でわかること】

・ip コマンドは ifconfig の後継で RHEL 8以降は標準
・ip addr でIPアドレスの確認・追加・削除ができる
・ip route でルーティングテーブルの確認と変更が可能
・追加した設定は再起動で消えるためnmcliで永続化が必要


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

なぜ 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 コマンドは サブコマンド体系 を採用しています。
`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

注意:リモートSSH接続中に使用しているNICをダウンさせると、
その場で接続が切れてサーバーに戻れなくなります。本番環境では絶対に慎重に操作してください。

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

secondary と表示されているのが追加したアドレスです。
元のアドレス(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

ip コマンドはあくまで「今すぐ確認・試す」ための道具です。
本番環境での永続的な設定変更は 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

障害対応中など急いでいる場面では、`-brief` オプションで情報を素早く把握できます。

「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

REACHABLE:通信可能な状態を示します。
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日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。


暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録

宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。