CentOS/LinuxでDHCPのIPアドレスを再取得する方法【dhclient・nmcli・NetworkManager対応 2026年版】
LinuxマシンのIPアドレスがDHCPで払い出されているとき、「ネットワークの設定を変えたのにIPが変わらない」「別のサブネットに移動したのに古いIPのままになっている」という状況は珍しくありません。
このガイドでは、CentOS/RHEL、Ubuntu/Debian、Arch Linuxを含む主要ディストリビューションに対応した、DHCPのIPアドレスを再取得する方法をコマンドレベルで解説します。環境に応じた正しいコマンドを選べるよう、ディストリビューション別の対処法一覧も掲載しています。
実際に各コマンドの動作を検証し、出力例も含めて記載しています。

前提条件
このガイドを進める前に、以下を確認してください。
- 環境: CentOS 7/8/Stream、RHEL 7/8/9、Ubuntu 18.04〜24.04、Debian 10〜12、Arch Linux
- 必要な権限:
rootまたはsudo実行権限 - 前提知識: コマンドラインの基本操作(コマンド入力・オプション指定)
# 現在のネットワークインターフェース名と割り当てIPを確認
ip addr show
# または(旧コマンド)
ifconfig -a
注意: CentOS 7以降では伝統的な
eth0ではなく、ens33やenp0s3などの予測可能なネットワークインターフェース名が使用されます。コマンド実行前に必ずインターフェース名を確認してください。
全体の流れ
このガイドは以下の6つの方法で構成されています。環境に応じた方法を選んでください。
- dhclientコマンドを使う方法 — 旧来のディストリビューション向け
- nmcliコマンドを使う方法 — NetworkManager環境向け(推奨)
- systemctlでNetworkManagerを再起動する方法 — 全インターフェースをリセット
- ifup / ifdownコマンドを使う方法 — Debian/Ubuntu系
- ip linkコマンドを使う方法 — より低レベルな制御
- ディストリビューション別の対処法一覧

ステップ1: dhclientコマンドを使う方法
dhclientはDHCPクライアントの伝統的なコマンドで、CentOS 6系やRHEL 6系、古いUbuntuで広く使われていました。現在でも多くのディストリビューションに同梱されています。
IPアドレスの解放(DHCPRELEASE)
まず現在のIPアドレスをDHCPサーバに返却します。
# インターフェース名を指定して解放
sudo dhclient -r eth0
# または全インターフェースを解放
sudo dhclient -r
実行例(出力あり):
Internet Systems Consortium DHCP Client V3.0.5-RedHat
Copyright 2004-2006 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Listening on LPF/eth0/00:0c:29:xx:xx:xx
Sending on LPF/eth0/00:0c:29:xx:xx:xx
Sending on Socket/fallback
DHCPRELEASE on eth0 to 192.168.1.1 port 67
DHCPRELEASE on eth0 to 192.168.1.1 port 67 の行が表示されれば、DHCPサーバへの返却が成功しています。
IPアドレスの再取得(DHCPDISCOVER → DHCPACK)
# インターフェースを指定して再取得
sudo dhclient eth0
# または(インターフェース名なし)
sudo dhclient
実行例(出力あり):
Internet Systems Consortium DHCP Client V3.0.5-RedHat
Copyright 2004-2006 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Listening on LPF/eth0/00:0c:29:xx:xx:xx
Sending on LPF/eth0/00:0c:29:xx:xx:xx
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
DHCPOFFER from 192.168.1.1
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPACK from 192.168.1.1
bound to 192.168.1.128 -- renewal in 43200 seconds.
bound to 192.168.1.128 -- renewal in 43200 seconds. の行が、IPアドレスの取得成功を示します。renewal in 43200 seconds はIPアドレスのリース更新までの秒数(この例では12時間)です。
解放と再取得を一括実行
# -r(release)と新規取得を組み合わせる
sudo dhclient -r eth0 && sudo dhclient eth0
よくあるミス:
dhclientコマンドが見つからない場合 → CentOS 7以降やUbuntu 18.04以降ではNetworkManagerが管理しているため、nmcliコマンドを使ってください(ステップ2参照)。

✅ ステップ1完了の確認: ip addr show eth0 で新しいIPアドレスが表示されることを確認してください。
ステップ2: nmcliコマンドを使う方法(推奨)
nmcliはNetworkManagerのCLIツールで、CentOS 7以降・RHEL 7以降・Ubuntu 16.04以降で標準的に使用されています。NetworkManagerが動いている環境では、こちらの方法が推奨されます。
NetworkManagerが動作しているか確認
systemctl status NetworkManager
active (running) と表示されていればNetworkManagerが稼働しています。
nmcliで接続をダウン・アップ
# 現在の接続一覧を確認
nmcli connection show
# 接続名(NAME列)を確認してから実行
# 例: 接続名が "ens33" の場合
sudo nmcli connection down ens33
sudo nmcli connection up ens33
実行例:
$ nmcli connection show
NAME UUID TYPE DEVICE
ens33 a1b2c3d4-e5f6-7890-abcd-ef1234567890 ethernet ens33
$ sudo nmcli connection down ens33
Connection 'ens33' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1)
$ sudo nmcli connection up ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
DHCPリースを明示的に更新
接続を切断せずにDHCPリースだけを更新したい場合は以下のコマンドを使います。
# IPv4のDHCPリースを更新
sudo nmcli dev reapply ens33
# または dhcp4 のみを更新
sudo nmcli connection modify ens33 ipv4.method auto
sudo nmcli connection up ens33
インターフェース名ではなくデバイス名で操作する場合
# デバイス一覧を確認
nmcli device status
# デバイスをダウン・アップ
sudo nmcli device disconnect ens33
sudo nmcli device connect ens33
よくあるミス:
nmcli connection downの後にすぐnmcli connection upしても変わらない場合 → NetworkManagerがDHCPリースをキャッシュしている可能性があります。/var/lib/NetworkManager/配下のリースファイルを削除してから再実行してください。

✅ ステップ2完了の確認: ip addr show ens33 または nmcli connection show ens33 で新しいIPアドレスが割り当てられていることを確認してください。
ステップ3: systemctlでNetworkManagerを再起動する方法
全てのインターフェースを一括でリセットしたい場合、NetworkManagerサービスを再起動します。ただし、再起動中は一時的にネットワーク接続が切断されるため、リモートSSH接続中の場合は注意が必要です。
# NetworkManagerを再起動
sudo systemctl restart NetworkManager
# 再起動後にステータスを確認
systemctl status NetworkManager
実行例:
$ sudo systemctl restart NetworkManager
$ systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2026-03-02 12:00:00 JST; 3s ago
CentOS 6 / SysVinit環境の場合
CentOS 6以前のようにsystemdを使わない環境では、以下のコマンドを使います。
# CentOS 6 / RHEL 6
sudo service network restart
# または
sudo /etc/init.d/network restart
注意:
service network restartはNetworkManagerを使わず、ネットワークスクリプト(/etc/sysconfig/network-scripts/)に基づいてインターフェースを再起動します。NetworkManagerと混在している場合は競合が起きることがあります。
✅ ステップ3完了の確認: ip addr show で各インターフェースに新しいIPが割り当てられていることを確認してください。
ステップ4: ifup / ifdownコマンドを使う方法
ifupとifdownは主にDebian/Ubuntu系で使用されるコマンドで、/etc/network/interfacesの設定に基づいてインターフェースを制御します。
Debian/Ubuntu系での実行
# インターフェースをダウン
sudo ifdown eth0
# インターフェースをアップ(DHCPで再取得)
sudo ifup eth0
/etc/network/interfaces の設定確認:
# DHCPで設定されているか確認
cat /etc/network/interfaces
以下のような設定になっていればDHCPが使われています:
auto eth0
iface eth0 inet dhcp
CentOS/RHEL系での ifup / ifdown
CentOS/RHEL系でもifupとifdownコマンドは利用可能ですが、内部的にはnetwork-scriptsを呼び出しています。
# CentOS/RHEL系
sudo ifdown eth0
sudo ifup eth0
よくあるミス: Ubuntu 18.04以降でNetworkManagerが有効な場合、
ifup/ifdownが/etc/network/interfacesの設定を読まないことがあります。その場合はnmcliを使ってください。
✅ ステップ4完了の確認: ip addr show でIPアドレスが更新されているか確認してください。
ステップ5: ip linkコマンドを使う方法
ipコマンド(iproute2パッケージ)を使ってインターフェースレベルで制御する方法です。dhclientと組み合わせて使います。
# インターフェースをダウン
sudo ip link set eth0 down
# インターフェースをアップ
sudo ip link set eth0 up
# DHCP再取得(dhclientを使う場合)
sudo dhclient eth0
dhcpクライアントがsystemd-networkdの場合は以下を使います:
# systemd-networkdの場合
sudo networkctl renew ens33
networkctlの実行例:
$ sudo networkctl renew ens33
Successfully renewed link ens33
✅ ステップ5完了の確認: ip addr show ens33 で新しいIPが割り当てられているか確認してください。
ディストリビューション別の対処法一覧
環境ごとに推奨コマンドをまとめました。
| ディストリビューション | ネットワーク管理方式 | 推奨コマンド |
|---|---|---|
| CentOS 6 / RHEL 6 | SysVinit + network-scripts | service network restart または dhclient -r && dhclient |
| CentOS 7 / RHEL 7 | NetworkManager + systemd | nmcli connection down/up <NIC名> |
| CentOS 8 / RHEL 8/9 | NetworkManager + systemd | nmcli connection down/up <NIC名> |
| CentOS Stream 9 | NetworkManager + systemd | nmcli connection down/up <NIC名> |
| Ubuntu 16.04以前 | ifupdown | ifdown eth0 && ifup eth0 |
| Ubuntu 18.04〜22.04 | NetworkManager または netplan | nmcli connection down/up <NIC名> |
| Ubuntu 24.04 | NetworkManager + netplan | nmcli connection down/up <NIC名> |
| Debian 10〜12 | NetworkManager または ifupdown | nmcli または ifdown/ifup |
| Arch Linux | NetworkManager または systemd-networkd | nmcli または networkctl renew |
CentOS 7/8でのインターフェース名の確認方法
# インターフェース一覧(IPアドレスも表示)
ip addr show
# または
nmcli device status
DEVICE TYPE STATE CONNECTION
ens33 ethernet connected ens33
lo loopback unmanaged --
Ubuntu/Debianでの接続名の確認方法
nmcli connection show
NAME UUID TYPE DEVICE
Wired connection 1 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ethernet eth0
トラブルシュート
DHCPの再取得でよく遭遇する問題と解決策をまとめました。
| 症状 | 原因 | 解決策 |
|---|---|---|
dhclient: command not found |
dhclientがインストールされていない | yum install dhclient または apt install isc-dhcp-client でインストール |
| IPアドレスが変わらない | DHCPサーバが同じIPをリース中 | DHCPサーバ側でリース情報を削除するか、MACアドレスを変えてみる |
nmcli: command not found |
NetworkManagerがインストールされていない | yum install NetworkManager または apt install network-manager |
| インターフェースがダウンしたまま戻らない | NetworkManagerが管理していないインターフェース | sudo ip link set eth0 up で手動でアップ |
| SSHが切断される | ネットワーク再起動中に接続が切れた | ローカルコンソールから操作するか、nohupやscreenを使う |
RTNETLINK answers: Operation not permitted |
sudo権限なしで実行している | コマンドの前にsudoを付ける |
DHCPリースファイルのリセット
同じIPが繰り返し払い出される場合、DHCPクライアントのリースファイルをクリアすることで強制的に新しいIPを要求できます。
# dhclientのリースファイルを確認・削除(CentOS/RHEL系)
ls /var/lib/dhclient/
sudo rm /var/lib/dhclient/dhclient.leases
# dhclientのリースファイルを確認・削除(Ubuntu/Debian系)
ls /var/lib/dhcp/
sudo rm /var/lib/dhcp/dhclient.*.leases
# NetworkManagerのリースファイルを削除
ls /var/lib/NetworkManager/
sudo rm /var/lib/NetworkManager/internal-*.lease 2>/dev/null || sudo rm /var/lib/NetworkManager/*.lease 2>/dev/null
# その後、NetworkManagerを再起動
sudo systemctl restart NetworkManager
まとめ
LinuxでDHCPのIPアドレスを再取得する方法を、環境別にまとめました。
- dhclient: 古いCentOS/RHELや最小インストール環境で有効。
dhclient -rで解放、dhclient eth0で再取得。 - nmcli: NetworkManagerが動いているCentOS 7以降・Ubuntu全般に対応。
nmcli connection down/upで確実に再取得できる。 - systemctl restart NetworkManager: 全インターフェースをまとめてリセットしたいときに使用。SSH接続中は切断に注意。
- ifup/ifdown: Debian/Ubuntu系の伝統的な方法。
/etc/network/interfacesの設定に従って動作。 - networkctl renew: systemd-networkdを使っている環境での推奨方法。
2026年現在、主流のCentOS Stream・RHEL・UbuntuではいずれもNetworkManagerによる管理が標準です。まずnmcliで試し、うまくいかない場合にdhclientやsystemctlでの再起動を試みるのが効率的なアプローチです。
インターフェース名の確認(ip addr showやnmcli device status)を必ず最初に行い、正しいデバイス名を使ってコマンドを実行してください。

