所以我试图给虚拟机一个静态IP地址,这种情况特别顽固。
该虚拟机在具有自己的公共 IP 范围的 ESXi 集群上运行。
我让它(有点)使用 IPv4 地址,除了每次启动时都会重新分配它,现在在摆弄 nmcli 之后我无法获得分配给它的任何 IPv4 地址。
接口是ens32
,我已经更改ipv4.addresses
为XXX.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 在错误输出中报告“太小”。