Proxmox VE を運用していると、ホストの IP アドレスを変更しなければならない場面があります。理由はさまざま(ローカル DC の再構成、オフィス移転、別の DC 事業者への移行など)。本記事では、Proxmox の IP アドレスを変更する手順をステップバイステップで解説します。
Proxmox VE の IP アドレス変更における前提条件
Proxmox のインストーラでは、静的 IP の設定を行います。DHCP での取得(例:DHCP でリースした IP を Proxmox ホストの NIC の MAC アドレスにバインド)も可能ですが、推奨は静的 IP 構成です。
ここでいう「Primary の Proxmox IP」は、Proxmox ホストの管理に使う IP を指します。共有ストレージ接続用など、他の物理 NIC に別 IP を持たせることもありますし、Proxmox ホスト上でルーティングされた VM ネットワーク(NAT)用の IP を持つこともあります。本稿の主目的は、ホスト管理用 IP の変更です。
本記事の例となる初期構成:
- IP アドレス:
192.168.101.229
(Proxmox の静的 IP) - ネットマスク:
255.255.255.0
- ゲートウェイ:
192.168.101.2
- ホスト名:
deb-proxmox
- ブリッジ:
192.168.101.229
でブリッジを構成し、VM と物理ネットワーク間/VM 同士の接続を確立 - クラスタ:この Proxmox ホスト(
192.168.101.229
)は非クラスタ(クラスタの場合は手順が異なる)
最も効率的な方法はコマンドラインでの変更です。代替としてWeb インターフェイスからも変更できます(インストールや初期構成の詳細は How to Install Proxmox を参照)。
コマンドラインで Proxmox の IP アドレスを変更する
- SSH で Proxmox ホストに接続し、ログインします。Proxmox Web UI の対象ホストで Shell を押して CLI に入っても構いません。外部 SSH クライアントを使う場合は、ホスト側に SSH サーバが設定済みで、ファイアウォールでブロックされていないことを確認してください。
- 構成変更には root 権限が必要です。
sudo -i
- 現在の IP 構成を確認します。
ifconfig
出力には、設定対象となるブリッジvmbr0
(例:ens33
にブリッジ)が表示されます。インターフェイス名や IP は環境により異なります。例ではens36
に接続されたvmbr1
(10.10.101.229
)が VM の NAT ネットワーク用ですが、本稿ではこの10.10.101.0/24
の構成は変更しません。 - 注意:変更前に必ず設定ファイルをバックアップしましょう(例:
cp file-original file-copy
)。 /etc/network/interfaces
を編集し、IP を変更します(エディタはnano
でもvim
でも可)。nano /etc/network/interfaces
- 別ネットワークの IP に変更する場合は、ゲートウェイも同一ネットワークの値に更新が必要です。
- 必要に応じて DNS(nameserver) も変更します(ネットワークにより異なる)。
注2:/24 から /16 などネットワークサイズを変える場合は、アドレスとマスクの整合をとってください。 例では、ブリッジ側(管理用)の IP を192.168.101.229
→192.168.105.229
に変更し、ゲートウェイを192.168.101.2
→192.168.105.2
に変更します。 保存と終了:Ctrl+O → Enter、Ctrl+X/etc/hosts
を編集し、ホスト名の名前解決が新 IP に一致するようにします。nano /etc/hosts
例:deb-proxmox
の行で192.168.101.229
→192.168.105.229
に変更。保存と終了は同様に Ctrl+O、Ctrl+X。- ネットワークサービスを再起動して反映します。
systemctl restart networking
うまく再起動できない/反映されない場合は、VM を停止したうえでホストを再起動します。init 6
- 変更後は、Web UI や SSH 接続に新しい IP を使用します。接続しているネットワークが正しいことを確認してください。
Web インターフェイスから Proxmox の IP アドレスを変更する
2つ目の方法は Proxmox の Web UI を使うやり方です。初心者にとって扱いやすいですが、内部的には /etc/network/interfaces
と /etc/hosts
を編集している点は同じです(GUI というだけで原理は同じ)。
初期構成は前節の CLI 例と同じです。例では Web UI へは https://192.168.101.229:8006
でアクセスします(8006
は既定の管理ポート)。
- Proxmox VE の Web UI にログインし、左ペインで IP を変更したいホストを選択(例:
deb-proxmox
)。 - System → Network を開き、管理に使っているネットワークインターフェイス(例:
vmbr0
)を選んで Edit。 - 設定ウィンドウで以下を入力:
- IPv4/CIDR:新しい IP とネットマスク(CIDR)
- Gateway:別ネットワークに変更した場合は新しいゲートウェイ
- その他の設定は既定のままで可
192.168.101.229/24
→192.168.105.229/24
、ゲートウェイ192.168.101.2
→192.168.105.2
。
ブリッジvmbr0
は物理 NICens33
にリンクされています。 OK で保存して閉じます。 - System → Hosts を開き、
/etc/hosts
の内容が表示されるフィールドで旧 IP を新 IP に書き換えて Save(例:192.168.101.229
→192.168.105.229
)。 - 再度 System → Network に戻り、Apply Configuration をクリックして保留中の変更を適用します。「ネットワーク変更を適用しますか?」には Yes。
- ネットワークサービスの再起動が終わるまで待機。
- 必要なら物理的に別ネットワークへ接続し直します。
- 新しい IP で Web UI にアクセスします(例:
https://192.168.105.229:8006
)。
Proxmox クラスタで IP アドレスを変更する
クラスタ環境では、上記と同じ手順をそのまま使うことはできません(共通点はあるものの、問題が生じる可能性があります)。必要なのは、ネットワーク構成の更新、クラスタ構成の更新、Corosync 構成の調整 です。以下は基本的なワークフローの例で、Open vSwitch の有無、VLAN 構成、変更対象ノード数、その他の構成により手順は変わり得ます。
推奨:一度に 1 ノードずつ IP を変更します。クラスタの稼働状態を保ちやすくなります。
- 影響を抑えるため、IP を変更するノードでクラスタ関連サービスを停止:
systemctl stop pve-cluster systemctl stop corosync
- ネットワーク設定を更新(新しい IP を反映):
nano /etc/network/interfaces
例:iface vmbr0 inet static address <new-ip-address> netmask 255.255.255.0 gateway <gateway-ip> bridge_ports eth0 bridge_stp off bridge_fd 0
保存後、ネットワークサービスを再起動:systemctl restart networking
/etc/hosts
を更新(新しい IP に置換):nano /etc/hosts
- Proxmox クラスタ設定を更新(対象ノードの IP を反映):
nano /etc/pve/corosync.conf
該当ノードのセクションで IP を更新:node { name: <node-name> nodeid: <node-id> quorum_votes: 1 ring0_addr: <new-ip-address> }
- Corosync 設定を更新。Corosync 3.x では
transport
とbindnetaddr
の見直しが必要な場合があります:nano /etc/pve/corosync.conf
bindnetaddr
が新しいネットワークアドレスを反映していることを確認:totem { ... interface { ringnumber: 0 bindnetaddr: <network-address> mcastport: 5405 ttl: 1 } ... }
Corosync はクラスタノード間で設定を同期します。1 ノードで編集すれば同期されます。 - 対象ノードでクラスタ関連サービスを起動:
systemctl start corosync systemctl start pve-cluster
- 旧 IP に紐づくファイアウォールルールなどがある場合は更新。
- 新しい IP で到達性とクラスタ動作を確認:
ping <new-ip-address> pvecm status
- すべてのステップ完了後、必要に応じて次のノードでも繰り返します。
- 最後に、全ノードで
known_hosts
を新しい IP に合わせて更新し、ノード間の SSH 接続をスムーズにします:/etc/pve/priv/known_hosts
各ノードから他ノードへ SSH で接続できるか確認してください。
結論
非クラスタの Proxmox ホストの管理 IP は、CLI でも Web UI でも変更できます。いずれも本質的には /etc/network/interfaces
と /etc/hosts
の更新です。クラスタ構成ではワークフローが異なるため、非クラスタ向け手順を流用しないでください。変更前に設定のバックアップを取ることを推奨します。
コメント