Introduction

備忘録。
要するに、コマンドから適切な方法で IP を変更し、再接続できるか、という話。
UI は使えないケースは多々あると思う。例えば、 VNC や XRDP が許可されていないとか。
後は再起動してはダメ、というケースとか。

How to resolve?

Ubuntu 24.04 及び Red Hat Enterprise Linux 10.0 で試した。
nmcli を扱えるならどのディストリビューションでも使える派と思う。

まず、IP を編臆するネットワークアダプタを確認する。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$ nmcli connection show
NAME UUID TYPE DEVICE
netplan-eth0 626dd384-8b3d-3690-9511-192b2c79b3fd ethernet eth0
lo 61b219a2-72c7-4e60-851d-3ba75d4c6bca loopback lo
$ nmcli connection show netplan-eth0 | grep ipv4
ipv4.method: manual
ipv4.dns: 192.168.11.17
ipv4.dns-search: --
ipv4.dns-options: --
ipv4.dns-priority: 0
ipv4.addresses: 192.168.11.200/24
ipv4.gateway: 192.168.11.1
ipv4.routes: --
ipv4.route-metric: -1
ipv4.route-table: 0 (unspec)
ipv4.routing-rules: --
ipv4.replace-local-rule: -1 (default)
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-client-id: --
ipv4.dhcp-iaid: --
ipv4.dhcp-dscp: --
ipv4.dhcp-timeout: 0 (default)
ipv4.dhcp-send-hostname: yes
ipv4.dhcp-hostname: --
ipv4.dhcp-fqdn: --
ipv4.dhcp-hostname-flags: 0x0 (none)
ipv4.never-default: no
ipv4.may-fail: yes
ipv4.required-timeout: -1 (default)
ipv4.dad-timeout: -1 (default)
ipv4.dhcp-vendor-class-identifier: --
ipv4.link-local: 0 (default)
ipv4.dhcp-reject-servers: --
ipv4.auto-route-ext-gw: -1 (default)

確認後、下記で変更を適用する。
この時、 reload の時点では SSH は切断されず、 up で IP への変更が実際に反映され回線が切断される。

1
2
3
4
$ sudo nmcli connection modify netplan-eth0 ipv4.addresses 192.168.11.201/24
$ sudo nmcli connection reload
$ sudo nmcli connection up netplan-eth0
client_loop: send disconnect: Connection reset