使用 nmcli 分配静态 IP 地址

使用 nmcli 分配静态 IP 地址

所以我试图给虚拟机一个静态IP地址,这种情况特别顽固。

该虚拟机在具有自己的公共 IP 范围的 ESXi 集群上运行。

我让它(有点)使用 IPv4 地址,除了每次启动时都会重新分配它,现在在摆弄 nmcli 之后我无法获得分配给它的任何 IPv4 地址。

接口是ens32,我已经更改ipv4.addressesXXX.XXX.120.44/24(希望它有地址120.44)、网关XXX.XXX.120.1并将其设置为手动。

有谁知道为什么这不起作用?所有在线指南均适用于较旧的网络服务,而不是 NetworkManager。

答案1

尝试:

# nmcli con add con-name "static-ens32" ifname ens32 type ethernet ip4 xxx.xxx.120.44/24 gw4 xxx.xxx.120.1
# nmcli con mod "static-ens32" ipv4.dns "xxx.xxx.120.1,8.8.8.8"
# nmcli con up "static-ens32" iface ens32

接下来,找到其他连接并将其删除。例如:

# nmcli con show
NAME         UUID                 TYPE           DEVICE
ens32        ff9804db5-........   802-3-ethernet --
static-ens32 a4b59cb4a-........   802-3-ethernet ens32
# nmcli con del ens32

下次重新启动时,您应该选择该static-ens32连接,因为它是唯一可用的连接。

答案2

单独的 IPv4 地址是 /32。 /24 指定一个网络,在本例中为 XXX.XXX.120.[0-255]。尝试将ipv4.address条目更改为XXX.XXX.120.44/32,看看会发生什么。如果这不起作用,我必须问评论中提出的相同问题 - NetworkManager 是必需的,还是我们可以使用其他方式配置地址?

答案3

将 /32(single) 更改为 /24(network) 解决了 ipv4.addresses 分配范围和第一个 IP 地址的问题。

我认为“手动”在你的情况下可能是一个问题。手册可能会告诉 nm 根本不管理,或者不处理 dhcp。您是否尝试过“共享”,然后使用 ipv4.addresses 而不是 ipv4.address1?或者,如果是手动,则 ipv4.address1 可能是正确的,而不是 ipv4.addresses。

你看过/var/log/syslog吗? dnsmasq 在我的中说 32 太小,并且 nmcli 在错误输出中报告“太小”。

相关内容