Поэтому я заменил Netplan на Ifupdown, поскольку 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
, потому что система зависает при загрузке в ожидании сети когда некоторые интерфейсы отключены, поскольку я часто не использую их все одновременно.
Когда система загружается, все подключенные интерфейсы получают IP-адрес через DHCP, включая тот, который я настроил статически. Чтобы применить статический IP-адрес, я должен ifdown enp10s0f0
затем ifup enp10s0f0
, и в этот момент все в порядке.
Если это важно, Netplan был удален с apt-get purge nplan
и cloud-init с apt-get purge cloud-init
.
Как мне заставить мою статическую конфигурацию работать при загрузке?
К сожалению, вышеприведенные шаги не позволяют полностью задействовать вещи, необходимые для 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 должна быть перезапущена