我有两个(非特权)LXC 来宾运行 Ubuntu xenial 和 Ubuntu bionic,它们都以相同的方式安装和配置(至少我是这么认为的)。 xenial 来宾按预期工作,始终获得相同的 ip,因此我只需为其添加一行/etc/hosts
,然后在启动时即可ssh
进入。
但是每次我启动时,运行 Ubuntu bionic 的来宾都会获得一个新的 ip :-(
我认为这是 Ubuntu 更改为 netplan 的结果,因此我对此进行了一些研究(如下),但情况似乎并非如此,因此您可能可以跳到最后一段。
两个来宾在 LXC 配置中都有一个(当然是不同的 MAC 地址):
# Network configuration
lxc.network.type = veth
lxc.network.link = lxcbr0
lxc.network.flags = up
lxc.network.hwaddr = 00:FF:6e:d1:58:d2
xenial 客人有一个/etc/network/interfaces
看起来像这样的:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
仿生客体具有以下特点/etc/netplan/10-lxc.yaml
:
network:
ethernets:
eth0: {dhcp4: true}
version: 2
(我还不太熟悉 netplan,但在我看来也是如此)。
在两个客户机上,配置的 MAC 都分配给 eth1,而 eth0 每次都会获得一个新的 MAC 地址,但不知何故,xenial 客户机无论如何都会获得相同的 IP(这就是为什么我不再认为 netplan 是罪魁祸首)。
我还有一个运行 Debian Stretch 的 LXC 客户机(主机也这样做),其工作方式(在这方面)与 xenial 客户机非常相似。
那么我到底做错了什么?我如何在仿生客机中获得可预测的IP?