因此,我用 Ifupdown 替换了 Netplan,因为 Netplan 不允许我实时应用网络配置,而且我被告知这是一个已知问题。为此,我安装了 ifupdown,用于ip link show
查看我的接口名称并创建了以下内容/etc/network/interfaces
:
allow-hotplug eno1
iface eno1 inet dhcp
allow-hotplug eno2
iface eno2 inet dhcp
allow-hotplug enp10s0f0
iface enp10s0f0 inet static
address 10.0.1.235
netmask 255.255.255.0
gateway 10.0.1.1
allow-hotplug enp10s0f1
iface enp10s0f1 inet dhcp
我之所以使用,是allow-hotplug
因为当我断开某些接口时系统会在启动时挂起并等待网络,因为我经常不会同时使用它们。
系统启动时,所有连接的接口都会通过 DHCP 获取 IP 地址,包括我静态配置的接口。要获取要应用的静态 IP 地址,我必须这样做,ifdown enp10s0f0
这样ifup enp10s0f0
就没问题了。
如果它很重要,则使用 删除 Netplan,apt-get purge nplan
并使用 删除 cloud-init apt-get purge cloud-init
。
如何才能使我的静态配置在启动时起作用?
答案1
不幸的是,上述步骤不能完全启用 ifupdown 所需的功能,也不能完全删除 Netplan。为了解决这个问题,我按照以下说明进行操作https://askubuntu.com/a/1052023/946893以 root 身份运行以下命令:
systemctl unmask networking
systemctl enable networking
systemctl restart networking
systemctl stop systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
systemctl disable systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
systemctl mask systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
apt-get --assume-yes purge nplan netplan.io
shutdown -r now
此时静态配置在启动时起作用。
注意:静态配置下也缺少配置dns-nameservers 1.1.1.1 1.0.0.1
,并且如链接答案中所述,还必须指定这些服务器,/etc/systemd/resolved.conf
然后必须重新启动 systemd-resolved 服务